Le déploiement d’application sur l’infrastructure de l’AGEPoly est soumis à certaines conditions, plus d’infos ici (TBA).
Ce document est une ébauche, les processus peuvent encore changer
ArgoCD est configuré pour chercher les applications définies dans le repo au path apps/*.yaml
.
Configuration recommandée : déclaration dans apps/my-app.yaml
et définition de l’application dans le dossier my-app
.
Exemple : apps/my-app.yaml
:
name: my-website # nom de l'application
source: # où trouver la configuration de l'application
repoURL: 'https://gitlab.com/agepoly/it/k22/argo-cd/argo-{NAMESPACE_NAME}.git' # généralement le repo actuel
targetRevision: 'HEAD' # quelle branche/position git du repo utiliser
path: 'sealed-secrets' # chemin vers la configuration de l'application
Le repo de configuration est public, il faut toujours vérifier qu’aucun secret n’y est stocké directement.
Une application peut être définie avec différents outils : des manifests Kubernetes, une Helm chart ou encore une Kustomization.
Par défaut, privilégier la Helm chart de base de l’AGEPInfo pour déployer des applications custom et prenez conseil auprès de l’Équipe Informatique pour les applications communes (Wordpress, Wiki.js, MediaWiki, Apache, …)
Bien que le repo soit public il est tout de même possible de l’utiliser pour définir des secrets d’application (variables d’environnements ou fichiers).
Installer l’utilitaire « kubeseal » pour chiffrer le secret
Créer le secret Kubernetes dans un dossier personnel, en dehors du repo de configuration
Le plus simple c’est avec le paramètre « stringData » qui permet de mettre les valeurs en clair :
apiVersion: v1
kind: Secret
metadata:
name: my-app-secret
namespace: {NAMESPACE_NAME} # IMPORTANT
type: Opaque
stringData:
username: martin007
password: mOnSuper1M0t2pass
code-secret: "1234 5678 9101"
Sinon pour utiliser toutes les valeurs en Base64 :
apiVersion: v1
kind: Secret
metadata:
name: my-app-secret
namespace: {NAMESPACE_NAME} # IMPORTANT
type: Opaque
data:
username: bWFydGluMDA3
password: bU9uU3VwZXIxTTB0MnBhc3M=
code-secret: MTIzNCA1Njc4IDkxMDE=
Quelques remarques pour la seconde option:
echo -n "1234 5678 9101" | base64 -w 0
echo -n "MTIzNCA1Njc4IDkxMDE=" | base64 -d
-n après echo
kubeseal --scope namespace-wide --cert https://gitlab.com/agepoly/it/secrets/-/raw/main/public/k22-sealed-secrets.crt -o yaml < my-app-secret.yaml > my-app-sealed-secret.yaml
my-app/templates/my-app-sealed-secret.yaml
)Lorsque l’application sera synchronisée le Secret sera reconstruit sur le cluster.
TBA
TBA
TBA