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:
- Definisi pipeline pengiriman
- Definisi target
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 deploymentstandard
.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
maupunDEPLOY
atau keduanya, sertaPREDEPLOY
,VERIFY
, atauPOSTDEPLOY
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 stanzausages
, 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
danDEPLOY
, Anda harus menentukan satu untukVERIFY
,PREDEPLOY
, ATAUPOSTDEPLOY
jika dikonfigurasi pada pipeline pengiriman.VERIFY
,PREDEPLOY
, danPOSTDEPLOY
dapat berada diusages
yang sama denganRENDER
atauDEPLOY
, atau diusages
terpisah.Anda tidak dapat menentukan
usages.VERIFY
,usages.PREDEPLOY
, atauusages.POSTDEPLOY
kecualiRENDER
danDEPLOY
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 untukRENDER
dan satu untukDEPLOY
). 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
atauDEPLOY
) untuk target ini.artifactStorage
Bucket Cloud Storage yang akan digunakan untuk operasi ini (
RENDER
atauDEPLOY
) 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 diskaffold.yaml
.[DEPLOY_ACTION_NAME]
Adalah nama tindakan deploy kustom. Nilai ini adalah
customAction.name
yang ditentukan diskaffold.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
danannotations
adalah label atau anotasi yang ingin Anda kaitkan dengan otomatisasi ini.[DESCRIPTION]
Adalah deskripsi opsional untuk otomatisasi ini.
suspended
true
ataufalse
, menunjukkan apakah otomatisasi ini aktif atau ditangguhkan. Jika ditetapkan ketrue
, 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, atauclouddeploy.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
atauadvanceRolloutRule
. Anda dapat menyertakan lebih dari satu aturan dalam otomatisasi, termasuk lebih dari satuRULE_TYPE
yang sama. Misalnya, Anda dapat memiliki lebih dari satu aturanpromoteReleaseRule
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
Cari tahu lebih lanjut cara kerja Cloud Deploy.
Pelajari cara menyiapkan pipeline pengiriman untuk aplikasi Anda.
Pelajari cara mengelola manifes.
Hindari ketidakcocokan antara rilis dan pipeline pengiriman Anda dengan mempelajari instance pipeline.