Mit YAML-Dateien für Google Cloud und Kubernetes arbeiten

Cloud Code unterstützt Sie bei der Bearbeitung von Konfigurationsdateien für Google Cloud und Kubernetes, darunter Dateien zur schemabasierten Validierung, Diagnose und Kurzdokumentation.

Unterstützte YAML-Konfigurationsdateien

Darüber hinaus unterstützt Cloud Code auch beliebte und direkt einsetzbare Kubernetes-CRDs wie Kubeflow.

Benutzerdefiniertes Schema verwenden

Außerdem können Sie mit Cloud Code Ihr eigenes CRD-Schema mit IntelliJ-Einstellungen bereitstellen (File > Settings > Tools > ). Cloud Code > Kubernetes oder für Mac OS X, IntelliJ IDEA > Einstellungen > Tools > Cloud Code > Kubernetes und rufen Sie den Abschnitt CRD-Schemastandorte auf.

Sie können entweder auf eine lokale Datei oder eine URL verweisen. URLs, die auf github.com verweisen, werden automatisch in raw.githubusercontent.com umgewandelt.

Schema aus einem Cluster abrufen

Wenn Sie im Kubernetes Explorer zu einem Cluster mit Kubernetes v1.16 und höher wechseln, ruft Cloud Code automatisch das Schema aller installierten CRDs ab.

Weitere Skaffold-Unterstützung

Skaffold ist die Cloud Code unterliegende Engine. Sie hilft Ihnen beim Erstellen, Übertragen und Bereitstellen Ihrer Anwendung und bietet Unterstützung für CI-/CD-Pipelines.

Cloud Code unterstützt zusätzlich die Verwaltung von Skaffold-Konfigurationsdateien. Beim Öffnen eines Projekts erkennt Cloud Code Skaffold-Schemas, die nicht aktuell sind, und informiert Sie (über das Ereignislog), wenn für Ihre vorhandenen Skaffold-YAML-Konfigurationsdateien ein Upgrade verfügbar ist .

Benachrichtigung im Ereignisprotokoll, über die der Nutzer aufgefordert wird, ein Upgrade der Skaffold-Schemaversion durchzuführen, da die vorhandenen YAML-Dateien nicht die neueste Version haben

Alternativ können Sie Tools > Cloud Code > Kubernetes aufrufen und Auf Skaffold-Schema-Upgrades prüfen auswählen. , um nach verfügbaren Schemaupgrades zu suchen.

Konfiguration mit Snippets durchführen

Sofort einsatzbereite Snippets für gängige YAML-Schemas (mit Ctrl+Space zum Aufrufen von Optionen) vereinfachen das Starten einer neuen YAML-Datei und das fehlerfreie Hinzufügen zu einer vorhandenen Datei. Dabei werden Best Practices beachtet. Außerdem wird die Arbeit mit sich wiederholenden Feldern vereinfacht. Wenn Sie eines der Felder ausfüllen, werden die verbleibenden Instanzen automatisch von Cloud Code ausgefüllt.

Grafik: Snippets für sich wiederholende Felder verwenden

Derzeit werden die folgenden Snippets angeboten:

  • 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

Kontextbezogene Vervollständigung

Anhand des aktuellen Schemas stellt Cloud Code eine kontextbezogene Vervollständigung für die Auswahl der richtigen Option bereit.

Kontextvervollständigung für Kubernetes-Schemas

YAML-Schema prüfen

Cloud Code bietet Unterstützung für die Schemavalidierung. Dazu werden ungültige Tags und Werte in Ihren YAML-Dateien mit Flags versehen und es werden nach Möglichkeit Korrekturen empfohlen.

Wert des Namensfelds „rot“ unterstrichen Text, um einen ungültigen Wert von '1234' hervorzuheben; Hover-Text zeigt: „Falscher Typ. Erwarteter String.“

Skaffold-YAML-Dateien prüfen

Cloud Code unterstützt die Bearbeitung von Skaffold-Konfigurationsdateien und enthält intelligente Vorlagen, mit denen Sie Ihre skaffold.yaml-Dateien einfach validieren können. Weitere Informationen finden Sie im Leitfaden zur Verwendung einer vorhandenen Anwendung mit Cloud Code.

Grafik: Skaffold-YAML-Vorlagen

Skaffold-Konfigurationsdateien mit Kontext vervollständigen

Basierend auf dem aktuellen Schema stellt Cloud Code eine kontextbezogene Vervollständigung und entsprechende Dokumente für die Auswahl der richtigen Option bereit.

Grafik: Skaffold-Vervollständigungen

Synchronisierung von Skaffold-Dateien und Hot Refresh aktivieren

Skaffold unterstützt das Kopieren geänderter Dateien in einen bereitgestellten Container, um die Effizienz Ihres lokalen Entwicklungsworkflows zu steigern und zu vermeiden, dass Pods neu erstellt, neu bereitgestellt und neu gestartet werden müssen. Wenn Sie also statische und Quellcodedateien ändern, werden diese bereits nach wenigen Sekunden wirksam. So entsteht eine beschleunigte Feedback-Schleife.

Bei statischen Dateien, z. B. HTML- und CSS-Dateien, wird dieses Kopieren von Dateien als Dateisynchronisierung bezeichnet.

Bei Quellcodedateien wird dieses Verhalten als Hot-Aktualisierung bezeichnet und funktioniert mit den folgenden Dateitypen:

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

Bei konfigurierter Hot-Aktualisierung erkennt Skaffold Änderungen an unterstützten Dateien und synchronisiert diese Änderungen mit dem ausgeführten Container in Ihrem Cluster. Eine umständliche Image-Neuerstellung und ein Pod-Neustart sind somit nicht mehr erforderlich. Änderungen an anderen Dateitypen lösen jedoch die Neuerstellung eines Images aus.

Wenn Sie mit Buildpacks als bevorzugtem Builder arbeiten, sind die automatische Synchronisierung von Dateien und das Hot Refresh standardmäßig aktiviert. Bei anderen Buildern wie Docker können Sie in der Datei skafwrap.yaml für das Artefakt, das Sie anpassen, einen sync-Abschnitt angeben.

Folgende Synchronisierungseinstellungen können festgelegt werden:

  • auto (nur für Jib- und Buildpacks-Artefakte)
  • infer
  • manual

Wenn Sie eine manual-Synchronisierung angeben, um alle /static-html-HTML-Dateien mit dem Ordner static in Ihrem Container zu synchronisieren, enthält die Datei skafwrap.yaml diesen sync-Abschnitt:

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

Ausführliche Informationen zur Dateisynchronisierung und zum Festlegen von Synchronisierungsregeln finden Sie im Skaffold-Leitfaden zur Dateisynchronisierung.

Definitionen durch Schnelldokumentation abrufen

Cloud Code zeigt Ihnen die relevante Dokumentation einer Ressource, wenn Sie eine Zeile in Ihrer Konfigurationsdatei markieren und View > Quick Documentation (Ansicht > Schnelldokumentation) auswählen.

Grafik: Kurzdokumentation

Linting von YAML für strukturelle Probleme und Validitätsprobleme

Cloud Code bietet Linting-Unterstützung für gängige Schemaprobleme und stellt Fehlerbeschreibungen bereit.

Grafik: Linting von YAML-Dateien

YAML-Datei anwenden

Wenn Sie kubectl apply -f ausführen möchten, um eine Konfigurationsänderung mit der aktuellen Datei anzuwenden, können Sie das kubectl-Aktionssymbol Symbol: kubectl-Aktionen verwenden, das im Randbereich Ihrer IDE verfügbar ist, und Anwenden. Daraufhin wird eine Differenzansicht angezeigt, damit Sie Änderungen prüfen können, bevor Sie auf Übernehmen klicken.

Option ApplyAnwenden“ in der kubectl-Aktionsliste markiert

Unterschied zwischen YAML-Dateien

Wenn Sie sich die Unterschiede zwischen einer YAML-Datei in der Versionsverwaltung und einer bereitgestellten YAML-Datei ansehen möchten, können Sie das kubectl-Aktionssymbol Symbol: kubectl-Aktionen im Bundsteg des Editors verwenden. Wählen Sie die Option Diff aus, damit eine Diff-Ansicht angezeigt wird, mit der Sie zwei Schemadateien vergleichen und gegenüberstellen können.

Option "Diff" in der kubectl-Aktionsliste hervorgehoben

Probelauf einer YAML-Datei ausführen

Wenn Sie einen Probelauf Ihrer Datei ausführen und ihre Gültigkeit prüfen möchten, verwenden Sie das Symbol "kubectl actions"Symbol: kubectl-Aktionen , der in der Dachzeile Ihrer IDE verfügbar ist, umProbelauf auf dem Server oderProbelauf auf Client aus. Dadurch wird kubectl apply -f dry-run=server (oder kubectl apply -f dry-run=client für die Clientoption) ausgeführt und Sie werden benachrichtigt, ob die Datei erfolgreich im Terminalfenster erstellt werden kann.

Option DrProbelauf auf Server“ in der kubectl-Aktionsliste markiert

Support

Wenn Sie Feedback geben oder ein Problem in Ihrer IntelliJ-IDE melden möchten, gehen Sie zu Tools > Cloud Code > Help / About > . Senden Sie Feedback oder melden Sie ein Problem, um ein Problem auf GitHub zu melden, oder stellen Sie eine Frage in Stack Overflow.

Sie können auch dem Kanal #cloud-code beitreten, der Teil der Google Cloud-Slack-Community ist.