Caascad Backend / (Caascad Shared)#
L'offre coté client est appelée "Caascad Backend".
Caascad Shared a été évoqué et cette notion a été choisie pour la partie développement.
caascad-zones#
defs.cue#
- attribut optionnel dans
#ZoneMetadata:shared
#ZoneMetadata: {
line: #Line
shared?: bool
}
- ajout de l'attribut uniquement les zones
cloud
#CloudZone: {
#Zone
type: "cloud"
metadata: shared: *false | true
...
}
zones.cue#
- activation du mode
sharedpour la zoneocb-xxx
zones: {
"ocb-xxx": {
...
metadata: shared: true
...
}
envs-ng#
WARNING : l'attribut shared n'existe que dans les zones cloud.
C'est donc la zone cloud à laquelle est associée une zone cliente qui détermine si elle est elle-même sur une zone "caascad shared".
- depuis une zone cloud =>
zone.metadata.shared - depuis une zone cliente =>
parent_zone.metadata.shared
envs.cue#
-
bypass d'une application de la zone
cloud(#EnvCloudFE,#EnvCloudAWS,#EnvCloudAzure)if !zone.metadata.shared { dashboard: #HelmConfig gitea: #HelmConfig gitea_provision: #AnsibleConfig } -
bypass d'une application de la zone
client(#EnvClientFE,#EnvClientAWSExistingCluster#EnvClientAWS,#EnvClientdAzure)if !parent_zone.metadata.shared { gitea: #HelmConfig gitea_provision: #AnsibleConfig }
Adaptation des configurations#
WARNING : l'attribut parent_zone n'existe pas dans le cas d'une zone infra
Si besoin d'adapter une configuration pour une zone client, alors bien s'assurer d'accéder à parent_zone.metadata.shared uniquement pour les zones client (ne pas faire l'appel dans le cas d'une zone infra).
vault.cue#
helm:{
values: {
vault: server: {
ingress: annotations: "kubernetes.io/ingress.class": *"ingress-nginx-public" | string
if zone.metadata.shared == true {
ingress: annotations: "kubernetes.io/ingress.class": "ingress-nginx-private"
}
}
}
}