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 de 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, puis accédez à la section Emplacement du schéma de 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 1.16 et versions ultérieures dans l'explorateur Kubernetes, Cloud Code extrait automatiquement le schéma de tous les 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 for Skaffold Schemas Updates (Rechercher des mises à niveau de schémas Skaffold). pour rechercher 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 le 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 le rechargement à chaud

Pour améliorer l'efficacité de votre workflow de développement local et éviter de devoir recréer, redéployer et redémarrer vos pods, Skaffold permet de copier des fichiers modifiés vers un conteneur déployé. Ainsi, lorsque vous apportez des modifications aux fichiers statiques et aux fichiers de code source, ces modifications prennent effet en quelques secondes, ce qui permet d'accélérer les boucles de rétroaction.

Pour les fichiers statiques (tels que les fichiers HTML et CSS), ce comportement de copie de fichiers 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, *.litcoffee, *.json

Une fois le rechargement à chaud configuré, Skaffold détecte les modifications apportées aux fichiers compatibles et synchronise ces modifications avec le conteneur en cours d'exécution sur votre cluster, en évitant d'avoir à recréer des images de façon fastidieuse et à redémarrer le pod. Les modifications apportées à d'autres types de fichiers déclenchent toutefois une recompilation d'image.

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

Vous pouvez choisir l'un des paramètres de synchronisation suivants (par ordre de préférence) :

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

Si vous spécifiez une synchronisation manual pour synchroniser tous les fichiers HTML /static-html avec le dossier static de votre conteneur, votre fichier skaffold.yaml contient 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 Skaffold sur la synchronisation des fichiers.

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

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

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 afin de modifier une configuration avec le fichier actuel, vous pouvez utiliser l'icône d'actions kubectl Icône d'actions kubectl, disponible dans la marge de votre IDE et sélectionner Appliquer. Vous obtenez une vue "Différences" vous permettant de vérifier les modifications avant de cliquer sur Appliquer.

Option d'application mise en évidence dans la liste d'actions kubectl

Différences entre les fichiers YAML

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

Option de différence mise en surbrillance dans la liste d'actions kubectl

Effectuer un "dry run" (test à blanc) d'un fichier YAML

Pour effectuer une simulation de votre fichier et vérifier sa validité, vous pouvez utiliser l'icône d'actions kubectl Icône d'actions kubectl, disponible dans la marge de votre IDE, pour sélectionner Simulation sur le serveur ou Simulation sur le client. Cette opération exécute kubectl apply -f dry-run=server (ou kubectl apply -f dry-run=client pour l'option Client) et vous avertit si votre fichier peut être créé dans votre fenêtre de terminal.

Option de simulation sur le serveur mise en surbrillance dans la liste d'actions kubectl

Assistance

Pour envoyer des commentaires ou signaler un problème dans votre IDE IntelliJ, accédez à Outils > Cloud Code > Aide / À propos > Envoyer des commentaires ou signaler un problème pour signaler un problème sur GitHub, ou posez une question sur Stack Overflow.

Vous pouvez également rejoindre le canal #cloud-code, qui fait partie de la communauté Slack Google Cloud.