Dokumen ini menjelaskan cara menjalankan program atau operasi arbitrer sebelum atau setelah Anda men-deploy.
Anda dapat mengonfigurasi Cloud Deploy untuk melakukan tindakan pre-deployment atau tindakan post-deployment, atau keduanya. Program yang dijalankan dengan cara ini disebut "hook". Hook pra-deployment dan pasca-deployment berjalan sebagai tugas pra-deployment dan pasca-deployment pada peluncuran.
Anda dapat mengonfigurasi setiap hook untuk berjalan di lingkungan eksekusi Cloud Deploy yang ditentukan, tetapi jika Anda men-deploy ke Google Kubernetes Engine, Anda dapat secara opsional mengonfigurasinya untuk berjalan di cluster GKE tempat Anda men-deploy aplikasi.
Hook deployment diasumsikan bersifat idempoten. Jika tindakan tertentu dijalankan lebih dari sekali, tidak ada efek tambahan.
Bagaimana cara kerja hook deployment?
Berikut ini penjelasan tentang cara menjalankan hook deployment di Cloud Deploy dan cara menyiapkannya:
Anda mengonfigurasi hook dalam satu atau beberapa tahap dalam progres pipeline pengiriman.
Sebelum tugas deployment peluncuran berjalan, Cloud Deploy menjalankan tugas apa pun yang dikonfigurasi dalam definisi
predeploydalam progres pipeline.Hook
predeployselalu berjalan sebagai tugas pertama dalam fase.Setelah tugas deployment peluncuran berjalan, Cloud Deploy menjalankan tugas apa pun yang dikonfigurasi dalam definisi
postdeploydalam progres pipeline.
Hook deployment dijalankan di lingkungan eksekusi Cloud Deploy.
Menggunakan hook deployment dengan deployment canary
Saat mengonfigurasi hook deployment untuk deployment canary, ada beberapa hal yang perlu diketahui:
Pada tahap pipeline pengiriman, konfigurasi hook (
predeploydanpostdeploy) berada di bagianstrategy.canary.canaryDeploymentataustrategy.canary.customCanaryDeployment.phaseConfigs, bukan di bagianstrategy.standard.Untuk canary otomatis, hook
predeployhanya dieksekusi sebelum deployment pada fase pertama, dan hookpostdeployhanya dieksekusi setelah deployment pada fase terakhir (stabil).
Mengonfigurasi pipeline untuk menjalankan hook
Anda mengonfigurasi hook pra- dan pasca-deployment dalam satu atau beberapa tahap tertentu dalam progresi pipeline.
Berikut cara mengonfigurasi hook pra-dan pasca-deployment di tahap pipeline saat menggunakan strategi deployment standard:
serialPipeline:
stages:
- targetId: hooks-staging
profiles: []
strategy:
standard:
predeploy:
tasks: [TASKS]
postdeploy:
tasks: [TASKS]
Dalam yaml ini:
TASKS
Adalah daftar satu atau beberapa Tugas yang ingin Anda jalankan sebagai bagian dari hook pra-deploy atau pasca-deploy. Jika Anda menentukan lebih dari satu tugas, tugas tersebut akan dieksekusi secara berurutan, sesuai urutan yang ditentukan. Pekerjaan (sebelum atau sesudah deployment) gagal pada tugas pertama yang gagal, dan tugas yang tersisa tidak dijalankan.
Jalankan hook di cluster aplikasi
Secara default, hook deployment berjalan di lingkungan eksekusi Cloud Deploy. Anda juga dapat mengonfigurasi Skaffold untuk menjalankan hook deployment di cluster yang sama dengan tempat aplikasi Anda berjalan.
Untuk menjalankan hook di cluster aplikasi, Anda harus mengonfigurasinya sebagai
customActions di
skaffold.yaml, dan merujuknya menggunakan actions di predeploy atau
stanza postdeploy dalam konfigurasi tahap pipeline pengiriman:
serialPipeline:
stages:
- targetId: hooks-staging
profiles: []
strategy:
standard:
predeploy:
actions: ["my-predeploy-action"]
postdeploy:
actions: ["my-postdeploy-action"]
Kemampuan ini hanya tersedia untuk deployment ke GKE, bukan untuk Cloud Run. Deployment ke Cloud Run hanya dapat menjalankan hook di lingkungan eksekusi Cloud Deploy.
Untuk mengonfigurasi hook agar berjalan di cluster, sertakan
stanza executionMode.kubernetesCluster dalam file konfigurasi skaffold.yaml
Anda, di dalam stanza customActions untuk setiap tindakan yang ingin Anda jalankan di
cluster:
customActions:
- name: ACTION_NAME
containers:
- name: CONTAINER_NAME
image: IMAGE
command: