Referensi skema konfigurasi

File konfigurasi Cloud Deploy menentukan pipeline pengiriman, target untuk di-deploy, dan progres target tersebut.

File konfigurasi pipeline pengiriman dapat menyertakan definisi target, atau file tersebut dapat berada dalam satu file atau beberapa file terpisah. Secara umum, file yang berisi konfigurasi pipeline pengiriman dan konfigurasi target disebut clouddeploy.yaml, dan konfigurasi pipeline tanpa target disebut delivery-pipeline.yaml. Namun, Anda dapat memberi file ini nama apa pun yang Anda inginkan. Definisi resource lainnya, seperti otomatisasi dan kebijakan deployment, juga dapat berada dalam file yang sama dengan pipeline pengiriman atau definisi target.

Apa yang ditempatkan di mana

Cloud Deploy menggunakan dua file konfigurasi utama:

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

Struktur file konfigurasi pipeline pengiriman

Berikut adalah struktur konfigurasi pipeline pengiriman, termasuk properti untuk definisi target. Beberapa properti target tidak disertakan di sini. Lihat Definisi target untuk semua properti konfigurasi 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:
 proxyUrl:
#
# 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:
  verbose:
---

# 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 ini memiliki tiga komponen utama:

  • Pipeline pengiriman utama dan progresnya

    File konfigurasi dapat menyertakan berapa pun definisi pipeline.

  • Definisi target

    Untuk memudahkan, hanya satu target yang ditampilkan dalam contoh ini, tetapi jumlahnya dapat bervariasi. Selain itu, target dapat ditentukan dalam satu atau beberapa 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 dalam file yang sama dengan pipeline dan target pengiriman, atau dalam satu atau beberapa file terpisah. Untuk mempermudah, hanya satu Automation yang ditampilkan di sini, tetapi Anda dapat membuat sebanyak yang Anda inginkan.

Komponen ini ditentukan di bagian lain dokumen ini.

Definisi dan progres pipeline

Selain metadata pipeline, seperti name, definisi pipeline utama 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, mempromosikan rilis akan men-deploy ke target berikutnya dalam daftar.

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

metadata.name

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

metadata.annotations dan metadata.labels

Konfigurasi pipeline pengiriman dapat mencakup anotasi dan label. Anotasi dan label disimpan dengan resource pipeline pengiriman setelah pipeline telah terdaftar.

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

description

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

suspended

Boolean, yang jika true menjeda pipeline pengiriman sehingga tidak dapat digunakan untuk membuat, mempromosikan, melakukan rollback, 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 pengiriman progres serial. Stanza ini wajib diisi.

stages

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

Daftar harus sesuai dengan 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 ke dev, dan deployment akhir Anda adalah ke 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 antara target saat menggunakan satu file konfigurasi.

strategy

Menyertakan properti untuk menentukan strategi deployment. Strategi berikut didukung:

  • standard:

    Aplikasi di-deploy sepenuhnya ke target yang ditentukan.

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

  • canary:

    Dalam deployment canary, Anda men-deploy versi baru aplikasi secara bertahap, menggantikan versi yang sudah berjalan dengan penambahan berbasis persentase (misalnya, 25%, lalu 50%, lalu 75%, lalu 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 menunjukkan 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"
              routeDestinations:
                destinationIds: ["KEY"]
                propagateService: [true|false]
        canaryDeployment:
          percentages: ["PERCENTAGES"]
          verify: true | false

Perhatikan dalam contoh ini routeUpdateWaitTime. Hal ini disertakan karena Gateway API memisahkan traffic menggunakan resource HTTPRoute, dan terkadang ada penundaan dalam menyebarkan perubahan yang dilakukan pada HTTPRoute. Dalam kasus tersebut, permintaan dapat dihapus, karena traffic dikirim ke resource yang tidak tersedia. Anda dapat menggunakan routeUpdateWaitTime untuk menyebabkan 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 otomatis 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 key-value pair untuk meneruskan nilai ke manifes untuk target yang cocok dengan label, saat menggunakan parameter deployment.

Anda juga dapat menyertakannya di target.

Parameter deployment yang ditetapkan di pipeline pengiriman menggunakan label untuk mencocokkan 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, ada label. Nilai diterapkan ke manifes untuk target apa pun yang memiliki label yang cocok.

Tugas predeploy dan postdeploy

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 deployment dikonfigurasi di bagian 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 informasi selengkapnya tentang cara mengonfigurasi dan menggunakan hook pra- dan pasca-deploy, lihat Menjalankan hook sebelum dan setelah 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 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 pipeline pengiriman tunggal.

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:
      proxyUrl:

     associatedEntities:
       [KEY]:
         gkeClusters:
         - cluster: projects/[project_name]/locations/[location]/clusters/[cluster_name]
           internalIp: [true|false]
           proxyUrl:

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

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 deployment di target apa 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 deployment 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 penerapan 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 mewajibkan persetujuan hanya pada multi-target—bukan pada 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 zonal (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. Sebagai gantinya, cluster GKE dikonfigurasi di dalam target turunan yang sesuai.

Lihat executionConfigs, dalam dokumen ini, untuk mengetahui deskripsi properti lingkungan eksekusi. Lihat artikel Men-deploy HTTPRoute ke cluster lain untuk mengetahui informasi tentang cara men-deploy HTTPRoute ke cluster alternatif non-target.

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 secara publik untuk cluster. Jika ada alamat IP pribadi dan Anda ingin menggunakannya, tetapkan ke true.

proxyUrl

Jika Anda mengakses cluster melalui proxy, berikan properti proxyUrl di sini. Nilainya adalah URL cluster GKE proxy Anda, yang diteruskan ke kubectl saat terhubung ke cluster Anda.

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:
       verbose:

metadata.name

Nama target ini. Nama ini harus unik per region.

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 penerapan 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 mewajibkan persetujuan hanya pada multi-target—bukan pada 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 berada.

  • location

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

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

Lihat executionConfigs, dalam artikel ini, untuk 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 terdaftar. 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]. Sebagai gantinya, cluster GKE Enterprise dikonfigurasi di dalam target turunan yang sesuai.

Untuk mengetahui informasi selengkapnya tentang 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 tidak menyertakan stanza gke, atau 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

    RENDER atau DEPLOY atau keduanya, ditambah PREDEPLOY, VERIFY, atau POSTDEPLOY jika verifikasi atau hook deployment diaktifkan di target. Ini menunjukkan operasi mana yang akan dilakukan untuk target ini menggunakan lingkungan eksekusi ini. Untuk menunjukkan bahwa lingkungan eksekusi kustom akan digunakan untuk hook pra-deploy, render, deploy, hook pasca-deploy, dan verifikasi, Anda akan 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 akan menggunakan lingkungan eksekusi default untuk verifikasi. Hook pra-deploy dan post-deploy berfungsi dengan cara yang sama.

    Namun, jika ada lingkungan eksekusi kustom untuk RENDER dan DEPLOY, Anda harus menentukannya untuk VERIFY, PREDEPLOY, ATAU POSTDEPLOY jika dikonfigurasi di 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 jika RENDER dan DEPLOY ditentukan dalam lingkungan eksekusi kustom yang sama atau terpisah.

  • workerPool

    Konfigurasi untuk kumpulan pekerja yang akan digunakan. Tindakan ini memerlukan jalur resource yang mengidentifikasi kumpulan pekerja 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, intervalnya adalah 3600 detik (1 jam).
    Contoh: executionTimeout: "5000s"

  • verbose

    Opsional. Jika true, tingkat panjang informasi dalam logging ditetapkan ke debug untuk alat berikut:

Sintaksis alternatif yang didukung

Konfigurasi executionConfigs yang dijelaskan dalam dokumen ini adalah 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 target dan otomatisasi standar, definisi CustomTargetType dapat disertakan dengan definisi pipeline pengiriman, atau dalam satu atau beberapa 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 ke definisi jenis target kustom ini. Nama ini direferensikan dalam definisi target untuk target apa pun yang menggunakan jenis target kustom yang Anda tentukan.

  • [RENDER_ACTION_NAME]

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

  • [DEPLOY_ACTION_NAME]

    Adalah nama tindakan deployment kustom. Nilai ini adalah customAction.name yang ditentukan dalam 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, atau dalam satu atau beberapa file terpisah.

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

YAML berikut menunjukkan cara mengonfigurasi otomatisasi. Perhatikan bahwa detail aturan otomatisasi berbeda-beda per aturan. (Konfigurasi untuk jenis aturan otomatis yang tersedia ada dalam dokumen Menggunakan aturan otomatis.)

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 tempat otomatisasi tersebut dibuat. Artinya, Anda tidak dapat membagikan otomatisasi di lebih dari satu pipeline pengiriman.

  • [PURPOSE]

    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 hubungkan dengan otomatisasi ini.

  • [DESCRIPTION]

    Merupakan deskripsi opsional untuk otomatisasi ini.

  • suspended

    true atau false, yang menunjukkan apakah otomatisasi ini aktif atau ditangguhkan. Jika disetel 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 wajib diisi 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 melakukan operasi yang sedang diotomatiskan, misalnya, clouddeploy.releases.promote untuk mempromosikan rilis, atau clouddeploy.rollouts.advance untuk melanjutkan fase peluncuran.

  • [TARGET_ID]

    Adalah ID target yang digunakan untuk otomatisasi ini. Meskipun otomatisasi terikat dengan pipeline pengiriman, otomatisasi hanya dijalankan pada target yang ditentukan.

    Anda dapat menetapkannya ke * untuk memilih semua target di 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. Ini adalah promoteReleaseRule, timedPromoteReleaseRule, advanceRolloutRule, atau repairRolloutRule. 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 untuk aturan. Nama ini harus unik dalam pipeline pengiriman. Nilai wajib diisi untuk properti ini.

  • [RULE-SPECIFIC_CONFIG]

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

Men-deploy definisi kebijakan (Pratinjau)

Bagian ini menjelaskan kolom yang digunakan untuk menentukan kebijakan deployment.

Seperti resource Cloud Deploy lainnya, Anda dapat menyertakan definisi DeployPolicy dengan definisi pipeline pengiriman atau dalam file terpisah.

YAML berikut menunjukkan cara mengonfigurasi kebijakan deployment:

apiVersion: deploy.cloud.google.com/v1
kind: DeployPolicy
metadata:
  name: [POLICY_NAME]
  annotations: [ANNOTATIONS]
  labels: [LABELS]
description: [DESCRIPTION]
suspended: [true | false]
selectors:
- deliveryPipeline:
    id: [PIPELINE_ID]
    labels:
      [LABEL_KEY]:[LABEL_VALUE]
  target:
    id: [TARGET_ID]
    labels:
      [LABEL_KEY]:[LABEL_VALUE]
rules:
  - [RULE_TYPE]
      [CONFIGS]

Dengan keterangan:

  • [DESCRIPTION]

    Adalah teks opsional yang menjelaskan kebijakan ini.

  • [POLICY_NAME]

    Nama kebijakan. Kolom ini menggunakan string yang harus unik per project dan lokasi. ID ini harus berupa huruf kecil, angka, dan tanda hubung, dengan karakter pertama berupa huruf, karakter terakhir berupa huruf atau angka, dan maksimal 63 karakter. Nama ini digunakan sebagai nama tampilan di konsol Google Cloud.

  • [ANNOTATIONS] dan [LABELS]

    Kebijakan dapat menyertakan anotasi dan label, yang merupakan bagian dari resource kebijakan setelah dibuat. Untuk mengetahui informasi selengkapnya, lihat Menggunakan anotasi dan label dengan Cloud Deploy.

  • suspended: [true | false]

    Jika suspended disetel ke true, kebijakan ini akan dinonaktifkan.

  • [PIPELINE_ID]

    Adalah ID untuk pipeline pengiriman yang ingin Anda pengaruhi dengan kebijakan ini. Anda dapat menggunakan * untuk menunjukkan semua pipeline. ID ini sama dengan properti metadata.name di pipeline pengiriman.

  • [TARGET_ID]

    Adalah ID untuk target yang ingin Anda pengaruhi dengan kebijakan ini. Anda dapat menggunakan * untuk menunjukkan semua target. ID ini sama dengan properti metadata.name di target.

  • [LABEL_KEY]:[LABEL_VALUE]

    Adalah pasangan nilai kunci yang akan dicocokkan dengan pasangan nilai kunci yang ditentukan di pipeline atau target pengiriman. Tindakan ini akan memilih semua pipeline atau target yang memiliki label dan nilai yang sama. Anda dapat menentukan labels, bukan atau sebagai tambahan dari id.

  • [RULE_TYPE]

    Adalah jenis aturan kebijakan tertentu yang Anda konfigurasi. Satu-satunya nilai yang valid adalah rolloutRestriction.

  • [CONFIGS]

    Adalah kumpulan properti konfigurasi untuk aturan kebijakan tertentu yang Anda buat. Konfigurasi untuk aturan dijelaskan nanti di bagian ini dalam referensi ini, untuk setiap aturan yang tersedia.

Men-deploy aturan kebijakan

Bagian ini menjelaskan cara mengonfigurasi setiap aturan kebijakan deployment.

rolloutRestriction

Aturan rolloutRestriction mencegah Cloud Deploy melakukan operasi tertentu pada peluncuran selama periode waktu yang ditentukan, untuk pipeline dan target pengiriman yang ditunjukkan oleh selectors untuk kebijakan deployment.

YAML berikut menunjukkan cara mengonfigurasi aturan rolloutRestriction:

rules:
- rolloutRestriction:
    id: [RULE_ID]
    actions:
    - [ACTIONS]
    invokers:
    - [INVOKERS]
    timeWindows:
      timeZone: [TIMEZONE]
      oneTimeWindows:
      - start: [START_DATE_TIME]
        end: [END_DATE_TIME]
      weeklyWindows:
      - daysOfWeek:
        - [DAY_OF_WEEK]
        - [DAY_OF_WEEK]
        startTime: [START_TIME]
        endTime: [END_TIME]

Dengan keterangan:

  • RULE_ID

    ID untuk aturan ini. Wajib diisi. Nama harus terdiri dari huruf kecil, angka, dan tanda hubung, dengan karakter pertama berupa huruf, karakter terakhir berupa huruf atau angka, dan maksimal 63 karakter. Nama ini harus unik dalam kebijakan deployment.

  • ACTIONS

    Opsional: tindakan peluncuran yang akan dibatasi sebagai bagian dari kebijakan. Jika kosong, semua tindakan akan dibatasi. Nilai yang valid adalah:

    • ADVANCE

      Fase peluncuran tidak dapat dimajukan.

    • APPROVE

      Promosi peluncuran tidak dapat disetujui.

    • CANCEL

      Peluncuran tidak dapat dibatalkan.

    • CREATE

      Peluncuran tidak dapat dibuat.

    • IGNORE_JOB

      Tugas tidak dapat diabaikan.

    • RETRY_JOB

      Tugas tidak dapat dicoba lagi.

    • ROLLBACK

      Peluncuran tidak dapat di-roll back.

    • TERMINATE_JOBRUN

      Proses tugas tidak dapat dihentikan

  • INVOKERS

    Menentukan pemanggil akan memfilter penerapan kebijakan, bergantung pada apakah tindakan yang dibatasi dipanggil oleh pengguna atau oleh otomatisasi deployment. Nilai yang valid adalah:

    • USER

      Tindakan ini didorong oleh pengguna. Misalnya, membuat peluncuran secara manual menggunakan perintah gcloud CLI.

    • DEPLOY_AUTOMATION

      Tindakan otomatis oleh Cloud Deploy.

    Anda dapat menentukan salah satu nilai atau kedua nilai. Defaultnya, jika Anda tidak menentukan apa pun, adalah keduanya.

  • TIMEZONE

    Zona waktu, dalam format IANA, tempat Anda menyatakan periode waktu. Contoh, America/New_York. Wajib diisi.

  • START_DATE_TIME

    Untuk oneTimeWindows, tanggal dan waktu yang menandai awal periode pembatasan, dalam format "yyyy-mm-dd hh:mm". Untuk awal hari, gunakan 00:00. Kolom ini wajib diisi.

  • END_DATE_TIME

    Untuk oneTimeWindows, tanggal dan waktu yang menandai akhir periode pembatasan, dalam format "yyyy-mm-dd hh:mm". Untuk akhir hari, gunakan 24:00. Kolom ini wajib diisi.

  • DAY_OF_WEEK

    Untuk weeklyWindows, hari dalam seminggu, SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, atau SATURDAY. Jika Anda membiarkannya kosong, kolom ini akan cocok dengan semua hari dalam seminggu

  • START_TIME

    Untuk weeklyWindows, waktu mulai pada hari yang ditentukan. Jika menyertakan waktu mulai, Anda harus menyertakan waktu berakhir. Untuk awal hari, gunakan 00:00.

  • END_TIME

    Untuk weeklyWindows, waktu berakhir pada hari dalam seminggu yang ditentukan. Jika menyertakan waktu mulai, Anda harus menyertakan waktu berakhir. Untuk akhir hari, gunakan 24:00.

Langkah selanjutnya