Cette page explique comment configurer Google Cloud Deploy pour afficher la configuration de chaque cible dans un pipeline de livraison.
Google Cloud Deploy utilise Skaffold pour afficher vos fichiers manifestes Kubernetes. Ce service permet d'afficher des fichiers manifestes bruts et d'autres outils avancés de gestion des fichiers manifestes, tels que Helm, Kustomize et kpt.
Le processus de rendu comporte deux étapes:
L'outil de gestion des fichiers manifestes génère le fichier manifeste.
Skaffold remplace les références d'images du fichier manifeste par les images que vous souhaitez déployer dans votre release.
Cette page contient des exemples de configuration utilisant Helm et Kustomize.
Utiliser Skaffold pour générer votre configuration
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 fait référence aux fichiers manifestes de ce dépôt. Le contenu ressemble à ceci:
apiVersion: skaffold/v2beta15
kind: Config
metadata:
name: sample-app
deploy:
kubectl:
manifests:
- k8s-manifests/deployment.yaml
- k8s-manifests/rbac.yaml
- k8s-manifests/redis.yaml
- k8s-manifests/service.yaml
Afficher les fichiers manifestes bruts
Les fichiers manifestes bruts ne sont pas gérés par un outil tel que Helm ou Kustomize. Par conséquent, ils n'ont pas besoin d'être prétraités avant d'être hydraté et déployés sur un cluster.
Par défaut, Google Cloud Deploy utilise skaffold render
pour afficher vos fichiers manifestes Kubernetes, en remplaçant les noms d'images non tagués par les noms des images de conteneurs des images de conteneur que vous déployez. Ensuite, lorsque vous promouvez la version, Google Cloud Deploy utilise skaffold apply
pour appliquer les fichiers manifestes et déployer les images sur votre cluster Google Kubernetes Engine.
Voici un exemple de bloc deploy
d'une configuration de base:
deploy:
kubectl:
manifests:
- PATH_TO_MANIFEST
Consultez la documentation Skaffold pour en savoir plus sur les valeurs pouvant être transmises ici.
Effectuer un rendu à l'aide de Helm
Vous pouvez utiliser Google Cloud Deploy pour afficher vos graphiques Helm. Pour ce faire, vous devez inclure les détails du graphique Helm dans un strophe deploy
d'un profil Skaffold.
Chaque définition se présente comme suit:
apiVersion: skaffold/v2beta16
kind: Config
deploy:
helm:
releases:
- name: RELEASE_NAME
chartPath: PATH_TO_HELM_CHART
artifactOverrides:
image: IMAGE_NAME
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 de chart Helm non empaqueté.
IMAGE_NAME est le nom de l'image de conteneur que vous déployez.
Votre graphique Helm doit comporter un paramètre image
qui définit l'image à déployer dans le graphique.
Vous pouvez utiliser des options de configuration Helm supplémentaires, comme décrit dans la documentation Skaffold.
Effectuer un rendu à l'aide de Kustomize
Vous pouvez utiliser Kustomize avec Google Cloud Deploy. Pour ce faire, pointez sur les fichiers Kustomization depuis le bloc deploy
de 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
correspondant dans votre skaffold.yaml
.
Chaque définition se présente comme suit:
apiVersion: skaffold/v2beta16
kind: Config
metadata:
name: getting-started-kustomize
deploy:
kustomize:
paths:
- PATH_TO_KUSTOMIZE
Où :
PATH_TO_KUSTOMIZE pointe vers vos fichiers Kustomization. La valeur par défaut est ["."]
.
Vous pouvez utiliser des options de configuration Kustomize supplémentaires, comme décrit dans la documentation Skaffold.
Configurer différents fichiers manifestes par cible
Souvent, chaque cible a besoin d'une configuration légèrement différente. Par exemple, vous pouvez avoir plus d'instances dupliquées 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 en tant que profil Skaffold distinct.
Profils avec des fichiers manifestes bruts
Lorsque vous utilisez des fichiers manifestes bruts, vous pouvez faire pointer Google Cloud Deploy vers un autre fichier, en fonction de la cible. Vous pouvez configurer cela comme suit:
apiVersion: skaffold/v2beta16
kind: Config
metadata:
name: getting-started
profiles:
- name: prod
deploy:
kubectl:
manifests:
- prod.yaml
- name: staging
deploy:
kubectl:
manifests:
- 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/v2beta16
kind: Config
profiles:
- name: prod
deploy:
kustomize:
paths:
- environments/prod
- name: staging
deploy:
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 configuration du pipeline de livraison, par cible:
serialPipeline:
stages:
- targetId: staging-target
profiles:
- staging
- targetId: prod-target
profiles:
- prod
Étapes suivantes
- En savoir plus sur la configuration du pipeline de diffusion Google Cloud.
- Suivez le tutoriel des profils Skaffold Google 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.