GCPは、アップデートが早いので、簡単にまとめてみる。
基本的な内容については、記載しない。
要約
-
gcr.io/cloud-builders/kubectl
コンテナで、kustomizeは使える -
gcr.io/cloud-builders/kubectl
コンテナにクラスター名、ゾーン or リージョンを設定してデプロイ -
gcloud container clusters get-credentials
は自動でやってくれる
ディレクトリ構成
.
├── deployments
│ └── kustomize
│ ├── kustomization.yaml
│ └── test-batch.yaml
└── cloudbuild.yaml
kustomize
非常にシンプルなYAML管理ツール
現状でも、gcr.io/cloud-builders/kubectl
は、v1.14なので、kustomizeは組み込まれている。
kubectl -k
kustomization.yaml
resources:
- test-batch.yaml
test-batch.yaml
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: test
spec:
schedule: "1/* * * * *"
jobTemplate:
spec:
backoffLimit: 3
completions: 1
parallelism: 1
template:
spec:
containers:
- name: busybox
image: busybox
command: "/bin/sh -c echo 'hello!!'"
restartPolicy: OnFailure
cloud build
cloudbuild.yaml
gcr.io/cloud-builders/kubectl
イメージを使用して、環境変数を正しく設定すると自動で認証情報を取得してくれる。
step:
- name: "gcr.io/cloud-builders/kubectl"
args:
- "apply"
- "-k"
- "./deployments/kustomize"
env:
- "CLOUDSDK_COMPUTE_REGION=<cluster region> (regional clusters)"
- "CLOUDSDK_COMPUTE_ZONE=<cluster zone>"
- "CLOUDSDK_CONTAINER_CLUSTER=<cluster name>"
環境変数を設定しないと、下記のように怒られる。
Starting Step #1
Step #1: Already have image (with digest): gcr.io/cloud-builders/kubectl
Step #1: No cluster is set. To set the cluster (and the region/zone where it is found), set the environment variables
Step #1: CLOUDSDK_COMPUTE_REGION=<cluster region> (regional clusters)
Step #1: CLOUDSDK_COMPUTE_ZONE=<cluster zone>
Step #1: CLOUDSDK_CONTAINER_CLUSTER=<cluster name>
Finished Step #1
実行ログ
クラスター名: test-cluster
テストバッチ名: test
Starting Step #1
Step #1: Already have image (with digest): gcr.io/cloud-builders/kubectl
Step #1: Running: gcloud container clusters get-credentials --project="test-ci-gke" --region="asia-northeast1-a" "test-cluster"
Step #1: Fetching cluster endpoint and auth data.
Step #1: kubeconfig entry generated for test-cluster.
Step #1: Running: kubectl apply -k ./deployments/kustomize
Step #1: cronjob.batch/test created
Finished Step #1