透過 GitLab CI/CD 上傳 Docker Image 到 GCP GCR 並 Deploy 到 GKE
- POSTS
一直很想把 CI/CD 流程整進去新架設的 Kubernetes 內(透過 GKE 提供的),花了點時間終於搞定了。
建立 Service Account,產生 JSON 格式的 private key,並給予 GCR 及 GKE 權限,分別拿來上傳編譯好的 Docker Image 以及操作 GKE。整個流程大致上如最上面的圖片,其實不難,只是中間如果有東西沒串好,整個流程就不會動。
建立 Kubernetes Role 並綁定 RBAC,這邊設定 extensions/deployments 給予 get/patch/list 權限。
kind: Role apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: namespace: default name: deployment-manager-gitlab rules: - apiGroups: ["extensions"] resources: ["deployments"] verbs: ["get", "patch", "list"] --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: deployment-manager namespace: default subjects: - kind: User name: "[[前面建立的 IAM 帳號]]" apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: deployment-manager-gitlab apiGroup: rbac.