Aller au contenu

deployer.yaml

Le deployer.yaml (ou deployer.yml) est le fichier de configuration principal. Il est place a la racine du projet.

# Obligatoire
name: mon-app
# Optionnel -- defaults sensibles appliques automatiquement
namespace: mon-app # defaut: name
codeType: Web # Web | Static | Spa | Infra
maxRequestBodySize: "500Mi" # defaut: 500Mi
vaultSecretsPath: secret/platform/apps/...
# Features optionnelles
features:
- redis # Redis (cluster 1) : injecte REDIS_URI, REDIS_HOST, REDIS_PORT depuis Vault
- redis72 # Redis (cluster 72) : memes variables, cluster different
- jwt # Monte un secret K8s jwt-credentials dans /var/www/kms
- kms # Alias de jwt (meme comportement)
- drive # Monte un secret K8s ga-credentials-drive + injecte GOOGLE_APPLICATION_CREDENTIALS
- nginx-php # Ajoute un sidecar nginx pour PHP-FPM (container + configmap + lifecycle)
- cidr # (automatique) Active le whitelist IP via Vault cidr-hsv
# Note: sqlProxy-pg est ajoute automatiquement si des databases PostgreSQL sont definies
# Reseau (comment exposer l'app)
network: [...]
# Bases de donnees
databases:
pgs: [...] # PostgreSQL
mgs: [...] # MongoDB
# Messagerie
topics: { app: [...], ext: [...] }
subscriptions: { app: [...], ext: [...] }
# Stockage
buckets:
app:
- name: uploads
lifecycleRules: # Regles de lifecycle GCS (optionnel)
- action: Delete
age: 365
- action: SetStorageClass
storageClass: NEARLINE
age: 30
ext: [...]
# Labels personnalises (appliques sur toutes les ressources K8s et GCP)
labels:
team: team-services
bu: my-bu
# Monitoring Prometheus (cree un PodMonitoring pour Google Managed Prometheus)
prometheusScrape:
enabled: true
path: /metrics
port: 80
interval: 30s
# Dashboards GCP Monitoring (provisionnement via Terraform)
dashboards:
- name: my-dashboard
jsonPath: ./monitoring/my-dashboard.json
# Kubernetes
workers: [...]
cronJobs: [...]
pvcs: [...]
migration: { ... }
livenessProbe: { ... }
readinessProbe: { ... }
# Variables d'environnement
environmentVariables: [...]
# IP whitelist globale
whitelistRange: [...]
ChampTypeDescription
namestringNom de l’application. Utilise pour construire les URLs, noms de ressources, namespace par defaut.
ChampTypeDefautDescription
namespacestringnameNamespace Kubernetes
vaultSecretsPathstringChemin Vault pour les secrets
livenessProbeobjectProbe K8s pour detecter si le pod est vivant
readinessProbeobjectProbe K8s pour detecter si le pod est pret

Les valeurs supportent la substitution de variables :

# Variable obligatoire (erreur si non definie)
project: ${PROJECT_ID}
# Variable avec valeur par defaut
project: ${PROJECT_ID:mon-projet}
# Variable optionnelle (vide si non definie)
project: ${PROJECT_ID:-}

Le deployer accepte les deux extensions. Si deployer.yml n’existe pas, il cherche deployer.yaml automatiquement.


Voir aussi : Toutes les proprietes | Valeurs par defaut