After having succesfully installed our Kubernetes Cluster with the core components : networking (CNI), ingress controller (nginx), external load balancer (metallb) and kubernetes dashboard (see https://github.com/saubriot/k8s_ansible) we can add useful components on our Kubernetes Cluster.
We will install :
- a default monitoring tool for Kubernetes : prometheus + grafana
- a default storage class for Kubernetes using a rook-ceph cluster for distributed storage
Install useful components :
- CI/CD tools : gitea, harbor, drone ...
- Data components
- ...
The ansible directory structure has been defined as followed :
- ansible : contains the main playbooks, the environments to deploy (under inventories) and the roles and tasks to execute (under roles)
- prometheus.yml : install prometheus
- rook-ceph.yml : install rook-ceph distributed storage
- rook-ceph-nodes.yml : prepare nodes for rook-ceph installation : create mount points on each node
- gitea.yml : install gitea code hosting
- harbor.yml : install harbor repository
- drone.yml : install drone Continuous Integration platform
- template.yml : templating script for new component
- inventories : contains information about the environments to deploy
- demo : demo environment
- hosts : contains the hosts list per role. Note : roles are matching the main playbooks
- group_vars :
- all : global settings : all settings (local temporary directory)
- prometheus : settings for prometheus
- rook-ceph : settings for rook-ceph
- rook-ceph-nodes : settings for rook-ceph-nodes
- gitea : settings for Gitea : a community managed lightweight code hosting solution written in Go
- drone : settings for Drone : a self-service Continuous Integration platform
- harbor : settings for harbor : a trusted cloud native repository for Kubernetes
- demo : demo environment
- roles
- prometheus : rprometheus installation tasks to execute
- rook-ceph : rook-ceph distributed storage installation tasks to execute
- rook-ceph-nodes : rook-ceph-nodes distributed storage installation tasks to execute
- gitea : gitea installation tasks to execute
- harbor : harbor installation tasks to execute
- drone : drone installation tasks to execute
- template : templating for new component role
Requires a Kubernetes cluster up and running. See https://github.com/saubriot/k8s_ansible for vagrant demo environment.