Utiliser Skaffold avec Cloud Deploy

Cet article décrit Skaffold, comment et pourquoi Cloud Deploy l'utilise, et ce que vous devez faire pour le rendre opérationnel.

Cloud Deploy utilise Skaffold pour les opérations de rendu et de déploiement. Vous pouvez également l'utiliser pour le développement, la compilation et les tests en local, ainsi que pour des fonctionnalités de déploiement avancées. Cependant, 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 un 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 Cloud Deploy.

Skaffold comprend les fonctionnalités suivantes:

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

  • Il sert d'outil de développement local.

  • Les profils Skaffold vous permettent de différencier les 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 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 d'une cible à l'autre, tandis que votre configuration Skaffold définit les fichiers manifestes affichés et le mode d'affichage. Cela rend l'affichage du fichier manifeste flexible sans affecter la façon dont vous définissez votre pipeline de livraison.

Voici quelques-uns des avantages que Skaffold offre lorsque vous l'utilisez avec Cloud Deploy:

  • Intégration facile

    Commencez par une boucle de développement local. Vous pouvez partager votre fichier skaffold.yaml avec votre équipe, ce qui permet d'améliorer la cohérence et d'aider les nouveaux membres de l'équipe.

  • Contrôle cohérent de l'affichage sur diverses cibles de déploiement

    Vous pouvez utiliser des profils Skaffold, avec des options de rendu et de déploiement différentes selon les cibles.

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

    L'utilisation de Skaffold permet à 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 de rendu et vos conteneurs permettent de générer les fichiers manifestes affichés.

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

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

Comment Cloud Deploy utilise-t-il Skaffold ?

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

    Lors de la création des versions, 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.

  • Cloud Deploy accepte les modules Skaffold statiques.

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

  • Cloud Deploy n'est pas compatible avec l'utilisation d'autres utilisateurs à l'origine du déploiement pour déployer votre application, sauf si vous utilisez des cibles personnalisées. Toutefois, vous pouvez utiliser des outils tels que Helm ou Kustomize en tant que moteurs de rendu. Pour en savoir plus sur le déploiement de Cloud Deploy sans utiliser de déployeurs spécifiques (comme Helm), consultez la page Architecture de service.

Tirez le meilleur parti de Skaffold

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

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

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

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

      Définissez ce paramètre dans votre fichier skaffold.yaml, puis établissez une liaison dans la séquence de progression de la définition de votre pipeline de livraison.

      Consultez la documentation Skaffold pour en savoir plus sur les profils Skaffold. Le document Gérer les fichiers manifestes dans Cloud Deploy inclut également des exemples de configurations de profil.

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

    À la fin du processus CI, transmettez skaffold.yaml, la source de rendu et les images de conteneur à insérer dans le fichier manifeste affiché.

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

    L'utilisation de Skaffold pour le développement est facultative dans Cloud Deploy. La seule opération requise pour que Cloud Deploy fonctionne est un fichier skaffold.yaml qui identifie les fichiers manifestes à afficher.

Étapes suivantes

  • Consultez le site de Skaffold pour en savoir plus sur son fonctionnement et ses avantages.

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

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

  • Suivez le tutoriel des profils Skaffold.