Referensi skema konfigurasi

File atau file konfigurasi Cloud Deploy menentukan pipeline pengiriman, target yang akan di-deploy, dan progres target tersebut.

File konfigurasi pipeline pengiriman dapat menyertakan definisi target, atau yang dapat berupa file atau file terpisah. Berdasarkan konvensi, file yang berisi konfigurasi pipeline pengiriman dan konfigurasi target disebut clouddeploy.yaml, dan konfigurasi pipeline tanpa target disebut delivery-pipeline.yaml. Tetapi Anda dapat memberi file-file ini nama apa pun yang Anda inginkan.

Apa yang terjadi di mana

Cloud Deploy menggunakan dua file konfigurasi utama:

Keduanya dapat berupa file terpisah, atau pipeline pengiriman dan target dapat dikonfigurasi dalam file yang sama.

Struktur file konfigurasi pipeline pengiriman

Konfigurasi berikut mencakup definisi target:

# Delivery pipeline config
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
 name:
 annotations:
 labels:
description:
suspended:
serialPipeline:
 stages:
 - targetId:
   profiles: []
# Deployment strategies
# One of:
#   standard:
#   canary:
# See the strategy section in this document for details.
   strategy:
     standard:
       verify:
       predeploy:
         actions: []
       postdeploy:
         actions: []
   deployParameters:
   - values:
     matchTargetLabels:
 - targetId:
   profiles: []
   strategy:
   deployParameters:
---

# Target config
apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name:
 annotations:
 labels:
description:
multiTarget:
 targetIds: []
deployParameters:
requireApproval:
#
# Runtimes
# one of the following runtimes:
gke:
 cluster:
 internalIp:
#
# or:
anthosCluster:
 membership:
#
# or:
run:
 location:
#
# or:
customTarget:
  customTargetType:
#
# (End runtimes. See documentation in this article for more details.)
#
executionConfigs:
- usages:
  - [RENDER | PREDEPLOY | DEPLOY | VERIFY | POSTDEPLOY]
  workerPool:
  serviceAccount:
  artifactStorage:
  executionTimeout:
---

# Custom target type config
apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
  name:
  annotations:
  labels:
description:
customActions:
  renderAction:
  deployAction:
  includeSkaffoldModules:
    - configs:
    # either:
    googleCloudStorage:
      source:
      path:
    # or:
    git:
      repo:
      path:
      ref:
---

# Automation config
apiVersion: deploy.cloud.google.com/v1
kind: Automation
metadata:
  name:
  labels:
  annotations:
description:
suspended:
serviceAccount:
selector:
- target:
    id:
    # or
    labels:
rules:
- [RULE_TYPE]:
  name:
  [RULE-SPECIFIC_CONFIG]

YAML memiliki tiga komponen utama:

  • Pipeline dan progres pengiriman utama

    File konfigurasi dapat mencakup sejumlah definisi pipeline.

  • Definisi target

    Untuk memudahkan, hanya satu target yang ditampilkan dalam contoh ini, tetapi bisa juga ada berapa pun. Selain itu, target dapat ditentukan dalam file atau file terpisah.

  • Definisi jenis target kustom

    Target kustom, memerlukan definisi jenis target kustom. Seperti target dan otomatisasi, jenis target kustom dapat ditentukan dalam file yang sama dengan pipeline pengiriman, atau dalam file terpisah.

  • Definisi otomatisasi

    Anda dapat membuat otomatisasi deployment di file yang sama dengan pipeline pengiriman dan target Anda, atau dalam file atau file terpisah. Untuk mempermudah, hanya satu Automation yang ditampilkan di sini, tetapi Anda dapat membuat sebanyak yang Anda inginkan.

Komponen ini akan ditetapkan di bagian lain dokumen ini.

Definisi dan progres pipeline

Selain metadata pipeline, seperti name, definisi pipeline utama juga menyertakan daftar referensi ke target dalam urutan urutan deployment. Artinya, target pertama yang tercantum adalah target deployment pertama. Setelah Anda men-deploy ke target tersebut, dengan mempromosikan rilis tersebut akan men-deploy ke target berikutnya dalam daftar.

Berikut adalah properti konfigurasi untuk pipeline pengiriman, tidak termasuk definisi target.

metadata.name

Kolom name mengambil string yang harus unik per project dan lokasi.

metadata.annotations dan metadata.labels

Konfigurasi pipeline penayangan dapat menyertakan anotasi dan label. Anotasi dan label disimpan dengan resource pipeline pengiriman setelah pipeline didaftarkan.

Untuk informasi selengkapnya, lihat Menggunakan label dan anotasi dengan Cloud Deploy.

description

String arbitrer yang menjelaskan pipeline pengiriman ini. Deskripsi ini ditampilkan dalam detail pipeline pengiriman di Konsol Google Cloud.

suspended

Boolean, yang jika true menangguhkan pipeline pengiriman sehingga tidak dapat digunakan untuk membuat, mempromosikan, me-roll back, atau men-deploy ulang rilis. Selain itu, jika pipeline pengiriman ditangguhkan, Anda tidak dapat menyetujui atau menolak peluncuran yang dibuat dari pipeline tersebut.

Nilai defaultnya adalah false.

serialPipeline

Awal definisi pipeline penayangan progres serial. Stanza ini wajib diisi.

stages

Daftar semua target tempat pipeline pengiriman ini dikonfigurasi untuk di-deploy.

Daftar ini harus berada dalam urutan urutan pengiriman yang Anda inginkan. Misalnya, jika Anda memiliki target yang disebut dev, staging, dan production, cantumkan dalam urutan yang sama, sehingga deployment pertama Anda adalah dev, dan deployment akhir Anda adalah ke dalam production.

Isi setiap kolom stages.targetId dengan nilai kolom metadata.name dalam definisi target yang sesuai. Dan di bagian targetId, sertakan profiles:

serialPipeline:
 stages:
 - targetId:
   profiles: []
   strategy:
     standard:
       verify:

targetId

Mengidentifikasi target spesifik yang akan digunakan untuk tahap pipeline pengiriman ini. Nilainya adalah properti metadata.name dari definisi target.

strategy.standard.verify yang ditetapkan ke true akan mengaktifkan verifikasi deployment pada target. Jika tidak ada strategi deployment yang ditentukan, strategi deployment standard akan digunakan, dengan verifikasi ditetapkan ke false.

profiles

Mengambil daftar nol atau beberapa nama profil Skaffold, dari skaffold.yaml. Cloud Deploy menggunakan profil dengan skaffold render saat membuat rilis. Profil Skaffold memungkinkan Anda memvariasikan konfigurasi antar-target saat menggunakan satu file konfigurasi.

strategy

Mencakup properti untuk menentukan strategi deployment. Strategi berikut ini telah didukung:

  • standard:

    Aplikasi di-deploy sepenuhnya ke target yang ditentukan.

    Ini adalah strategi deployment default. Jika Anda menghapus strategy, Cloud Deploy menggunakan strategi deployment standard.

  • canary:

    Dalam deployment canary, Anda men-deploy versi baru aplikasi secara bertahap, menggantikan versi yang sudah berjalan berdasarkan peningkatan berbasis persentase (misalnya, 25%, lalu 50%, lalu 75%, kemudian sepenuhnya.)

Strategi deployment ditentukan per target. Misalnya, Anda mungkin memiliki strategi canary untuk target prod, tetapi strategi standar (tidak ada strategy yang ditentukan) untuk target lainnya.

Untuk informasi selengkapnya, lihat Menggunakan strategi deployment.

Konfigurasi strategy

Bagian ini menampilkan elemen konfigurasi untuk strategy, untuk setiap runtime yang didukung.

Strategi deployment standar

Strategi standar hanya mencakup elemen berikut:

strategy:
  standard:
    verify: true|false

Properti verify bersifat opsional. Defaultnya adalah false, yang berarti tidak akan ada fase verifikasi untuk peluncuran yang dihasilkan.

Anda dapat menghilangkan elemen strategy untuk strategi deployment standar.

Strategi deployment canary

Bagian berikut menjelaskan konfigurasi untuk strategi deployment canary, untuk setiap runtime yang didukung Cloud Deploy.

Untuk target Cloud Run
strategy:
  canary:
    runtimeConfig:
      cloudRun:
        automaticTrafficControl: true | false
    canaryDeployment:
      percentages: [PERCENTAGES]
      verify: true | false
Untuk target GKE dan GKE Enterprise

YAML berikut menunjukkan cara mengonfigurasi strategi deployment untuk target GKE atau GKE Enterprise menggunakan jaringan berbasis layanan:

      canary:
        runtimeConfig:
          kubernetes:
            serviceNetworking:
              service: "SERVICE_NAME"
              deployment: "DEPLOYMENT_NAME"
              disablePodOverprovisioning: true | false
        canaryDeployment:
          percentages: [PERCENTAGES]
          verify: true | false

YAML berikut menunjukkan cara mengonfigurasi strategi deployment untuk target GKE atau GKE Enterprise menggunakan Gateway API:

      canary:
        runtimeConfig:
          kubernetes:
            gatewayServiceMesh:
              httpRoute: "HTTP_ROUTE_NAME"
              service: "SERVICE_NAME"
              deployment: "DEPLOYMENT_NAME"
              routeUpdateWaitTime: "WAIT_TIME"
        canaryDeployment:
          percentages: ["PERCENTAGES"]
          verify: true | false

Perhatikan dalam contoh ini, routeUpdateWaitTime. Ini disertakan karena Gateway API membagi traffic menggunakan resource HTTPRoute, dan terkadang ada penundaan penerapan perubahan yang dibuat pada HTTPRoute. Dalam kasus tersebut, permintaan dapat dihapus karena traffic dikirim ke resource yang tidak tersedia. Anda dapat menggunakan routeUpdateWaitTime agar Cloud Deploy menunggu setelah menerapkan perubahan HTTPRoute, jika Anda mengamati penundaan ini.

YAML berikut menunjukkan cara mengonfigurasi strategi deployment canary kustom atau otomatis kustom. Konfigurasi khusus runtime, di bagian runtimeConfig, dihilangkan untuk canary kustom, tetapi disertakan dalam konfigurasi canary otomatis dan kustom.

strategy:
       canary:
         # Runtime configs are configured as shown in the
         # Canary Deployment Strategy section of this document.
         runtimeConfig:

         # Manual configuration for each canary phase
         customCanaryDeployment:
           - name: "PHASE1_NAME"
             percent: PERCENTAGE1
             profiles: [ "PROFILE1_NAME" ]
             verify: true | false
           - …
           - name: "stable"
             percent: 100
             profiles: [ "LAST_PROFILE_NAME" ]
             verify: true|false

verify

Boolean opsional yang menunjukkan apakah akan mendukung verifikasi deployment untuk target ini atau tidak. Defaultnya adalah false.

Mengaktifkan verifikasi deployment juga memerlukan stanza verify di skaffold.yaml. Jika Anda tidak memberikan properti ini, tugas verifikasi akan gagal.

deployParameters

Memungkinkan Anda menentukan pasangan nilai kunci untuk meneruskan nilai ke manifes untuk target yang cocok dengan label, saat menggunakan parameter deploy.

Anda juga dapat menyertakannya pada target.

Deploy parameter yang ditetapkan pada pipeline pengiriman menggunakan label agar cocok dengan target:

deployParameters:
- values:
    someKey: "value1"
  matchTargetLabels:
    label1: firstLabel
- values:
    someKey: "value2"
  matchTargetLabels:
    label2: secondLabel

Dalam contoh ini, ada dua nilai yang diberikan untuk kunci, dan untuk setiap nilai, terdapat label. Nilai ini diterapkan ke manifes untuk setiap target yang memiliki label yang cocok.

predeploy dan postdeploy lowongan

Hal ini memungkinkan Anda mereferensikan tindakan kustom (ditentukan secara terpisah, di skaffold.yaml) untuk dijalankan sebelum tugas deployment (predeploy) dan setelah tugas verifikasi, jika ada (postdeploy). Jika tidak ada tugas verifikasi, tugas pasca-deployment akan berjalan setelah tugas deployment.

Hook deploy dikonfigurasi di strategy.standard atau strategy.canary sebagai berikut:

serialPipeline:
  stages:
  - targetId:
    strategy:
      standard:
        predeploy:
          actions: [ACTION_NAME]
        postdeploy:
          actions: [ACTION_NAME]

Dengan ACTION_NAME adalah nama yang dikonfigurasi di skaffold.yaml untuk customActions.name.

Anda dapat mengonfigurasi tugas predeploy dan postdeploy berdasarkan strategi apa pun (misalnya, standard, canary).

Untuk mengetahui informasi selengkapnya tentang mengonfigurasi dan menggunakan hook pra-dan pasca-deployment, lihat Menjalankan hook sebelum dan sesudah deployment.

Definisi target

File definisi pipeline pengiriman dapat berisi definisi target, atau Anda dapat menentukan target dalam file terpisah. Anda dapat mengulangi Nama target dalam sebuah project, tetapi nama tersebut harus unik dalam pipeline pengiriman.

Anda dapat menggunakan kembali target di antara beberapa pipeline pengiriman. Namun, Anda hanya dapat mereferensikan target satu kali dari dalam progres satu pipeline pengiriman.

Lihat juga: Definisi jenis target kustom

Untuk target GKE

YAML berikut menunjukkan cara mengonfigurasi target yang di-deploy ke cluster GKE:

     apiVersion: deploy.cloud.google.com/v1
     kind: Target
     metadata:
      name:
      annotations:
      labels:
     description:
     deployParameters:
     multiTarget:
      targetIds: []

     requireApproval:
     gke:
      cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
      internalIp:

     executionConfigs:
     - usages:
       - [RENDER | PREDEPLOY | DEPLOY | VERIFY | POSTDEPLOY]
       workerPool:
       serviceAccount:
       artifactStorage:
       executionTimeout:

metadata.name

Nama target ini. Nama ini harus unik secara global.

metadata.annotations dan metadata.labels

Konfigurasi target mendukung anotasi Kubernetes dan label, tetapi Cloud Deploy tidak memerlukannya.

Anotasi dan label disimpan dengan resource target. Untuk mengetahui informasi selengkapnya, lihat Menggunakan label dan anotasi dengan Cloud Deploy.

description

Kolom ini menggunakan string arbitrer yang menjelaskan penggunaan target ini.

deployParameters

Anda dapat menyertakan parameter deploy pada target mana pun, beserta nilai. Nilai tersebut ditetapkan ke kunci yang sesuai dalam manifes Anda, setelah rendering.

Stanza deployParameters menggunakan pasangan nilai kunci, seperti yang ditunjukkan:

deployParameters:
  someKey: "someValue"
  someOtherKey: "someOtherValue"

Jika Anda menetapkan parameter deploy pada multi-target, nilai akan ditetapkan ke manifes untuk semua target turunan multi-target tersebut.

multiTarget.targetIds: []

Properti ini bersifat opsional, dan digunakan untuk mengonfigurasi multi-target yang akan digunakan untuk deployment paralel.

Nilainya adalah daftar target turunan yang dipisahkan koma. Target turunan dikonfigurasi sebagai target normal, dan tidak menyertakan properti multiTarget ini.

requireApproval

Apakah promosi ke target ini memerlukan persetujuan manual. Dapat berupa true atau false.

Properti ini bersifat opsional. Nilai defaultnya adalah false.

Saat mengonfigurasi deployment paralel, Anda dapat memerlukan persetujuan pada multi-target saja, bukan target turunan.

gke

Khusus untuk cluster GKE, jalur resource yang mengidentifikasi cluster tempat aplikasi Anda akan di-deploy:

gke:
  cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
  • project_name

    Project Google Cloud tempat cluster berada.

  • location

    Lokasi tempat cluster berada. Misalnya, us-central1. Cluster juga dapat bersifat zona (us-central1-c).

  • cluster_name

    Nama cluster, seperti yang muncul dalam daftar cluster Anda di Konsol Google Cloud.

Berikut contohnya:

gke:
  cluster: projects/cd-demo-01/locations/us-central1/clusters/prod

Hapus properti gke saat mengonfigurasi multi-target. Cluster GKE dikonfigurasikan di dalam target turunan yang sesuai.

Lihat executionConfigs dalam artikel ini untuk mengetahui deskripsi properti lingkungan eksekusi.

internalIp

Apakah cluster GKE yang ditentukan menggunakan alamat IP pribadi atau tidak. Properti ini bersifat opsional. Secara default, Cloud Deploy menggunakan alamat IP yang tersedia untuk cluster tersebut. Jika ada alamat IP pribadi dan Anda ingin menggunakannya, tetapkan alamat ini ke true.

Untuk target Cloud Run

YAML berikut menunjukkan cara mengonfigurasi target yang di-deploy ke layanan Cloud Run:

     apiVersion: deploy.cloud.google.com/v1
     kind: Target
     metadata:
      name:
      annotations:
      labels:
     description:
     multiTarget:
      targetIds: []

     requireApproval:
     run:
      location: projects/[project_name]/locations/[location]

     executionConfigs:
     - usages:
       - [RENDER | PREDEPLOY|  DEPLOY | VERIFY | POSTDEPLOY]
       workerPool:
       serviceAccount:
       artifactStorage:
       executionTimeout:

metadata.name

Nama target ini. Nama ini harus unik untuk setiap wilayah.

metadata.annotations dan metadata.labels

Konfigurasi target mendukung anotasi dan label, tetapi Cloud Deploy tidak memerlukannya.

Anotasi dan label disimpan dengan resource target. Untuk mengetahui informasi selengkapnya, lihat Menggunakan label dan anotasi dengan Cloud Deploy.

description

Kolom ini menggunakan string arbitrer yang menjelaskan penggunaan target ini.

multiTarget.targetIds: []

Properti ini bersifat opsional, dan digunakan untuk mengonfigurasi multi-target yang akan digunakan untuk deployment paralel.

Nilainya adalah daftar target turunan yang dipisahkan koma. Target turunan dikonfigurasi sebagai target normal, dan tidak menyertakan properti multiTarget ini.

requireApproval

Apakah promosi ke target ini memerlukan persetujuan manual. Dapat berupa true atau false.

Properti ini bersifat opsional. Nilai defaultnya adalah false.

Saat mengonfigurasi deployment paralel, Anda dapat memerlukan persetujuan pada multi-target saja, bukan target turunan.

run

Khusus untuk layanan Cloud Run, lokasi tempat layanan akan dibuat:

run:
  location: projects/[project_name]/locations/[location]
  • project_name

    Project Google Cloud tempat layanan akan aktif.

  • location

    Lokasi tempat layanan akan aktif. Misalnya, us-central1.

Hapus properti run saat mengonfigurasi [multi-target]. Lokasi layanan Cloud Run dikonfigurasi di dalam target turunan yang sesuai.

Lihat executionConfigs dalam artikel ini untuk mengetahui deskripsi properti lingkungan eksekusi.

Untuk target GKE Enterprise

Konfigurasi target untuk men-deploy ke cluster GKE mirip dengan mengonfigurasi target untuk target GKE, kecuali bahwa propertinya adalah anthosCluster.membership, bukan gke.cluster, jalur resource-nya berbeda, dan internalIp tidak berlaku.

anthosCluster:
  membership: projects/[project_name]/locations/global/memberships/[membership_name]
  • project_name

    Project Google Cloud tempat cluster GKE Enterprise berada.

  • /location/global/

    Lokasi tempat cluster didaftarkan. global, dalam semua kasus.

  • membership_name

    Nama keanggotaan cluster GKE Enterprise.

Berikut contohnya:

anthosCluster:
  membership: projects/cd-demo-01/locations/global/memberships/prod

Hapus properti anthosCluster saat mengonfigurasi [multi-target]. Cluster GKE Enterprise dikonfigurasi di dalam target turunan yang sesuai.

Untuk mengetahui informasi selengkapnya tentang cara men-deploy ke cluster GKE, lihat Men-deploy ke cluster pengguna Anthos.

Untuk target kustom

Konfigurasi untuk target kustom mirip dengan semua jenis target lainnya, kecuali bahwa konfigurasi untuk stanza gke, stanza run, atau stanza anthosCluster.

Sebagai gantinya, target kustom menyertakan stanza customTarget:

customTarget:
  customTargetType: [CUSTOM_TARGET_TYPE_NAME]

Dengan CUSTOM_TARGET_TYPE_NAME adalah nama yang Anda gunakan dalam definisi jenis target kustom.

Berikut contohnya:

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
  name: sample-env
customTarget:
  customTargetType: basic-custom-target

executionConfigs

Kumpulan kolom untuk menentukan lingkungan eksekusi non-default untuk target ini.

  • usages

    Baik RENDER maupun DEPLOY atau keduanya, serta PREDEPLOY, VERIFY, atau POSTDEPLOY jika verifikasi atau hook deploy diaktifkan pada target. Kolom ini menunjukkan operasi mana yang akan dilakukan untuk target ini menggunakan lingkungan eksekusi ini. Guna menunjukkan bahwa lingkungan eksekusi kustom akan digunakan untuk hook pra-deployment, render, deploy, hook pasca-deployment, dan verifikasi, Anda harus mengonfigurasinya sebagai berikut:

    usages:
    - RENDER
    - PREDEPLOY
    - DEPLOY
    - VERIFY
    - POSTDEPLOY
    

    Jika verifikasi diaktifkan pada tahap pipeline, dan Anda tidak menentukan VERIFY dalam stanza usages, Cloud Deploy menggunakan lingkungan eksekusi default untuk verifikasi. Hook pra-deployment dan pasca-deployment berfungsi dengan cara yang sama.

    Namun, jika ada lingkungan eksekusi kustom untuk RENDER dan DEPLOY, Anda harus menentukan satu untuk VERIFY, PREDEPLOY, ATAU POSTDEPLOY jika dikonfigurasi pada pipeline pengiriman.VERIFY, PREDEPLOY, dan POSTDEPLOY dapat berada di usages yang sama dengan RENDER atau DEPLOY, atau di usages terpisah.

    Anda tidak dapat menentukan usages.VERIFY, usages.PREDEPLOY, atau usages.POSTDEPLOY kecuali RENDER dan DEPLOY ditentukan dalam lingkungan eksekusi kustom yang sama atau terpisah.

  • workerPool

    Konfigurasi untuk kumpulan pekerja yang akan digunakan. Tindakan ini mengambil jalur resource yang mengidentifikasi pool worker Cloud Build yang akan digunakan untuk target ini. Contoh:

    projects/p123/locations/us-central1/workerPools/wp123.

    Untuk menggunakan kumpulan Cloud Build default, hapus properti ini.

    Target tertentu dapat memiliki dua workerPool (satu untuk RENDER dan satu untuk DEPLOY). Saat mengonfigurasi kumpulan default, Anda dapat menentukan akun layanan atau lokasi penyimpanan alternatif, atau keduanya.

  • serviceAccount

    Nama akun layanan yang akan digunakan untuk operasi ini (RENDER atau DEPLOY) untuk target ini.

  • artifactStorage

    Bucket Cloud Storage yang akan digunakan untuk operasi ini (RENDER atau DEPLOY) untuk target ini, bukan bucket default.

  • executionTimeout

    Opsional. Menetapkan waktu tunggu, dalam detik, untuk operasi yang dilakukan Cloud Build untuk Cloud Deploy. Secara default, durasinya adalah 3600 detik (1 jam).
    Contoh: executionTimeout: "5000s"

Sintaksis alternatif yang didukung

Konfigurasi executionConfigs yang dijelaskan dalam dokumen ini adalah konfigurasi baru. Sintaksis sebelumnya masih didukung:

executionConfigs:
- privatePool:
    workerPool:
    serviceAccount:
    artifactStorage:
  usages:
  - [RENDER | DEPLOY]
- defaultPool:
    serviceAccount:
    artifactStorage:
  usages:
  - [RENDER | DEPLOY]

Saat Anda mengonfigurasi stanza executionConfigs untuk multi-target, setiap target turunan dapat mewarisi lingkungan eksekusi tersebut dari multi-target tersebut.

Definisi jenis target kustom

Bagian ini menjelaskan kolom yang digunakan untuk menentukan jenis target kustom

Seperti halnya target dan otomatisasi standar, definisi CustomTargetType dapat disertakan dalam definisi pipeline pengiriman Anda, atau dalam file atau file terpisah.

YAML berikut menunjukkan cara mengonfigurasi jenis target kustom:

apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
  name: [CUSTOM_TARGET_TYPE_NAME]
  annotations:
  labels:
description:
customActions:
  renderAction: [RENDER_ACTION_NAME]
  deployAction: [DEPLOY_ACTION_NAME]
  includeSkaffoldModules:
    - configs:
    # either:
    googleCloudStorage:
      source:
      path:
    # or:
    git:
      repo:
      path:
      ref:

Dengan keterangan:

  • [CUSTOM_TARGET_TYPE_NAME]

    Adalah nama arbitrer yang Anda berikan untuk definisi jenis target kustom ini. Nama ini disebut dalam definisi target untuk semua target yang menggunakan jenis target kustom yang Anda tentukan.

  • [RENDER_ACTION_NAME]

    Adalah nama tindakan render kustom. Nilai ini adalah customAction.name yang ditentukan di skaffold.yaml.

  • [DEPLOY_ACTION_NAME]

    Adalah nama tindakan deploy kustom. Nilai ini adalah customAction.name yang ditentukan di skaffold.yaml.

  • Untuk includeSkaffoldModules, lihat Menggunakan konfigurasi Skaffold jarak jauh.

Definisi otomatisasi

Bagian ini menjelaskan kolom yang digunakan untuk menentukan resource otomatisasi Cloud Deploy.

Seperti target, definisi Automation dapat disertakan dengan definisi pipeline pengiriman Anda, atau dalam satu atau beberapa file terpisah.

Untuk mengetahui informasi selengkapnya tentang otomatisasi di Cloud Deploy, lihat dokumentasi otomatisasi.

YAML berikut menunjukkan cara mengonfigurasi otomatisasi. Perhatikan bahwa detail aturan otomatisasi berbeda untuk setiap aturan. (Konfigurasi untuk jenis aturan otomatisasi yang tersedia ada di dokumen Menggunakan aturan otomatisasi.)

apiVersion: deploy.cloud.google.com/v1
kind: Automation
metadata:
  name: [PIPELINE_NAME]/[PURPOSE]
  labels:
  annotations:
description: [DESCRIPTION]
suspended: true | false
serviceAccount: [SERVICE_ACCOUNT_ID]
selector:
  targets:
    -  id: [TARGET_ID]
       labels:
         [LABEL_KEY]:[LABEL_VALUE]

rules:
- [RULE_TYPE]:
    name:[RULE_NAME]
  [RULE-SPECIFIC_CONFIG]

Dengan keterangan:

  • [PIPELINE_NAME]

    Sama dengan nilai metadata.name di pipeline pengiriman yang menggunakan otomatisasi ini. Semua otomatisasi bersifat eksklusif untuk pipeline pengiriman yang dibuatnya. Artinya, Anda tidak dapat berbagi otomatisasi di lebih dari satu pipeline pengiriman.

  • [PURPOSE]

    Adalah nama deskriptif lebih lanjut untuk otomatisasi ini. Biasanya, ini adalah tindakan yang otomatis. Misalnya, my-app-pipeline/promote.

  • labels dan annotations adalah label atau anotasi yang ingin Anda kaitkan dengan otomatisasi ini.

  • [DESCRIPTION]

    Adalah deskripsi opsional untuk otomatisasi ini.

  • suspended

    true atau false, menunjukkan apakah otomatisasi ini aktif atau ditangguhkan. Jika ditetapkan ke true, otomatisasi tidak akan digunakan. Hal ini dapat berguna untuk menguji otomatisasi tanpa memengaruhi pipeline pengiriman.

  • [SERVICE_ACCOUNT_ID]

    Adalah ID akun layanan yang digunakan untuk melakukan otomatisasi. Misalnya, jika otomatisasi menggunakan promoteReleaseRule, akun layanan ini akan melakukan promosi rilis sehingga memerlukan izin yang diperlukan untuk mempromosikan rilis.

    Nilai diperlukan untuk properti ini. Cloud Deploy tidak menggunakan akun layanan default untuk otomatisasi.

    Akun layanan ini harus memiliki izin berikut:

    • Izin actAs untuk meniru identitas akun layanan eksekusi.

    • izin untuk menjalankan operasi yang diotomatiskan, misalnya, clouddeploy.releases.promote untuk mempromosikan rilis, atau clouddeploy.rollouts.advance untuk melanjutkan fase peluncuran.

  • [TARGET_ID]

    Merupakan ID target yang akan menggunakan otomatisasi ini. Meskipun otomatisasi dikaitkan dengan pipeline pengiriman, otomatisasi hanya dijalankan pada target atau target yang ditentukan.

    Anda dapat menetapkannya ke * untuk memilih semua target dalam pipeline pengiriman.

  • [LABEL_KEY]:[LABEL_VALUE]

    Adalah pasangan nilai kunci yang akan dicocokkan dengan pasangan nilai kunci yang ditentukan di target. Tindakan ini akan memilih semua target yang terkait dengan pipeline pengiriman yang memiliki label dan nilai yang sama.

  • [RULE_TYPE]

    Adalah nama aturan otomatisasi yang digunakan untuk otomatisasi ini. Nama ini adalah promoteReleaseRule atau advanceRolloutRule. Anda dapat menyertakan lebih dari satu aturan dalam otomatisasi, termasuk lebih dari satu RULE_TYPE yang sama. Misalnya, Anda dapat memiliki lebih dari satu aturan promoteReleaseRule dalam otomatisasi yang sama. Pelajari lebih lanjut.

  • [RULE_NAME]

    Nama aturan. Nama ini harus unik dalam pipeline pengiriman. Nilai diperlukan untuk properti ini.

  • [RULE-SPECIFIC_CONFIG]

    Konfigurasi berbeda untuk setiap jenis otomatisasi yang didukung. Konfigurasi tersebut ditampilkan di Menggunakan aturan otomatisasi.

Langkah selanjutnya