Travailler avec des fichiers YAML pour Google Cloud et Kubernetes

Cloud Code est conçu pour vous aider à modifier efficacement les fichiers de configuration associés à Google Cloud et à Kubernetes, grâce, entre autres, à la validation basée sur des schémas, aux diagnostics et à la documentation rapide.

.

Fichiers de configuration YAML compatibles

Cloud Code est également compatible avec les CRD Kubernetes courants, tels que Kubeflow, qui sont prêts à l'emploi.

Utiliser un schéma personnalisé

De plus, avec Cloud Code, vous pouvez fournir votre propre schéma CRD avec les paramètres IntelliJ (Fichier >.Paramètres >.Outils >.Cloud Code >Kubernetes ou pour Mac OS X, IntelliJ IDEA >.Préférences >Outils >.Cloud Code >.Kubernetes et accédez au Emplacements du schéma CRD ).

Vous pouvez le faire pointer vers un fichier local ou une URL. Les URL pointant vers github.com sont automatiquement converties en raw.githubusercontent.com.

Extraire un schéma d'un cluster

Lorsque vous passez à un cluster exécutant Kubernetes v1.16 ou version ultérieure dans l'explorateur Kubernetes, Cloud Code extrait automatiquement le schéma de tous les objets CRD installés.

Assistance Skaffold supplémentaire

Skaffold est le moteur sous-jacent qui alimente Cloud Code, pour vous aider à créer, transmettre et déployer votre application, et qui fournit une assistance pour la création de pipelines CI/CD.

Cloud Code fournit une assistance supplémentaire pour la gestion des fichiers de configuration Skaffold. Lorsque vous ouvrez un projet, Cloud Code détecte les schémas Skaffold qui ne sont pas à jour et affiche une invite (via le journal des événements) lorsqu'une mise à niveau de la version du schéma Skaffold est disponible pour vos fichiers de configuration YAML Skaffold existants.

Notification dans le journal des événements invitant l'utilisateur à mettre à jour sa version de schéma Skaffold, car la version de ses fichiers YAML Skaffold existants n'est pas à jour

Vous pouvez également accéder à Tools > Cloud Code > Kubernetes (Outils > Cloud Code > Kubernetes) et sélectionner Check Skaffold Schemas Upgrades (Vérifier les mises à niveau des schémas Skaffold). pour vérifier les mises à niveau de schéma disponibles.

Configurer avec des extraits de code

Les extraits prêts à l'emploi pour les schémas YAML courants (la combinaison Ctrl+Space permettant d'afficher les options) facilitent la création de nouveaux fichiers YAML ou l'ajout de sections à des fichiers existants. Ils aident à travailler sans erreur, tout en respectant les bonnes pratiques. L'édition des champs répétitifs est également facilitée : vous remplissez un champ et Cloud Code remplit les autres.

Utiliser des extraits de code avec des champs répétitifs

Actuellement, les extraits suivants sont proposés :

  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Service
  • Migrate for Anthos - Export
  • Migrate for Anthos - PersistentVolumeClaim
  • Migrate for Anthos - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

Saisie avec contexte

Sur la base du schéma actuel, Cloud Code fournit des suggestions en fonction du contexte pour vous aider à choisir la bonne option.

Saisie avec contexte pour le schéma Kubernetes

Valider un schéma YAML

Cloud Code offre une assistance pour la validation du schéma en signalant les valeurs et les tags non valides dans vos fichiers YAML, et en suggérant des corrections lorsque cela est possible.

La valeur du champ "name" (nom) est soulignée en rouge pour signaler que la valeur "1234" est non valide. L'info-bulle précise : "Incorrect type. Expected string." (Type incorrect. Type attendu : chaîne.)

Valider des fichiers YAML Skaffold

Cloud Code fournit une compatibilité poussée avec l'édition de fichiers de configuration Skaffold, ainsi que des modèles intelligents vous permettant de valider facilement vos fichiers skaffold.yaml. Pour plus d'informations, reportez-vous au guide sur l'utilisation d'une application existante avec Cloud Code.

Modèles YAML pour Skaffold

Suggestions de saisie pour les fichiers de configuration Skaffold en fonction du contexte

Sur la base du schéma actuel, Cloud Code fournit des compléments contextuels et des documents pertinents pour vous aider à choisir la bonne option.

Suggestions pour Skaffold

Activer la synchronisation des fichiers Skaffold et l'actualisation à chaud

Pour améliorer l'efficacité de votre workflow de développement local et éviter de recompiler, redéployer et redémarrer vos pods, Skaffold prend en charge la copie de fichiers modifiés dans un conteneur déployé. Cela signifie que lorsque vous apportez des modifications à des fichiers de code statique et source, vos modifications prennent effet en quelques secondes, ce qui génère une boucle de rétroaction accélérée.

Pour les fichiers statiques (tels que les fichiers HTML et CSS), ce comportement de copie de fichier est appelé synchronisation de fichiers.

Pour les fichiers de code source, ce comportement est appelé rechargement à chaud et fonctionne pour les types de fichiers suivants:

  • Go: *.go
  • Java: *.java, *.kt, *.scala, *.groovy, *.clj
  • NodeJS: *.js, *.mjs, *.coffee, *.lit café, *.json

Une fois l'actualisation à chaud configurée, Skaffold détecte les modifications apportées aux fichiers compatibles et synchronise ces modifications avec le conteneur en cours d'exécution de votre cluster, vous évitant ainsi de devoir recréer une image fastidieuse et redémarrer les pods. Cependant, les modifications apportées à d'autres types de fichiers déclenchent une recréation d'image.

La synchronisation automatique des fichiers et le rechargement à chaud sont activés par défaut lorsque vous utilisez Buildpacks comme outil de compilation préféré. Pour les autres compilateurs tels que Docker, vous pouvez spécifier une section sync dans le fichier skaffold.yaml pour l'artefact que vous personnalisez.

Le paramètre de synchronisation peut être l'un des suivants (par ordre de préférence):

  • auto (uniquement pour les artefacts Jib et Buildpacks)
  • infer
  • manual

Si vous souhaitez spécifier une synchronisation manual pour synchroniser tous les fichiers HTML /static-html avec le dossier static de votre conteneur, votre fichier skaffold.yaml contiendra cette section sync:

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/node-example
      context: node
      sync:
        manual:
          - src: 'static-html/*.html'
            dest: static

Pour en savoir plus sur la synchronisation des fichiers et la spécification des règles de synchronisation, consultez le guide de Skaffold sur la synchronisation de fichiers.

Découvrir des définitions grâce à une documentation rapide

Cloud Code fournit la documentation pertinente pour une ressource lorsque vous mettez en surbrillance une ligne du fichier de configuration et accédez à View > Quick Documentation (Afficher > Documentation rapide).

Documentation rapide

Analyse lint des fichiers YAML pour identifier les problèmes de structure et de validité

Cloud Code permet d'effectuer des analyses lint portant sur les problèmes de schéma courants. Chaque erreur est accompagnée d'un message descriptif.

Analyse lint des fichiers YAML

Appliquer un fichier YAML

Pour exécuter kubectl apply -f pour appliquer une modification de configuration à l'aide du fichier actuel, vous pouvez utiliser l'icône d'actions kubectl Icône Actions kubectl, disponible dans l'extrait de votre IDE, puis sélectionner Apply. Une autre vue vous permet de consulter les modifications avant de cliquer sur Appliquer.

Option "Appliquer" encadrée dans la liste d'actions "kubectl"

Différences entre des fichiers YAML

Si vous souhaitez afficher les différences entre un fichier YAML en mode source et un fichier YAML déployé, vous pouvez utiliser l'icône d'actions kubectl Icône Actions kubectl disponible dans l'extrait de votre éditeur. Choisissez l'option Diff (Différence) afin d'afficher une vue différente pour comparer et comparer deux fichiers de schéma.

Option Diff en surbrillance dans la liste d'actions kubectl

Effectuer une simulation d'un fichier YAML

Pour effectuer une simulation de votre fichier et vérifier sa validité, vous pouvez utiliser l'icône Actions kubectlIcône Actions kubectl , disponible dans l'interface de votre IDE, pour sélectionnerUne simulation sur le serveur ouUne simulation sur le client s'affiche en haut de l'écran. Cette opération exécute kubectl apply -f dry-run=server (ou kubectl apply -f dry-run=client, pour l'option Client) et vous informe si votre fichier a bien été créé dans la fenêtre Terminal.

Option "Exécuter le test sur serveur" mise en surbrillance dans la liste d'actions kubectl

Assistance

Pour envoyer vos commentaires, signalez un problème sur GitHub ou posez une question sur Stack Overflow.