Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qjoly/gitops
WIP - Déploiement complet d'un cluster Kubernetes
https://github.com/qjoly/gitops
Last synced: about 2 months ago
JSON representation
WIP - Déploiement complet d'un cluster Kubernetes
- Host: GitHub
- URL: https://github.com/qjoly/gitops
- Owner: qjoly
- License: mit
- Created: 2023-02-15T20:03:40.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-25T12:04:17.000Z (about 2 months ago)
- Last Synced: 2024-11-30T16:40:44.243Z (about 2 months ago)
- Language: Jinja
- Homepage: https://qjoly.github.io/GitOps/
- Size: 1.93 MB
- Stars: 31
- Watchers: 3
- Forks: 1
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Blog](https://img.shields.io/badge/Blog-blue?style=for-the-badge&logo=buymeacoffee&logoColor=white)](https://une-tasse-de.cafe/)
[![Kubernetes](https://img.shields.io/badge/Kubernetes-v1.28.3-blue?style=for-the-badge&logo=kubernetes&logoColor=white)](https://kubernetes.io/)
[![Linux](https://img.shields.io/badge/Talos-v1.6.0-blue?style=for-the-badge&logo=linux&logoColor=white)](https://kubernetes.io/)# GitOps
Github for cluster administration.
## Clusters
### Cloud
| Node | Type | IP | OS | RAM | Cores | Architecture | Notes |
|---------------|---------------|-----------------|--------------|------|-------|--------------|-------|
| talos-0ya-z8j | Control-plane | 192.168.128.10 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
| talos-4n2-efl | Control-plane | 192.168.128.91 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
| talos-th0-iv8 | Control-plane | 192.168.128.37 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
| talos-i2b-uua | Worker | 192.168.128.114 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
| talos-jmc-u9l | Worker | 192.168.128.106 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |
| talos-v1m-53q | Worker | 192.168.128.100 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |### Home
| Node | Type | IP | OS | RAM | Cores | Architecture | Notes |
|---------------|---------------|-----------------|--------------|------|-------|--------------|-------|
| talos-0ya-z8j | Control-plane | 192.168.1.203 | Talos v1.5.5 | 4 Go | 4 | Arm64 | |
| talos-4n2-efl | Control-plane | 192.168.1.204 | Talos v1.5.5 | 4 Go | 4 | Arm64 | |
| talos-th0-iv8 | Control-plane | 192.168.1.205 | Talos v1.5.5 | 4 Go | 4 | Arm64 | |
| talos-i2b-uua | Worker | 192.168.1.34 | Talos v1.6.0 | 3 Go | 2 | Amd64 | |## Version Talos
Pour un déploiement baremetal, j'ai choisi d'utiliser Talos. Talos est un système d'exploitation pour Kubernetes. Il est conçu pour être sécurisé par défaut, simplifier les opérations et être facilement extensible.
La configuration de Talos est gérée par des fichiers YAML dans le répertoire `talos`. Pour déployer Talos, il suffit de lancer la commande suivante :
```bash
cd talos/
CONTROLPLANE=("192.168.128.10" "192.168.128.91" "192.168.128.37")
for node in $CONTROLPLANE; do
talosctl apply-config --insecure -n $node -e $node --file controlplane.yaml
doneWORKER=("192.168.128.100" "192.168.128.106" "192.168.128.114")
for node in $WORKER; do
talosctl apply-config --insecure -n $node -e $node --file worker.yaml
done
```Les fichiers de configuration de Talos vont également installer [Cilium](https://cilium.io).
## Version Packer/Terraform
Je dispose de plusieurs machines virtuelles sur lesquelles je souhaite déployer un cluster Kubernetes. Pour cela, j'ai décidé d'utiliser Terraform pour déployer l'infrastructure, Packer pour créer les images, Ansible pour provisionner les machines et Flux pour déployer les applications.### Dépendances
- terraform
- sops (facultatif)
- pre-commit (facultatif)
- yq
- taskfile
- j2cli
- flux (cli)
### Démarrer le projetLes différentes étapes de l'installation sont gérées par Taskfile. Il suffit donc de lancer la commande suivante :
```bash
task general:all
```Je vous invite à suivre la documentation du projet [ici](https://qjoly.github.io/GitOps/) pour installer les dépendances et créer le fichier de configuration.
# LICENSE
![License](https://img.shields.io/github/license/QJoly/GitOps?style=for-the-badge)