L'installation comporte deux étapes :
Si vous avez installé l'outil eole3 dans un venv, il faudra activer celui-ci :
source ~/venv/bin/activate
Dans un dossier dédié sur votre poste de travail, créer un répertoire moncluster.
Le nom moncluster est arbitraire. Il est conseillé d'utiliser un nom de dossier sans espaces, sans accents et en minuscules seulement. :
mkdir moncluster
cd moncluster
On peut afficher la configuration par défaut avec la commande suivante :
eole3 config socle
Dans le dossier moncuster, créer un fichier socle.yaml et l'adapter à votre environnement.
Il faut au minimum adapter la valeur de la variable domain à votre nom de domaine :
cat > socle.yaml <<EOF
default:
#general domain for the deployment
domain: mon-domaine.fr
EOF
Ensuite générer les fichiers de déploiement avec la commande suivante :
eole3 --config socle.yaml build socle
Si vous n'utilisez pas Cert Manager, copier la clef privée (tls.key) et le certificat (tls.crt) wildcard ou multi-domaines dans le répertoire "./install/infra/ingress-nginx/". Vous devez obtenir :
./install/infra/ingress-nginx/tls.key
./install/infra/ingress-nginx/tls.crt
Il est possible de changer de dépot pour récupérer une image ou une version spécifique, il faut ajouter une section dans le fichier de configuration socle.yaml.
Exemple pour cert-manager qui utilise plusieurs images
cert-manager:
deploy: <Déploiement du composant cert-manager sur le cluster> [False]
enabled: <Utiliser un service cert-manager déjà présent sur le cluster> [False]
clusterIssuerName: <Nom de la ressource du fournisseur pour Let's Encrypt> [laboite-clusterissuer]
type: <Type d'environement> [staging|prod]
email: <Courriel de contact pour la date d'expiration des certificats> [eole@ac-dijon.fr]
namespace: <namespace de déploiement de cert-manager> [cert-manager]
chart:
version: <Version du Helm chart> [v1.15.3]
repoUrl: <URL du dépôt du Helm chart> [https://charts.jetstack.io|~]
images:
registry: <~ (valeur correspondant à la section default), upstream (valeur par défaut du helm), <custom registry> (dépôt personnalisé des images Docker)> [~|upstream|<custom registry>]
controller:
name: <nom de l'image> [eole3/cert-manager-container-image/cert-manager-controller]
tag: <tag de l'image> [v1.15.3-eole3.0]
webhook:
name: <nom de l'image> [eole3/cert-manager-container-image/cert-manager-webhook]
tag: <tag de l'image> [v1.15.3-eole3.0]
cainjector:
name: <nom de l'image> [eole3/cert-manager-container-image/cert-manager-cainjector]
tag: <tag de l'image> [v1.15.3-eole3.0]
acmesolver:
name: <nom de l'image> [eole3/cert-manager-container-image/cert-manager-acmesolver]
tag: <tag de l'image> [v1.15.3-eole3.0]
startupapicheck:
name: <nom de l'image> [eole3/cert-manager-container-image/cert-manager-startupapicheck]
tag: <tag de l'image> [v1.15.3-eole3.0]
Exemple pour blog qui utilise une image
blog:
deploy: <Déployer le composant blog> [true]
hostname: <Nom de l'application> [blog]
whitelistIps: <Liste des adresses IP à autoriser (notation CIDR)> [0.0.0.0/0]
images:
registry: <URL du dépôt des images Docker> [~]
blog:
name: <Nom de l'image blog> [laboite-blog_front]
tag: <Tag de l'image blog> [~]
Assurez vous d'avoir exporté la variable KUBECONFIG faisant référence au fichier kubeconfig.yaml concernant votre cluster Kubernetes.
Installer la configuration de déploiement avec la commande suivante :
eole3 deploy socle
Pour mettre à jour le socle, il vous faut :
Éditer le fichier moncluster/socle.yaml et mettre à jour les options.
Depuis le dossier moncluster, générer les fichiers de déploiement avec la commande :
cd moncluster
source venv/bin/activate
eole3 --config socle.yaml build socle
deactivate
Mettre à jour la configuration avec la commande suivante :
eole3 update socle
Une fois le socle de base installé, vous pouvez installer des services additionnels et des outils d'administration.