Cette page explique comment configurer Cloud Deploy pour afficher la pour chaque cible d'un pipeline de livraison.
Cloud Deploy utilise Skaffold pour effectuer le rendu de vos des fichiers manifestes. Le service prend en charge le rendu de fichiers manifestes bruts et d'outils de gestion de fichiers manifestes plus avancés, tels que Helm, Kustomize et kpt.
Le processus d'affichage comporte deux étapes:
L'outil de gestion des fichiers manifestes génère le fichier manifeste.
Skaffold remplace les références d'images dans le fichier manifeste par les images que vous souhaitez déployer dans votre version.
Cette page inclut des exemples de configuration à l'aide de Helm et de Kustomize.
Générer votre configuration avec Skaffold
Si vous ne possédez pas déjà de fichier de configuration Skaffold (skaffold.yaml
), vous pouvez l'utiliser pour en générer un automatiquement, en fonction du contenu de votre dépôt.
Installez Skaffold à l'aide de Google Cloud CLI :
gcloud components install skaffold
Exécutez
skaffold init
dans le dépôt contenant vos fichiers manifestes :skaffold init --skip-build
Cette commande crée un fichier skaffold.yaml
dans votre dépôt. Ce fichier
référence les fichiers manifestes de ce dépôt. Le contenu se présente comme suit :
apiVersion: skaffold/v4beta7
kind: Config
metadata:
name: sample-app
manifests:
rawYaml:
- k8s-manifests/deployment.yaml
- k8s-manifests/rbac.yaml
- k8s-manifests/redis.yaml
- k8s-manifests/service.yaml
Afficher des fichiers manifestes bruts
Les fichiers manifestes bruts sont des fichiers manifestes qui ne sont pas gérés par un outil comme Helm ou Kustomize, et ne nécessitent donc aucun prétraitement avant d'être hydratés déployés sur un cluster.
Par défaut, Cloud Deploy utilise skaffold render
pour afficher vos fichiers manifestes Kubernetes, en remplaçant les noms d'images non tagués par les noms d'images tagués des images de conteneur que vous déployez. Lorsque vous promouvez la version, Cloud Deploy utilise skaffold apply
pour appliquer les fichiers manifestes et déployer les images sur votre cluster Google Kubernetes Engine.
Un bloc manifests
d'une configuration de base se présente comme suit:
manifests:
rawYaml:
- PATH_TO_MANIFEST
Pour en savoir plus sur les valeurs pouvant être transmises ici, consultez la documentation Skaffold.
Effectuer un rendu avec Helm
Vous pouvez utiliser Cloud Deploy pour afficher vos graphiques Helm. Pour ce faire, vous devez inclure les détails du chart Helm dans une stanza deploy
au sein d'un
Profil Skaffold.
Chacune de ces définitions ressemble à ceci:
apiVersion: skaffold/v4beta7
kind: Config
manifests:
helm:
releases:
- name: RELEASE_NAME
chartPath: PATH_TO_HELM_CHART
Où :
RELEASE_NAME est le nom de l'instance de graphique Helm pour cette version.
PATH_TO_HELM_CHART est le chemin d'accès local à un chart Helm empaqueté ou à un répertoire du chart Helm non empaqueté.
Vous pouvez utiliser d'autres options de configuration Helm, comme décrit dans la documentation Skaffold.
Effectuer un rendu avec Kustomize
Vous pouvez utiliser Kustomize avec Cloud Deploy. À
Pour ce faire, vous pointez vers les fichiers Kustomization à partir du bloc deploy
dans
la configuration de votre profil skaffold.yaml
.
Vous devez inclure une configuration Kustomize distincte pour chaque cible pour laquelle vous utilisez Kustomize, sous chaque profile
correspondante dans votre skaffold.yaml
.
Chaque définition se présente comme suit :
apiVersion: skaffold/v4beta7
kind: Config
manifests:
kustomize:
paths:
- PATH_TO_KUSTOMIZE
Où :
PATH_TO_KUSTOMIZE pointe vers vos fichiers Kustomization. La valeur par défaut est ["."]
.
Vous pouvez utiliser d'autres options de configuration Kustomize, comme décrit dans le Documentation Skaffold
Configurer différents fichiers manifestes par cible
Souvent, chaque cible nécessite une configuration légèrement différente. Par exemple, vous pouvez avoir plus de réplicas dans vos déploiements de production que dans vos déploiements de préproduction.
Vous pouvez afficher un ensemble différent de fichiers manifestes pour chaque cible en fournissant chaque variante sous la forme d'un profil Skaffold différent.
Profils avec fichiers manifestes bruts
Lorsque vous travaillez avec des fichiers manifestes bruts, vous pouvez faire pointer Cloud Deploy vers un fichier différent selon la cible. Vous pouvez le configurer comme suit :
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
rawYaml:
- prod.yaml
- name: staging
manifests:
rawYaml:
- staging.yaml
Profils avec Kustomize
Voici un exemple de skaffold.yaml
comportant différents profils de préproduction et de production à l'aide de Kustomize, où chaque profil pointe vers un fichier Kustomization différent:
apiVersion: skaffold/v4beta7
kind: Config
profiles:
- name: prod
manifests:
kustomize:
paths:
- environments/prod
- name: staging
manifests:
kustomize:
paths:
- environments/staging
Profils référencés dans le pipeline de livraison
Ces profils, définis dans skaffold.yaml
, sont référencés dans la diffusion
configuration de pipeline, par cible:
serialPipeline:
stages:
- targetId: staging-target
profiles:
- staging
- targetId: prod-target
profiles:
- prod
Étape suivante
- En savoir plus sur la configuration du pipeline de livraison Cloud Deploy
- Suivez le tutoriel des profils Skaffold Cloud Deploy.
- En savoir plus sur Kustomize.
- En savoir plus sur Helm.
- En savoir plus sur Kpt.
- Pensez à utiliser Artifact Registry pour stocker des artefacts tels que des graphiques Helm ou des fichiers Kustomizations.