Cet article décrit Skaffold, comment et pourquoi Cloud Deploy l'utilise, et ce que vous devez faire pour le mettre à contribution.
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, les tests et les fonctionnalités de déploiement avancées. Toutefois, Cloud Deploy nécessite uniquement 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 Cloud Deploy.
Skaffold inclut les fonctionnalités suivantes :
Il vous offre un contrôle discret des activités du pipeline CI/CD (compilation, rendu, déploiement de test, etc.).
Il est utile comme outil de développement local.
Les profils Skaffold vous permettent de différencier les 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 qui sont affichés et comment. Cela rend le rendu des fichiers manifestes 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.yamlavec votre équipe, ce qui peut assurer la cohérence et aider les nouveaux membres de l'équipe à démarrer.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 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 de rendu. Cette séparation vous permet d'expérimenter avec vos fichiers manifestes sans perturber le pipeline de livraison.
Processus de rendu cohérent
La source de rendu et vos conteneurs sont utilisés pour générer des fichiers manifestes rendus.
Vérifications de l'état du déploiement
Skaffold les effectue 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.
Dans le cadre de la création des versions, Cloud Deploy appelle Cloud Build, qui, à son tour, appelle
skaffold diagnoseetskaffold renderpour 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 est compatible avec les modules Skaffold statiques.
Lors du déploiement, Cloud Deploy appelle
skaffold applypour appliquer le ou les fichiers manifestes rendus au cluster cible.Cloud Deploy n'est pas compatible avec l'utilisation d'autres outils de 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 comme moteurs de rendu. Pour en savoir plus sur le déploiement de Cloud Deploy sans utiliser d'outils de déploiement spécifiques (comme Helm), consultez Architecture de service.
Mettre Skaffold à contribution
Configurez Skaffold en fonction des besoins de votre pipeline.
Déterminez les besoins de votre pipeline de livraison.
Combien de cibles aurez-vous ? Le rendu et le déploiement sont-ils identiques pour chaque cible ? 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.yamlqui décrit les fichiers manifestes à afficher.Le cas échéant, créez un profil Skaffold pour chaque cible.
Définissez-le dans votre fichier
skaffold.yamlet liez-le dans la séquence de progression de la définition de votre pipeline de livraison.Pour en savoir plus sur les profils Skaffold, consultez la documentation Skaffold. Le document Gérer les fichiers manifestes dans Cloud Deploy inclut également des exemples de configurations de profil.
Définissez le niveau de verbosité de la journalisation Skaffold.
Par défaut, le niveau de journalisation Skaffold est défini sur
warn. Vous pouvez le remplacer pardebugdans la configuration de l'environnement d'exécution d'une cible en définissantverbose: true.
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 conteneurs à renseigner dans le fichier manifeste rendu.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 chose requise pour que Cloud Deploy fonctionne est un fichier
skaffold.yamlqui identifie les fichiers manifestes à afficher.
Étape suivante
Consultez le site Skaffold pour découvrir comment il fonctionne et ce qu'il peut faire pour vous.
Découvrez comment Cloud Deploy sélectionne les versions d'outils à utiliser et comment déterminer les versions utilisées.
Découvrez comment utiliser les profils Skaffold en association avec des outils avancés de gestion des fichiers manifestes tels que Helm, Kustomize et kpt.
Suivez le tutoriel sur les profils Skaffold.