Documentation Complète
⚠️ Attention - Mise à jour importante des rôles
Les anciens rôles (
Editor
,Admin
,Viewer
,User
) ont été remplacés par des rôles plus spécifiques et granulaires pour chaque service. Cette mise à jour permet un meilleur contrôle des permissions. Veuillez mettre à jour vos configurations en conséquence.⚠️ Attention - Mise à jour de la syntaxe des variables
La syntaxe pour les variables a été mise à jour. L'ancienne forme
${VARIABLE:}
n'est plus supportée. Utilisez désormais la forme${VARIABLE:DEFAULT_VALUE}
où DEFAULT_VALUE est la valeur par défaut si la variable n'est pas définie. s'il n'est pas défini, la variable sera ignorée. Pour les variables obligatoires, utilisez${VARIABLE}
ou ou${VARIABLE:-}
sans valeur par défaut.Exemple :
- Ancienne syntaxe :
${MY_VARIABLE:}
- Nouvelles syntaxes :
${MY_VARIABLE:valeur_par_defaut}
,${MY_VARIABLE:-}
,${MY_VARIABLE}
Tableau Récapitulatif
Élément | Description |
---|---|
name (Requis) | nom du projet |
codeType (Requis) | type de code |
replicas | nombre de répliques du déploiement de l'app |
migration | Configuration de la migration |
features | liste des fonctionnalités activées |
cloudFunctions (NEW) | Configuration pour les fonctions cloud |
dialogflow (NEW) | Configuration pour l'intégration de Dialogflow |
bigQuery (NEW) | Configuration pour l'intégration de BigQuery |
readinessProbe/livenessProbe | Configuration des sondes de contrôle |
vaultSecretsPath | Le chemin vers les secrets dans le coffre |
vpa | Configuration pour l'ajusteur vertical de pods |
namespace | L'espace de noms pour la plateforme |
dockerImage | L'image Docker pour la plateforme |
spaRootFile | Le fichier racine pour les applications SPA |
staticRewriteTarget | La cible pour les réécritures statiques |
staticPath | Le chemin pour le contenu statique |
firebase | Configuration pour l'intégration de Firebase |
workers | Une liste des travailleurs |
bucketObjectHeaders | Une liste des en-têtes des objets du bucket |
databases | Configuration pour les bases de données |
buckets | Configuration pour les buckets |
topics | Configuration pour les topics |
subscriptions | Configuration pour les abonnements |
services (deprecatited) | Une liste de services |
environmentVariables | Une liste de variables d'environnement |
whitelistRange | Une liste de plages d'adresses autorisées |
initContainers | Une liste de conteneurs d'initialisation |
containers | Une liste de conteneurs |
volumes | Une liste de volumes |
configMaps | Une liste de cartes de configuration |
volumeMount | Une liste de montages de volumes |
cronJobs | Une liste de tâches cron |
urlRedirects (deprecatited) | Une liste de redirections d'URL |
pvcs | Une liste de revendications de volume persistant |
network (NEW) | Une liste de service reseaux |
Détails des Éléments
name
name
est une chaîne de caractères représentant le nom du projet.
Exemple:
name: "mon-projet"
codeType
codeType
est une chaîne de caractères représentant le type de code.
Exemple:
codeType: "Web"
replicas
replicas
est un nombre représentant le nombre de répliques du déploiement de l'application.
Exemple:
replicas: 3
migration
migration
est un objet représentant la configuration de la migration.
- enable (boolean) : Indique si la migration est activée.
- useAppImg (boolean) : Indique si l'image de l'application doit être utilisée pour la migration.
- docker_image (string, optional) : Le nom de l'image Docker à utiliser pour la migration.
- command (array, optional) : Un tableau de commandes à exécuter pour la migration.
Exemple:
migration:
enable: true
useAppImg: false
docker_image: "image"
command:
- "command1"
- "command2"
features
features
est un tableau de chaînes de caractères représentant la liste des fonctionnalités activées.
Exemple:
features:
- "feature1"
- "feature2"
cloudFunctions
cloudFunctions
est un tableau d'objets représentant la configuration pour les fonctions cloud.
- name (string, requis) : Le nom de la fonction cloud
- realName (string, optionnel) : Le nom réel de la fonction cloud
- project (string, optionnel) : L'ID du projet
- runtime (string, requis) : Le runtime à utiliser
- location (string, optionnel) : La localisation de la fonction (e.g. europe-west1)
- trigger (string, requis) : Le type de déclencheur (bigquery, topic, http)
- source (string, requis) : Le chemin vers le code source
- entryPoint (string, requis) : Nom de la fonction dans votre code qui sera appelée par la Cloud Function lors de son exécution.
- memory (string, requis) : La quantité de mémoire allouée
- cpu (string, requis) : La quantité de CPU allouée
- trigger_topic (string, optionnel) : Le topic déclencheur si applicable (obligatoire si trigger est topic)
- ingress_settings (string, optionnel) : Configuration de l'ingress
- description (string, optionnel) : Description de la fonction
- timeout (string, requis) : Le délai d'expiration en secondes (e.g. 60)
- envVars (array) : Variables d'environnement
- allUsers_invoker (boolean, optionnel) : Autoriser l'invocation publique
- min_instance_count (number, optionnel) : Nombre minimum de copies de la Cloud Function à maintenir actives en permanence, même en l’absence de trafic.
- max_instance_count (number, optionnel) : Nombre maximum de copies de la Cloud Function à maintenir actives en permanence, même en l’absence de trafic.
- roles (array) : Rôle d'accès (default: CloudFunctionsViewer)
cloudfunctions.developer
cloudfunctions.invoker
cloudfunctions.viewer
Exemple:
cloudFunctions:
- name: "ma-fonction"
runtime: "nodejs16"
trigger: "http"
source: "./src"
entryPoint: "handler"
cpu: "1"
memory: "256MB"
timeout: "60"
description: "Ma fonction cloud"
envVars:
- name: "MA_VARIABLE"
value: "ma_valeur"
min_instance_count: 1
max_instance_count: 10
role: "CloudFunctionsViewer"
- name: "ma-fonction2"
runtime: "nodejs16"
trigger: "topic"
source: "./src"
entryPoint: "handler"
cpu: "1"
memory: "256MB"
timeout: "60s"
description: "Ma fonction cloud"
trigger_topic: "ma-topic"
trigger_region: "europe-west1"
envVars:
- name: "MA_VARIABLE"
value: "ma_valeur"
min_instance_count: 1
max_instance_count: 10
role: "CloudFunctionsInvoker"
dialogflow
Configuration pour l'intégration avec Dialogflow.
- ext (array) : Liste des projets externes
- enable (boolean) : Activation de l'intégration
- projects (array) : Liste des IDs des projets
- roles (enum) : Rôle d'accès (default: DialogflowReader)
dialogflow.client
dialogflow.reader
dialogflow.developer
Exemple:
dialogflow:
ext:
- enable: true
projects:
- "projet-dialogflow-1"
- "projet-dialogflow-2"
roles:
- "DialogflowDeveloper"
bigQuery
Configuration pour l'intégration avec BigQuery.
- ext (array) : Liste des projets externes
- enable (boolean) : Activation de l'intégration
- projects (array) : Liste des IDs des projets
- roles (array) : Rôle d'accès (default: bigquery.dataViewer)
bigquery.dataEditor
bigquery.dataViewer
bigquery.jobUser
bigquery.metadataViewer
bigquery.user
Exemple:
bigQuery:
ext:
- enable: true
projects:
- "projet-bigquery-1"
- "projet-bigquery-2"
roles:
- "BigQueryDataViewer"
firebase
Configuration pour l'intégration avec Firebase.
- enable (boolean) : Activation de l'intégration
- project (string) : ID du projet Firebase
- roles (array) : Rôle d'accès (default: FirebaseViewer)
firebase.analyticsViewer
firebase.developer
firebase.quality
firebase.viewer
firebase.admin
Exemple:
firebase:
enable: true
project: "mon-projet-firebase"
roles:
- "firebase.developer"
network
Configuration réseau de l'application.
- name (string, optionnel) : Nom du réseau
- isPublic (boolean, optionnel) : Accessibilité publique
- host (string, optionnel) : Nom d'hôte complet (FQDN)
- aliases (array) : Liste des noms de domaine alternatifs
- dns_record_name (string, optionnel) : Nom d'enregistrement DNS
- dnsRedirections (array, optionnel) : Liste des FQDN à rediriger vers l'hôte principal
- seo4ajax (object, optionnel) : Configuration SEO4AJAX
- path (string) : Chemin pour SEO4AJAX
- key (string) : Clé d'API SEO4AJAX
- fromToWWW (boolean, default: true) : Gestion des redirections www. Par exemple, si l'hôte est configuré avec une valeur comme www.example.com, alors cette annotation redirigera de example.com vers www.example.com. À l'inverse, si l'hôte est configuré avec une valeur comme example.com (donc sans www), alors cette annotation redirigera de www.example.com vers example.com.
- services (array) : Liste des services
- urlRedirects (array) : Liste des redirections
- staticPath (string, optionnel) : Chemin des fichiers statiques
- spaRootFile (string, optionnel) : Fichier racine SPA
- staticRewriteTarget (string, optionnel) : Cible de réécriture statique
Exemple:
network:
- name: "frontend"
isPublic: true
host: "www.exemple.com"
aliases:
- "app.exemple.com"
dnsRedirections:
- "ancien.exemple.com"
- "legacy.exemple.com"
services:
- name: "frontend-service"
port: 80
path: "/"
urlRedirects:
- source: "/ancien"
target: "/nouveau"
staticPath: "/static"
spaRootFile: "index.html"
readinessProbe/livenessProbe
readinessProbe
et livenessProbe
sont des objets représentant la configuration des sondes de contrôle.
- httpGet (object) : Configuration pour une requête HTTP GET.
- path (string) : Le chemin de l'URL pour la requête HTTP GET.
- port (int) : Le port pour la requête HTTP GET.
- initialDelaySeconds (int) : Le délai initial avant de lancer la sonde.
- periodSeconds (int) : La période entre les exécutions de la sonde.
Exemple:
readinessProbe:
httpGet:
path: "/healthz"
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
livenessProbe:
httpGet:
path: "/healthz"
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
vaultSecretsPath
vaultSecretsPath
est une chaîne de caractères représentant le chemin vers les secrets dans le coffre.
Exemple:
vaultSecretsPath: "path/to/secrets/vault"
vpa
vpa
est un objet représentant la configuration pour l'ajusteur vertical de pods.
- enabled (boolean) : Indique si l'ajusteur vertical de pods est activé.
- updateMode (string) : Le mode de mise à jour de l'ajusteur vertical de pods (e.g.,
Auto
,Initial
,Recreate
,Off
). - minReplicas (int) : Le nombre minimum de réplicas pour l'ajusteur vertical de pods.
Exemple:
vpa:
enabled: true
updateMode: "Auto"
minReplicas: 1
namespace
namespace
est une chaîne de caractères représentant l'espace de noms pour la plateforme.
Exemple:
namespace: "mon-namespace"
dockerImage
dockerImage
est une chaîne de caractères représentant l'image Docker pour la plateforme.
Exemple:
dockerImage: "mon-image-docker"
spaRootFile
spaRootFile
est une chaîne de caractères représentant le fichier racine pour les applications SPA.
Exemple:
spaRootFile: "index.html"
staticRewriteTarget
staticRewriteTarget
est une chaîne de caractères représentant la cible pour les réécritures statiques.
Exemple:
staticRewriteTarget: "/"
staticPath
staticPath
est une chaîne de caractères représentant le chemin pour le contenu statique.
Exemple:
staticPath: "/"
workers
`workers est un tableau d'objets représentant les travailleurs.
- enabled (boolean) : Indique si le travailleur est activé.
- name (string) : Le nom du travailleur.
- replicas (int) : Le nombre de réplicas du travailleur.
- args (array) : Un tableau de chaînes de caractères représentant les arguments du travailleur.
- useApp (boolean) : Indique si le travailleur utilise l'application principale.
- image (string) : L'image Docker du travailleur.
- env (array) : Un tableau d'objets représentant les variables d'environnement pour le travailleur.
Exemple:
workers:
- enabled: true
name: "worker1"
replicas: 2
args:
- "arg1"
- "arg2"
useApp: true
image: "worker-image"
env:
- name: "ENV1"
value: "value1"
- name: "ENV2"
value: "value2"
bucketObjectHeaders
bucketObjectHeaders
est un tableau d'objets qui définit les en-têtes HTTP personnalisés pour les objets stockés dans un compartiment de stockage.
- path (string) : Le chemin d'accès de l'objet dans le compartiment de stockage.
- headers (array) : Un tableau de chaînes de caractères qui représentent les en-têtes HTTP personnalisés à appliquer à l'objet.
Exemple:
bucketObjectHeaders:
- path: "path1"
headers:
- "header1"
- "header2"
- path: "path2"
headers:
- "header3"
- "header4"
databases
databases
est un objet qui contient des informations sur les bases de données configurées pour l'application. Il est divisé en plusieurs catégories : pgs
, pgsExt
, mgs
, mgsExt
.
- pgs (array) : Un tableau d'objets
Pg
représentant les bases de données PostgreSQL locales. - pgsExt (array) : Un tableau d'objets
Pg
représentant les bases de données PostgreSQL externes. - mgs (array) : Un tableau d'objets
Mg
représentant les bases de données MongoDB locales. - mgsExt (array) : Un tableau d'objets
Mg
représentant les bases de données MongoDB externes.
Exemple:
databases:
pgs:
- name: "pg1"
dbname: "dbname1"
extensions: ["uuid-ossp", "pgcrypto"]
pgsExt: []
mgs: []
mgsExt: []
L'objet Pg
représente une base de données PostgreSQL.
- name (string) : Le nom de la base de données.
- instance (string, optional) : L'instance de base de données.
- branch (string, optional) : La branche associée à la base de données.
- provider (string, optional) : Le fournisseur de services (e.g., AWS, GCP).
- project (string, optional) : Le projet associé à la base de données.
- dbname (string, optional) : Le nom de la base de données dans l'instance.
- extensions (array) : Un tableau de chaînes de caractères représentant les extensions PostgreSQL à installer.
#### Variables générées par Deployer
- PG_DBNAME_DATABASE_NAME : Nom (par exemple PG_NAME_TEST)
- PG_HOST_DATABASE_NAME : Host (PG_HOST_TEST)
- PG_PASS_DATABASE_NAME : Mot de passe (PG_PASS_TEST)
- PG_PORT_DATABASE_NAME : Port (PG_PORT_TEST)
- GOOGLE_APPLICATION_CREDENTIALS : Path du service account
L'objet Mg
représente une base de données MongoDB.
- name (string) : Le nom de la base de données.
- clusterHost (string, optional) : L'hôte du cluster MongoDB.
- branch (string, optional) : La branche associée à la base de données.
- privateIP (string, optional) : L'adresse IP privée de la base de données.
- dbname (string, optional) : Le nom de la base de données dans l'instance.
- vaultRead (string, optional) : Le chemin de lecture des secrets dans Vault.
- restoreFileName (string, optional) : Le nom du fichier de sauvegarde pour la restauration.
#### Variables générées par Deployer
- MG_DBNAME_DATABASE_NAME : Nom (par exemple MG_NAME_TEST)
- MG_HOST_DATABASE_NAME : Host (MG_HOST_TEST)
- MG_PASS_DATABASE_NAME : Mot de passe (MG_PASS_TEST)
- MG_PORT_DATABASE_NAME : Port (MG_PORT_TEST)
buckets
buckets
est un objet qui contient des informations sur les compartiments de stockage configurés pour l'application. Il est divisé en deux catégories : app
et ext
.
- app (array) : Un tableau d'objets
Bucket
représentant les compartiments de stockage internes à l'application. - ext (array) : Un tableau d'objets
Bucket
représentant les compartiments de stockage externes.
Exemple:
buckets:
app:
- name: "bucket1"
roles:
- "storage.objectViewer"
isPublic: true
ext:
- name: "bucket2"
project: "project1"
realName: "realBucketName"
roles:
- "storage.objectWriter"
L'objet Bucket
représente un compartiment de stockage.
- name (string) : Le nom du compartiment.
- roles (array) : Les rôles d'accès au bucket. Valeurs possibles :
storage.objectViewer
: Lecture seule des objets du bucketstorage.objectCreator
: Création d'objets uniquement, sans lecture ni modificationstorage.objectWriter
: Lecture et écriture complète des objets- branch (string, optional) : La branche associée au compartiment.
- project (string, optional) : Le projet associé au compartiment.
- realName (string, optional) : Le nom réel de la resource bucket dans GCP
- isPublic (boolean, default: false) : Indique si le compartiment est public.
#### Generated Variable
- BCK_NAME_
: Variable du bucket de l'application (BCK_NAME_BUCKETNAME)
topics
topics
est un objet qui contient des informations sur les topics de messagerie configurés pour l'application. Il est divisé en deux catégories : app
et ext
.
- app (array) : Un tableau d'objets
Topic
représentant les topics internes à l'application. - ext (array) : Un tableau d'objets
Topic
représentant les topics externes.
Exemple:
topics:
app:
- name: "topic1"
roles:
- "pubsub.publisher"
project: "project1"
ext:
- name: "topic2"
project: "project2"
realName: "realTopicName"
roles:
- "pubsub.subscriber"
L'objet Topic
représente un topic de messagerie.
- name (string) : Le nom du topic.
- roles (array) : Les rôles d'accès au topic. Valeurs possibles :
pubsub.publisher
: Autorisation de publier des messages uniquementpubsub.subscriber
: Autorisation de s'abonner et lire les messagespubsub.viewer
: Lecture seule des métadonnées, sans accès aux messages- branch (string, optional) : La branche associée au topic.
- project (string, optional) : Le projet associé au topic.
- realName (string, optional) : Le nom réel de la resource topic dans GCP
#### Generated Variable
- TCP_ID_TOPIC_NAME : Id de la topic
subscriptions
subscriptions
est un objet qui contient des informations sur les abonnements de messagerie configurés pour l'application. Il est divisé en deux catégories : app
et ext
.
- app (array) : Un tableau d'objets
Subscription
représentant les abonnements internes à l'application. - ext (array) : Un tableau d'objets
Subscription
représentant les abonnements externes.
Exemple:
subscriptions:
app:
- name: "sub1"
topic: "topic1"
messageRetentionDuration: "604800s"
retainAckedMessage: true
ackDeadLineSeconds: "300"
roles:
- "pubsub.subscriber"
ext:
- name: "sub2"
topic: "topic2"
project: "project1"
realName: "realSubName"
roles:
- "pubsub.subscriber"
L'objet Subscription
représente un abonnement de messagerie.
- name (string) : Le nom de l'abonnement.
- topic (string) : Le nom du topic associé.
- labels (object, optional) : Un objet représentant les étiquettes associées à l'abonnement.
- pushConfig (object, optional) : Un objet
PushConfig
représentant la configuration de push pour l'abonnement. - ackDeadLineSeconds (string, optional) : La durée maximale de reconnaissance des messages.
- messageRetentionDuration (string, optional) : La durée de rétention des messages.
- retainAckedMessage (boolean, optional) : Indique si les messages reconnus doivent être conservés.
- expirationPolicy (object, optional) : Un objet
ExpirationPolicy
représentant la politique d'expiration. - filter (string, optional) : Un filtre pour les messages.
- deadLetterPolicy (object, optional) : Un objet
DeadLetterPolicy
représentant la politique de lettre morte. - retryPolicy (object, optional) : Un objet
RetryPolicy
représentant la politique de réessai. - enableMessageOrdering (boolean, optional) : Indique si l'ordre des messages doit être maintenu.
- project (string, optional) : Le projet associé à l'abonnement.
- roles (array) : Les rôles d'accès à l'abonnement. Valeurs possibles :
pubsub.subscriber
: Autorisation de recevoir et acquitter les messagespubsub.viewer
: Lecture seule des configurations d'abonnement- realName (string, optional) : Le nom réel de la resource subscription dans GCP ( obligatoire pour les
ext
) - branch (string, optional) : La branche associée à l'abonnement.
#### Generated Variable
- SUB_ID_TOPIC_NAME : Id de la subscription
services
(Deprecated)
L'attribut 'services' est désormais déprécié.
Veuillez configurer les services dans l'attribut 'network'.
services
est un tableau d'objets Service
représentant les services configurés pour l'application.
Exemple:
services:
- name: "service1"
port: 80
isPublic: true
host: "www.example.com"
aliases:
- "example.com"
- "example2.com"
internalPaths:
- "/internal"
seo4ajax:
path: "/seo4ajax"
key: "key"
hasWWW: true
L'objet Service
représente un service configuré pour l'application.
- name (string, optional) : Le nom du service.
- port (number, optional) : Le port sur lequel le service est exposé.
- isPublic (boolean, optional) : Indique si le service est public.
- host (string, optional) : Le nom de l'hôte.
- aliases (array) : Un tableau de chaînes de caractères représentant les alias DNS du service.
- internalPaths (array) : Un tableau de chemins internes pour le service.
- seo4ajax (object, optional) : Un objet
Seo4ajax
représentant la configuration SEO pour le service. - hasWWW (boolean, default: true) : Indique si le service doit inclure "www" dans son URL.
Seo4ajax
L'objet Seo4ajax
représente la configuration SEO pour le service.
- path (string) : Le chemin d'accès pour le SEO.
- key (string) : La clé SEO.
environmentVariables
environmentVariables
est un tableau d'objets EnvironmentVariable
représentant les variables d'environnement pour l'application.
Exemple:
environmentVariables:
- name: "ENV1"
value: "value1"
- name: "ENV2"
value: "value2"
L'objet EnvironmentVariable
représente une variable d'environnement.
- name (string) : Le nom de la variable d'environnement.
- value (string) : La valeur de la variable d'environnement.
whitelistRange
whitelistRange
est un tableau d'objets cidrBlock
représentant les plages de listes blanches CIDR pour l'application.
Exemple:
whitelistRange:
- name: "range1"
cidrs:
- "192.168.0.0/24"
L'objet cidrBlock
représente une plage de liste blanche CIDR.
- name (string) : Le nom de la plage.
- cidrs (array) : Un tableau de chaînes de caractères représentant les plages CIDR.
initContainers
initContainers
est un tableau d'objets ContainerDefinition
représentant les conteneurs d'initialisation pour l'application.
Exemple:
initContainers:
- name: "init-container"
image: "init-image"
containers
containers
est un tableau d'objets ContainerDefinition
représentant les conteneurs principaux pour l'application.
Exemple:
containers:
- name: "main-container"
image: "main-image"
volumes
volumes
est un tableau d'objets ContainerDefinition
représentant les volumes utilisés par l'application.
Exemple:
volumes:
- name: "volume1"
persistentVolumeClaim:
claimName: "pvc1"
configMaps
configMaps
est un tableau d'objets ContainerDefinition
représentant les ConfigMaps utilisés par l'application.
Exemple:
configMaps:
- name: "configMap1"
items:
- key: "configKey"
path: "configPath"
volumeMount
volumeMount
est un tableau d'objets ContainerDefinition
représentant les montages de volumes pour les conteneurs de l'application.
Exemple:
volumeMount:
- name: "volumeMount1"
mountPath: "/mnt/data"
cronJobs
cronJobs
est un tableau d'objets CronJobs
représentant les tâches cron configurées pour l'application.
Exemple:
cronJobs:
- name: "cron1"
enabled: true
schedule: "0 0 * * *"
timezone: "Europe/Paris"
commands:
- "command1"
- "command2"
env:
- name: ENV
value: "dev"
L'objet CronJobs
représente une tâche cron.
- name (string) : Le nom de la tâche cron.
- enabled (boolean, default: true) : Indique si la tâche cron est activée.
- schedule (string) : Le calendrier de la tâche cron.
- image (string, optional) : L'image Docker utilisée par la tâche cron.
- useApp (boolean, default: false) : Indique si la tâche cron utilise l'application principale.
- env (array, optional) : Un tableau d'objets
EnvironmentVariable
représentant les variables d'environnement pour la tâche cron. - commands (array) : Un tableau de chaînes de caractères représentant les commandes exécutées par la tâche cron.
- timezone : Configure la timezone. default: UTC, exemple: Europe/Paris
urlRedirects
(Deprecated)
Cet attribut est déprécié. Il est recommandé d'utiliser l'attribut 'network' pour configurer les redirections d'URL.
Les redirections d'URL doivent désormais être définies dans la section 'network'.
urlRedirects
est un tableau d'objets Redirect
représentant les redirections d'URL configurées pour l'application.
Exemple:
urlRedirects:
- source: "/source1"
target: "/target1"
L'objet Redirect
représente une redirection d'URL.
- source (string) : La source de la redirection.
- target (string) : La cible de la redirection.
- sourceArgs (string, optional) : Les arguments de la source.
- targetArgs (string, optional) : Les arguments de la cible.
- useRegex (boolean, default: false) : Indique si la source utilise une expression régulière.
pvcs
pvcs
est un tableau d'objets PVC
représentant les volumes persistants configurés pour l'application.
Exemple:
pvcs:
- name: "pvc1"
diskSize: "200Gi"
accessMode: "ReadWriteOnce"
L'objet PVC
représente un volume persistant.
- name (string) : Le nom du volume persistant.
- diskSize (string) : La taille du disque du volume persistant.
- accessMode (string) : Le mode d'accès au volume persistant (e.g., ReadWriteOnce, ReadOnlyMany, ReadWriteMany).
network
L'attribut network
représente la configuration réseau et permet de spécifier plusieurs services réseau ainsi que les redirections d'URL et les plages d'adresses CIDR.
L'attribut network
est défini comme un tableau optionnel d'objets Network
.
Exemple :
network:
- name: "network1"
isPublic: true
services:
- name: "service1"
port: 80
path: "/"
- name: "service2"
realname: "myservice2.namespace.svc.cluster.local"
path: "/"
dns_zone_name: "example.com"
host: "www.example.com"
aliases:
- "alias1.example.com"
- "alias2.example.com"
whitelistRange:
- name: "range1"
cidrs:
- "192.168.0.0/24"
urlRedirects:
- source: "/source1"
target: "/target1"
dnsRedirections:
- "ancien.exemple.com"
- "legacy.exemple.com"
Network
représente la configuration d'un réseau et contient plusieurs propriétés permettant de définir les services, les DNS, et d'autres configurations.
- name (optionnel) : Nom du réseau. Valide via la contrainte
DNSprefixValidator
.
Exemple :
yaml
name: "my-network"
- isPublic (boolean, optionnel) : Indique si le réseau est public ou non.
Exemple :
yaml
isPublic: true
- host (optionnel) : Hôte complet, validé avec la contrainte
@IsFQDN()
pour s'assurer que le format est un nom de domaine complet.
Exemple :
yaml
host: "www.example.com"
- aliases (tableau de chaînes, optionnel) : Liste des alias FQDN associés au réseau.
Exemple :
yaml
aliases:
- "alias1.example.com"
- "alias2.example.com"
- dnsRedirections (tableau de chaînes, optionnel) : Liste des FQDN à rediriger vers l'hôte principal
Exemple :
yaml
dnsRedirections:
- "ancien.exemple.com"
- "legacy.exemple.com"
- seo4ajax (optionnel) : Configuration SEO.
Exemple :
yaml
seo4ajax:
path: "/seo-path"
key: "seo-key"
- services (tableau de
serviceGke
) : Liste des services associés au réseau.
Exemple :
yaml
services:
- name: "service1"
port: 80
path: "/"
- name: "service2"
realname: "myservice2.namespace"
path: "/"
- urlRedirects (tableau de
Redirect
, optionnel) : Liste des redirections d'URL.
Exemple :
yaml
urlRedirects:
- source: "/old-path"
target: "/new-path"
- whitelistRange (tableau de
cidrBlock
, optionnel) : Liste des plages d'adresses IP autorisées.
Exemple :
yaml
whitelistRange:
- name: "range1"
cidrs:
- "192.168.0.0/24"
- cidrsList (optionnel) : Liste des adresses CIDR.
Exemple :
yaml
cidrsList: "192.168.0.0/24"
- staticPath (optionnel) : Chemin statique pour le contenu du réseau.
Exemple :
yaml
staticPath: "/static"
- spaRootFile (optionnel) : Fichier racine pour les applications Single Page Application (SPA).
Exemple :
yaml
spaRootFile: "index.html"
- staticRewriteTarget (optionnel) : Cible pour la réécriture des chemins statiques.
Exemple :
yaml
staticRewriteTarget: "/"
- Services (serviceGke)
Chaque réseau contient un tableau de services définis par la classe serviceGke
. Chaque service inclut les informations suivantes :
- name (obligatoire) : Nom du service.
- port (optionnel) : Port associé au service.
- path (optionnel) : Chemin d'accès au service.
- realname (optionnel) : Nom complet du service pour des configurations internes.
Exemple :
yaml
services:
- name: "service1"
port: 80
path: "/"
- name: "service2"
realname: "service2.internal.namespace"
path: "/"