Menentukan dan menggunakan jenis target kustom
Panduan memulai ini menunjukkan cara menggunakan Cloud Deploy untuk membuat jenis target kustom, lalu men-deploy ke target kustom dari jenis tersebut.
Dalam panduan memulai ini, Anda akan melakukan hal berikut:
Buat konfigurasi Skaffold.
File konfigurasi Skaffold adalah tempat Anda mengonfigurasi perilaku target. Konfigurasi ini mereferensikan image container beserta perintah shell untuk dijalankan pada image tersebut, yang merupakan tindakan untuk operasi render dan deployment.
Tentukan jenis target kustom, dan target yang mereferensikan jenis tersebut.
Tentukan pipeline pengiriman Cloud Deploy Anda.
Pipeline ini hanya menyertakan satu tahap dan hanya menggunakan satu target. Pada tahap tersebut, Anda akan mereferensikan target yang telah dikonfigurasi.
Buat rilis, yang secara otomatis membuat peluncuran, sehingga operasi render dan deployment kustom akan dilakukan.
Sebagai bagian dari rilis dan peluncuran ini, operasi render dan deployment yang ditentukan dalam konfigurasi Skaffold Anda akan dijalankan.
Lihat hasil operasi kustom. Hal ini mencakup file konfigurasi yang dirender dan diupload ke Cloud Storage, serta string yang ditulis ke file tersebut, serta file hasil yang menyertakan status operasi.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Pastikan akun layanan Compute Engine default memiliki izin yang memadai.
Akun layanan mungkin sudah memiliki izin yang diperlukan. Langkah-langkah ini disertakan untuk project yang menonaktifkan pemberian peran otomatis untuk akun layanan default.
- Pertama, tambahkan peran
clouddeploy.jobRunner
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/clouddeploy.jobRunner"
- Tambahkan peran developer untuk runtime tertentu.
-
Tambahkan peran
iam.serviceAccountUser
, yang menyertakan izinactAs
untuk di-deploy ke runtime:gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/iam.serviceAccountUser" \ --project=PROJECT_ID
Jika Anda sudah menginstal Google Cloud CLI, pastikan Anda menjalankan versi terbaru:
gcloud components update
Menyiapkan konfigurasi Skaffold
Cloud Deploy menggunakan Skaffold untuk memberikan detail tentang apa yang akan di-deploy dan cara men-deploynya ke target Anda.
Dalam memulai cepat ini, Anda akan membuat file skaffold.yaml
, yang menentukan tindakan kustom yang mewakili operasi render dan deployment untuk jenis target kustom.
Perhatikan bahwa tindakan kustom yang disediakan dalam panduan memulai ini tidak benar-benar men-deploy aplikasi apa pun ke runtime. Tindakan render dan deploy mengupload file hasil ke Cloud Storage untuk memenuhi kontrak target kustom antara Cloud Deploy dan render dan deploy yang ditentukan pengguna.
Buka jendela terminal.
Buat direktori baru dan buka direktori tersebut.
mkdir custom-target-quickstart cd custom-target-quickstart
Buat file bernama
skaffold.yaml
dengan konten berikut:apiVersion: skaffold/v4beta7 kind: Config customActions: - name: custom-render containers: - name: render image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:66e2681aa3099b4e517e4cdcdefff8f2aa45d305007124ccdc09686f6712d018 command: ['/bin/bash'] args: - '-c' - |- echo "Sample manifest rendered content" > manifest.txt gcloud storage cp manifest.txt $CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt echo {\"resultStatus\": \"SUCCEEDED\", \"manifestFile\": \"$CLOUD_DEPLOY_OUTPUT_GCS_PATH/manifest.txt\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.json - name: custom-deploy containers: - name: deploy image: gcr.io/google.com/cloudsdktool/google-cloud-cli@sha256:66e2681aa3099b4e517e4cdcdefff8f2aa45d305007124ccdc09686f6712d018 command: ['/bin/bash'] args: - '-c' - |- echo {\"resultStatus\": \"SUCCEEDED\"} > results.json gcloud storage cp results.json $CLOUD_DEPLOY_OUTPUT_GCS_PATH/results.json
File ini menyertakan stanza
customActions:
, yang menentukan tindakan render kustom dan tindakan deployment kustom. Setiap tindakan kustom ini mereferensikan image container yang akan dijalankan, dan perintah yang akan dijalankan di container tersebut.Lihat referensi
skaffold.yaml
untuk mengetahui informasi selengkapnya tentang file konfigurasi ini.
Membuat pipeline pengiriman, jenis target kustom, dan target
Anda dapat menentukan pipeline pengiriman, jenis target kustom, dan target dalam satu file atau dalam file terpisah. Dalam panduan memulai ini, Anda akan membuat satu file dengan ketiganya.
Di direktori custom-target-quickstart, buat file baru,
clouddeploy.yaml
, dengan konten berikut:apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: custom-targets-pipeline serialPipeline: stages: - targetId: sample-env --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: sample-env customTarget: customTargetType: basic-custom-target --- apiVersion: deploy.cloud.google.com/v1 kind: CustomTargetType metadata: name: basic-custom-target customActions: renderAction: custom-render deployAction: custom-deploy
Daftarkan pipeline dan target Anda dengan layanan Cloud Deploy:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
Anda sekarang memiliki pipeline pengiriman, dengan satu target. Ini adalah target Anda yang menggunakan jenis target kustom, dan pipeline ini tidak men-deploy aplikasi ke runtime.
Konfirmasi pipeline dan target Anda:
Di konsol Google Cloud, buka halaman Delivery pipelines Cloud Deploy untuk melihat daftar pipeline pengiriman yang tersedia.
Buka halaman Delivery pipelines
Pipeline pengiriman yang baru saja Anda buat akan ditampilkan, dengan satu target tercantum di kolom Target.
Membuat rilis
Rilis adalah resource Cloud Deploy pusat yang mewakili perubahan yang di-deploy. Pipeline pengiriman menentukan siklus proses rilis tersebut. Lihat arsitektur layanan Cloud Deploy untuk mengetahui detail tentang siklus proses tersebut.
Jalankan perintah berikut dari direktori custom-target-quickstart
untuk
membuat resource release
yang mewakili tindakan kustom yang akan di-deploy:
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=custom-targets-pipeline
Seperti semua rilis (kecuali jika menyertakan --disable-initial-rollout
), Cloud Deploy juga otomatis membuat resource peluncuran. Selain itu, semua fase peluncuran tersebut akan dijalankan, termasuk rendering dan deployment.
Melihat hasil di konsol Google Cloud
Setelah beberapa menit, deployment Anda akan selesai. Dalam hal ini, karena dua tindakan kustom adalah perintah untuk menampilkan string ke dalam file dan mengupload file ke Cloud Storage, tidak ada yang di-deploy ke runtime target apa pun.
Namun, Anda dapat melihat file dan string dalam file tersebut:
Di konsol Google Cloud, buka halaman Delivery pipelines Cloud Deploy untuk melihat pipeline pengiriman Anda (
custom-targets-pipeline
).Klik nama pipeline pengiriman Anda (
custom-targets-pipeline
).Visualisasi pipeline menampilkan status deployment aplikasi. Karena hanya ada satu tahap dalam pipeline, visualisasi hanya menampilkan satu node.
Selain itu, rilis Anda tercantum di tab Rilis pada bagian Detail pipeline pengiriman.
Klik nama rilis.
Halaman Detail rilis akan ditampilkan.
Klik tab Artefak.
Di bagian Target artefak, klik link LIHAT ARTEFAK.
File manifes yang dirender akan ditampilkan. Dalam hal ini, file adalah output tindakan rendering kustom yang Anda tentukan dalam file konfigurasi
skaffold.yaml
, yang berisi string "Contoh konten yang dirender manifes".Temukan bucket Cloud Storage yang dibuat oleh rilis ini.
Buka halaman browser Cloud Storage
Halaman Buckets akan ditampilkan, yang menampilkan dua bucket yang dibuat untuk rilis ini. Satu bucket berisi file konfigurasi pipeline pengiriman dan
skaffold.yaml
yang dirender. Yang lainnya menyertakan file output yang dikonfigurasi untuk dibuat oleh tindakan kustom kita.Klik bucket yang namanya diawali dengan
us-central1.deploy-artifacts
...Klik folder yang namanya diawali dengan
custom-targets-pipeline-
, lalu klik foldertest-release-001
.Klik folder yang namanya adalah nama peluncuran Anda, yang seharusnya
test-release-001-to-sample-env-0001
.Klik folder yang ditampilkan, yang merupakan UUID, lalu klik folder
custom-output
.Klik
results.json
, lalu klik URL yang memiliki hyperlink di kolom Authenticated URL.File ini berisi string yang Anda konfigurasi sebagai output dari tindakan
custom-deploy
, diskaffold.yaml
:
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Hapus pipeline pengiriman, target, rilis, dan peluncuran:
gcloud deploy delete --file=clouddeploy.yaml --force --region=us-central1 --project=PROJECT_ID
Hapus kedua bucket Cloud Storage yang dibuat Cloud Deploy.
Selesai, Anda telah menyelesaikan quickstart ini.