Utiliser Skaffold avec Google Cloud Deploy

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Cet article décrit Skaffold, et explique comment et pourquoi Google Cloud Deploy l'utilise, et comment y remédier.

Google Cloud Deploy utilise Skaffold pour les opérations de rendu et de déploiement. Vous pouvez également l'utiliser pour le développement local, la compilation, le test et pour les fonctionnalités de déploiement avancées. Cependant, Google Cloud Deploy ne nécessite qu'une configuration Skaffold qui identifie les fichiers manifestes à afficher et à appliquer.

Qu'est-ce que Skaffold ?

Skaffold est un outil de ligne de commande qui permet le développement continu pour les applications Kubernetes natives. Vous pouvez utiliser Skaffold pour configurer un espace de travail de développement local à utiliser avec les pipelines de livraison continue Google Cloud Deploy.

Skaffold inclut les fonctionnalités suivantes:

  • Elle vous permet de contrôler séparément les activités de pipeline CI/CD (compilation, rendu, déploiement de test, etc.).

  • C'est un outil de développement local.

  • Les profils Skaffold vous permettent de vous distinguer dans différents environnements, avec différentes configurations de compilation, de test et de déploiement, le tout dans le même fichier de configuration.

Pourquoi Google Cloud Deploy utilise-t-il Skaffold ?

Google Cloud Deploy utilise Skaffold pour séparer les outils de rendu du pipeline de livraison. Votre pipeline de livraison définit simplement la progression de la cible à la cible, tandis que votre configuration Skaffold définit les fichiers manifestes à rendre et leur mode de rendu. Cela rend le rendu du fichier manifeste flexible sans affecter la façon dont vous définissez votre pipeline de livraison.

Voici quelques-uns des avantages offerts par Skaffold lorsque vous l'utilisez avec Google Cloud Deploy:

  • Intégration facile

    Commencez par une boucle de développement local. Vous pouvez partager votre fichier skaffold.yaml avec votre équipe pour aider les nouveaux membres à assurer la cohérence.

  • Contrôle cohérent du rendu sur différentes cibles de déploiement

    Vous pouvez utiliser des profils Skaffold, avec différents rendus et déploiements pour différentes cibles.

  • Choix d'outils de rendu sans compromettre la définition des pipelines de livraison

    L'utilisation de Skaffold permet à Google Cloud Deploy de séparer la définition du pipeline de livraison des détails du rendu. Cette séparation vous permet de tester vos fichiers manifestes sans perturber le pipeline de livraison.

  • Processus de rendu cohérent

    La source et les conteneurs de rendu permettent de générer des fichiers manifestes.

  • Vérifications d'état du déploiement

    Skaffold les exécute, et Google Cloud Deploy les utilise.

Comment Google Cloud Deploy utilise-t-il Skaffold ?

  • La source de rendu et les références aux images de conteneurs sont transmises à Google Cloud Deploy lorsque vous créez une version.

    Dans le cadre de la création des versions, Google Cloud Deploy appelle Cloud Build, qui, à son tour, appelle skaffold diagnose et skaffold render pour afficher le ou les fichiers manifestes à l'aide de cette source de rendu et de ces images.

  • Vous pouvez utiliser des profils Skaffold pour différencier les fichiers manifestes qui seront appliqués à différentes cibles.

  • Google Cloud Deploy accepte les modules Skaffold statiques.

  • Lors du déploiement, Google Cloud Deploy appelle skaffold apply pour appliquer le ou les fichiers manifestes rendus au cluster cible.

  • Google Cloud Deploy ne prend pas en charge l'utilisation d'autres déployeurs pour déployer votre application. Vous pouvez toutefois utiliser des outils tels que Helm ou Kustomize en tant que moteurs de rendu. Pour en savoir plus sur le déploiement de Google Cloud Deploy sans utiliser de déployeurs spécifiques (comme Helm), consultez la page Architecture de service.

Faites travailler Skaffold pour vous

  1. Configurez Skaffold en fonction des besoins de votre pipeline.

    1. Déterminez les besoins de votre pipeline de livraison.

      Combien de cibles aurez-vous ? Le rendu et le déploiement sont les mêmes pour tous. Si la configuration est la même pour chaque cible de votre progression, vous n'aurez pas besoin d'utiliser des profils Skaffold. Vous n'avez besoin que d'un fichier skaffold.yaml qui décrit les fichiers manifestes à afficher.

    2. Le cas échéant, créez un profil Skaffold pour chaque cible.

      Définissez-le dans votre fichier skaffold.yaml, puis associez-le dans la séquence de progression de la définition du pipeline de livraison.

      Pour en savoir plus sur les profils Skaffold, consultez la documentation Skaffold. En outre, le document Gérer les fichiers manifestes dans Google Cloud Deploy inclut des exemples de configuration de profil.

  2. Connectez Cloud Deploy à votre système d'intégration continue.

    À la fin de votre processus CI, transmettez le skaffold.yaml, la source de rendu et les images de conteneur à renseigner dans le fichier manifeste.

  3. Facultatif: configurez votre boucle de développement locale à l'aide de Skaffold.

    L'utilisation de Skaffold pour le développement est facultative dans Google Cloud Deploy. La seule condition requise pour le bon fonctionnement de Google Cloud Deploy est un fichier skaffold.yaml qui identifie les fichiers manifestes à afficher.

Étapes suivantes

  • Consultez le site Skaffold pour découvrir son fonctionnement et ses avantages.

  • Découvrez comment Google Cloud Deploy sélectionne la version de Skaffold à utiliser, quand la version de Skaffold change et comment déterminer quelle version est actuellement utilisée.

  • Découvrez comment utiliser les profils Skaffold conjointement avec des outils avancés de gestion des fichiers manifestes tels que Helm, Kustomize et Kpt.

  • Suivez le tutoriel de création de profils Skaffold.