Aller au contenu

Toutes les proprietes

ProprieteTypeRequisDefautDescription
namestringouiNom de l’application
namespacestringnonnameNamespace Kubernetes
codeTypeenumnonWebWeb | Static | Spa | Infra
maxRequestBodySizestringnon500MiTaille max du body HTTP
vaultSecretsPathstringnonChemin Vault pour les secrets
featuresstring[]non[]Features : redis, redis72, jwt, kms, drive, nginx-php
replicasnumbernon2Nombre de pods
networkobject[]nonautoConfiguration reseau
databasesobjectnonBases de donnees
topicsobjectnonPub/Sub topics
subscriptionsobjectnonPub/Sub subscriptions
bucketsobjectnonBuckets GCS
workersobject[]non[]Workers background
cronJobsobject[]non[]Taches planifiees
migrationobjectnonMigration database
cloudFunctionsobject[]nonGoogle Cloud Functions
dashboardsobject[]non[]Dashboards GCP Monitoring
livenessProbeobjectnonK8s liveness probe
readinessProbeobjectnonK8s readiness probe
environmentVariablesobject[]non[]Variables d’env
labelsmap(string)non{}Labels custom K8s et GCP
prometheusScrapeobjectnonConfig PodMonitoring Prometheus
whitelistRangeobject[]non[]IP whitelist globale

Labels personnalises appliques sur toutes les ressources Kubernetes et GCP.

labels:
team: team-services
bu: my-bu
project: custom-name # auto-injecte depuis APPSLUG si absent
  • Les labels systeme (app, appSlug, deployedBy, bu, env) ne peuvent pas etre ecrases.
  • Le label project est automatiquement ajoute avec la valeur de APPSLUG si non defini.
  • Les labels sont propages dans : Deployment, Service, Worker, CronJob, Migration, ConfigMap, PDB, PodMonitoring.
  • Les labels sont aussi ajoutes dans les default_labels du provider GCP (Buckets, Cloud Functions, Pub/Sub, etc.).

Configure un PodMonitoring pour Google Managed Prometheus.

ProprieteTypeDefautDescription
prometheusScrape.enabledbooleanfalseActiver le PodMonitoring
prometheusScrape.pathstring/metricsChemin de l’endpoint metriques
prometheusScrape.portinteger80Port a scraper
prometheusScrape.intervalstring30sIntervalle de scraping
prometheusScrape:
enabled: true
path: /metrics
port: 8080
interval: 15s
ProprieteTypeDefautDescription
namestringNom du reseau (requis)
isPublicbooleanfalseAcces public (prod uniquement)
hoststringHostname prod (ex: api.homeserve.fr)
hostPrefixstringPrefixe DNS (ex: api)
fromToWWWbooleantrueRedirection www
aliasesstring[][]Hostnames supplementaires
servicesobject[]Services backend
services[].namestringNom du service (requis)
services[].portinteger80Port (80-65534)
services[].pathstring/Path prefix
whitelistRangeobject[][]IP whitelist par reseau
seo4ajaxobjectPre-rendering SEO
seo4ajax.keystringCle API SEO4Ajax
seo4ajax.pathstringPrefixe de path
corsobjectOverride CORS
cors.enabledbooleantrueActiver/desactiver CORS
cors.allowOriginsstring[]Origines autorisees
cors.allowMethodsstring[]Methodes autorisees
cors.allowHeadersstring[]Headers autorises
cors.maxAgestringDuree cache preflight
cors.exposeHeadersstring[]Headers exposes
timeoutobjectOverride timeouts
timeout.requeststring300sTimeout requete
timeout.idlestring300sTimeout idle
rateLimitobjectRate limiting
rateLimit.requestsintegerMax requetes
rateLimit.unitenumsecond | minute | hour
retryobjectPolitique de retry
retry.numRetriesintegerNombre de retries
loadBalancerenumRoundRobin | LeastRequest | Random | ConsistentHash | RingHash
responseHeadersobjectManipulation headers reponse
responseHeaders.setmapHeaders a ajouter/modifier
responseHeaders.removestring[]Headers a supprimer
requestHeadersobjectManipulation headers requete
requestHeaders.setmapHeaders a ajouter/modifier
requestHeaders.removestring[]Headers a supprimer
urlRewriteobjectReecriture d’URL
urlRewrite.typestringReplacePrefixMatchType de rewrite
urlRewrite.valuestringValeur de remplacement
urlRedirectsobject[][]Redirections de path
dnsRedirectionsstring[][]Redirections de domaine

Voir aussi la page dediee Storage (Buckets).

ProprieteTypeRequisDefautDescription
namestringouiNom du bucket
isPublicbooleannonfalseRendre le bucket accessible publiquement
mountPathstringnonChemin de montage dans le pod (GCSFuse)
lifecycleRulesobject[]non[]Regles de lifecycle GCS
branchstringnonbranche couranteOverride de branche pour le nommage
projectstringnonprojet courantOverride de projet GCP
ProprieteTypeRequisDefautDescription
namestringouiNom du bucket
providerstringnonPrefixe du bucket externe (genere {provider}-{branch}-{name})
realNamestringnonNom exact du bucket existant (prioritaire sur provider)
branchstringnonbranche couranteOverride de branche
projectstringnonprojet courantOverride de projet GCP
ProprieteTypeRequisDefautDescription
actionstringouiDelete, SetStorageClass ou AbortIncompleteMultipartUpload
storageClassstringsi SetStorageClassClasse cible : NEARLINE, COLDLINE, ARCHIVE
agenumbernonAge de l’objet en jours
matchesPrefixstring[]nonPrefixes de chemin (ex: ["tmp/", "cache/"])
matchesSuffixstring[]nonSuffixes de fichier (ex: [".log", ".tmp"])
numNewerVersionsnumbernonNombre de versions plus recentes
withStatestringnonEtat : LIVE, ARCHIVED ou ANY
buckets:
app:
- name: uploads
lifecycleRules:
# Supprimer les objets de plus d'un an
- action: Delete
age: 365
# Archiver en Nearline apres 30 jours
- action: SetStorageClass
storageClass: NEARLINE
age: 30
# Supprimer les fichiers temporaires apres 7 jours
- action: Delete
matchesPrefix: ["tmp/", "cache/"]
age: 7
# Supprimer les anciennes versions (garder 3)
- action: Delete
numNewerVersions: 3
withState: ARCHIVED

Dashboards GCP Cloud Monitoring provisionnees via Terraform (google_monitoring_dashboard). Supprimer une entree supprime le dashboard au prochain deploy.

ProprieteTypeRequisDescription
dashboards[].namestringouiIdentifiant unique du dashboard (nommage Terraform)
dashboards[].jsonPathstringouiChemin relatif vers le fichier JSON du dashboard
dashboards:
- name: overview
jsonPath: ./monitoring/overview.json
ProprieteTypeRequisDefautDescription
databases.pgs[].namestringouiNom de la base PostgreSQL
databases.mgs[].namestringouiNom de la base MongoDB
ProprieteTypeRequisDefautDescription
migration.enablebooleannonfalseActiver les migrations
migration.useAppImgbooleannonfalseUtiliser l’image de l’app
migration.commandstring/string[]nonCommande de migration
ProprieteTypeRequisDefautDescription
workers[].namestringouiNom du worker
workers[].enabledbooleanouiActiver le worker
workers[].argsstring[]non[]Commande
workers[].replicasnumbernon1Nombre de replicas
workers[].useAppbooleannontrueUtiliser l’image de l’app
workers[].imagestringnonImage Docker custom (si useApp=false)
workers[].envobject[]non[]Variables d’env supplementaires
workers[].resourcesRequestsobjectnonCPU/memory requests
workers[].resourcesLimitsobjectnonCPU/memory limits
ProprieteTypeRequisDefautDescription
cronJobs[].namestringouiNom du job
cronJobs[].schedulestringouiExpression cron
cronJobs[].useAppbooleannonfalseUtiliser l’image de l’app
cronJobs[].imagestringnonImage Docker custom (si useApp=false)
cronJobs[].commandsstring[]non[]Commande
cronJobs[].envobject[]non[]Variables d’env supplementaires
cronJobs[].enabledbooleannontrueActif en production
cronJobs[].enabledInStagingbooleannonfalseActif en staging
cronJobs[].timezonestringnonUTCTimezone du schedule