Skip to content

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 bucket
  • storage.objectCreator : Création d'objets uniquement, sans lecture ni modification
  • storage.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 uniquement
  • pubsub.subscriber : Autorisation de s'abonner et lire les messages
  • pubsub.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 messages
  • pubsub.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: "/"