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:
- Definisi pipeline pengiriman
- Definisi target
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 deploymentstandard
.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
atauDEPLOY
atau keduanya, ditambahPREDEPLOY
,VERIFY
, atauPOSTDEPLOY
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 stanzausages
, 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
danDEPLOY
, Anda harus menentukannya untukVERIFY
,PREDEPLOY
, ATAUPOSTDEPLOY
jika dikonfigurasi di 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
kecuali jikaRENDER
danDEPLOY
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 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, intervalnya adalah
3600
detik (1 jam).
Contoh:executionTimeout: "5000s"
verbose
Opsional. Jika
true
, tingkat panjang informasi dalam logging ditetapkan kedebug
untuk alat berikut:Skaffold
--verbosity
ditetapkan kedebug
. Default Skaffold adalahwarn
.kubectl
--v
ditetapkan ke4
, yang merupakan debug. Default kubectl adalah2
.--verbosity
Google Cloud CLI ditetapkan kedebug
. Defaultnya adalahwarning
.
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 dalamskaffold.yaml
.[DEPLOY_ACTION_NAME]
Adalah nama tindakan deployment kustom. Nilai ini adalah
customAction.name
yang ditentukan dalamskaffold.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
danannotations
adalah label atau anotasi yang ingin Anda hubungkan dengan otomatisasi ini.[DESCRIPTION]
Merupakan deskripsi opsional untuk otomatisasi ini.
suspended
true
ataufalse
, yang menunjukkan apakah otomatisasi ini aktif atau ditangguhkan. Jika disetel 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 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, atauclouddeploy.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
, ataurepairRolloutRule
. 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 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 ketrue
, 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 propertimetadata.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 propertimetadata.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 dariid
.[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, gunakan00: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, gunakan24:00
. Kolom ini wajib diisi.DAY_OF_WEEK
Untuk
weeklyWindows
, hari dalam seminggu,SUNDAY
,MONDAY
,TUESDAY
,WEDNESDAY
,THURSDAY
,FRIDAY
, atauSATURDAY
. Jika Anda membiarkannya kosong, kolom ini akan cocok dengan semua hari dalam semingguSTART_TIME
Untuk
weeklyWindows
, waktu mulai pada hari yang ditentukan. Jika menyertakan waktu mulai, Anda harus menyertakan waktu berakhir. Untuk awal hari, gunakan00: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, gunakan24:00
.
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 dengan mempelajari instance pipeline.