Travailler avec Google Cloud et Kubernetes YAML dans Cloud Code pour Cloud Shell

Cloud Code pour Cloud Shell est conçu pour faciliter la configuration de Kubernetes et de Cloud Build. En effet, il est lint avec le schéma à la fois pour la structure et les valeurs valides, et fournit des erreurs descriptives. Cloud Code est fourni avec des solutions prêtes à l'emploi pour les fonctions courantes de schéma, de saisie intelligente et de documentation par survol de la souris.

Fichiers de configuration YAML compatibles

Cloud Code est également compatible par défaut avec les définitions de ressources personnalisées (CRD) personnalisées de Kubernetes, comme Kubeflow.

Utiliser un schéma personnalisé

Avec Cloud Code, vous pouvez fournir votre propre schéma CRD avec le paramètre cloudcode.yaml.crdSchemaLocations de votre fichier settings.json. Vous pouvez le faire pointer vers un fichier local ou une URL. Les URL qui pointent 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 une version ultérieure dans l'explorateur Kubernetes, Cloud Code extrait automatiquement le schéma de tous les CRD installés.

Configurer avec des extraits de code

Les extraits prêts à l'emploi pour les schémas YAML courants (la combinaison Command/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. Cloud Code facilite l'utilisation des champs répétitifs en renseignant les instances restantes après avoir rempli le premier champ.

Cloud Code propose les extraits de code suivants :

  • Anthos Config Management - Cluster
  • Anthos Config Management - Cluster Selector
  • Anthos Config Management - Config Management
  • Anthos Config Management - Namespace Selector
  • 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 - Secret
  • 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 compléments contextuels et des documents pertinents 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.

Valeur du champ de nom souligné en rouge pour mettre en évidence une valeur non valide de '1234'; états de texte de survol: "Type incorrect. Chaîne attendue.

Faire apparaître la documentation par survol de la souris

Cloud Code affiche la documentation pertinente lorsque vous placez le pointeur sur une valeur du schéma.

Informations sur la documentation lorsque vous maintenez le curseur de la souris sur une valeur du schéma

Accéder aux définitions de ressources

Pour afficher les définitions d'une ressource, effectuez un clic droit sur cette ressource, puis sélectionnez Accéder à la définition ou Définir la définition.

Appliquer un fichier YAML

Pour appliquer une modification de configuration à l'aide du fichier actuel, ouvrez la palette de commande (appuyez sur Cmd/Ctrl+Shift+P) et exécutez la commande Cloud Code: Appliquer le fichier JSON/YAML actuel à la ressource déployée K8s.

Cette commande affiche une vue de comparaison qui vous permet d'examiner les modifications. Cliquez sur Appliquer lorsque vous êtes invité à appliquer la modification. Cela a pour effet d'exécuter kubectl apply -f.

Afficher les différences entre les fichiers YAML

Pour afficher les différences entre un fichier YAML dans un contrôle source et un fichier YAML déployé, ouvrez la palette de commande (appuyez sur Cmd/Ctrl+Shift+P) et exécutez la commande Cloud Code: Diff Current JSON/YAML File with K8s Deployed Resource.

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

Pour effectuer un test à blanc de votre configuration et vérifier sa validité, ouvrez la palette de commandes (appuyez sur Cmd/Ctrl+Shift+P), puis exécutez Cloud Code: configuration actuelle de la simulation pour la validation côté serveur et Cloud Code: configuration actuelle de la simulation pour la validation côté client.

Cela a pour effet d'exécuter kubectl apply -f dry-run=server (ou kubectl apply -f dry-run=client, pour l'option Client) et d'afficher une validation réussie (ou un message d'erreur si votre fichier de configuration n'est pas valide) sous la forme d'une notification toast.

Dans l'exemple suivant, le "dry run" de la configuration actuelle pour la validation côté serveur, hello.deployment.yaml, renvoie une erreur de création de déploiement car l'espace de noms spécifié, random-namespace, n'existe pas.

Échec de "dry run" de la configuration actuelle pour la validation côté serveur, avec message d'erreur fourni sous forme de notificaiton toast. Les détails de l'erreur se trouvent dans le canal de sortie. L'espace de noms "random-namespace" n'existe pas.

Utiliser des secrets

L'utilisation de cartes de configuration et de secrets est un élément clé de l'utilisation de Kubernetes. Pour afficher le contexte d'un secret base64 avec Cloud Code, maintenez le pointeur de la souris sur le secret pour le décoder.

Décoder le secret en gardant le pointeur de la souris enfoncé