Production-ready Ansible tasks to deploy and operate Kubernetes addons. Each task installs and configures a specific addon via Helm, with variables exposed for easy customization.
| Task | Description |
|---|---|
| cert-manager.yml | Certificate management with Let's Encrypt and automatic renewal |
| monitoring.yml | Kube Prometheus Stack, Grafana, Loki, Tempo, Pyroscope, OpenTelemetry |
| longhorn.yml | Distributed block storage with RWO and RWX StorageClasses |
| velero.yml | Cluster backup and restore with S3 backend and CSI snapshot support |
| rancher.yml | Multi-cluster Kubernetes management UI |
| ingress-nginx.yml | Nginx ingress controller with autoscaling and load balancer support |
| ingress-traefik.yml | Traefik ingress controller with autoscaling and load balancer support |
| kube-vip.yml | Kube-VIP load balancer with static IP support for Kubernetes services |
| openstack-cinder-csi.yml | OpenStack Cinder CSI driver for persistent volumes |
| openstack-cloud-controller.yml | OpenStack cloud controller manager integration |
- Ansible 2.15+
- A running Kubernetes cluster with admin.conf available at /etc/kubernetes/admin.conf
Install collections :
ansible-galaxy collection install kubernetes.core community.general- Copy and configure the inventory file :
cp ansible/inventories/kubernetes/hosts.ini.example ansible/inventories/kubernetes/hosts.ini-
Update the variables in hosts.ini with your values.
-
Run a specific task :
ansible-playbook -i ansible/inventories/kubernetes/hosts.ini ansible/tasks/monitoring.yml.
├── ansible
│ ├── inventories
│ │ └── kubernetes
│ │ ├── group_vars
│ │ │ ├── all.yml
│ │ │ └── kubernetes.yml
│ │ └── hosts.ini.example
│ └── tasks
│ ├── cert-manager.yml
│ ├── ingress-nginx.yml
│ ├── ingress-traefik.yml
│ ├── kube-vip.yml
│ ├── longhorn.yml
│ ├── monitoring.yml
│ ├── openstack-cinder-csi.yml
│ ├── openstack-cloud-controller.yml
│ ├── rancher.yml
│ └── velero.yml
└── README.md