動作確認
動作確認
Pulumi Kubernetes Operatorを作成できたので、ここでGitHubのProgramを更新し、再度自動デプロイが実行されるか試してみます。
・Pulumi Programの更新&自動デプロイ
- ローカルPCのコンソールで用意したPulumi Kubernetes Operatorで同期させるProgramの中身を空にして、GitHubにpushします(S3 Bucketの記述が削除されたので、実体のリソースも削除される想定です)。
$ pwd /****/operator-test $ echo '' > __main__.py $ git add __main__.py $ git commit -m "delete: S3 bucket resource" $ git push - しばらくするとBucket Objectが自動的に作成されるのが確認できます(筆者の環境ではpushからBucket削除まで5分ほどかかりました)。
Stackをdescribeすると、同期対象のGitHubレポジトリの新たなcommit(detected: "47bd2621****”)をStackControllerで検知しているのが確認できます。
$ kubectl describe Stack ~~~ Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal StackUpdateDetected 14m stack-controller New commit detected: "cedd9734b15c22b9314cca9c9b114d26575d51a4". Normal StackCreated 14m stack-controller Successfully updated stack. Normal StackUpdateDetected 39s stack-controller New commit detected: "47bd262177fe525bb5c34750121ca57bf6750c62".
ハンズオンは以上です。
クリーンアップ
ハンズオンで作成したリソースのクローンアップ作業を実施します。
・EKS Cluster (+関連リソース) 削除
- 「eksctl」コマンドで作成したEKS Clusterやその他リソース(VPC/Subnetなど)を削除します。
[cloudshell-user@ip-10-6-43-90 ~]$ eksctl delete cluster --name operator-test-cluster 2023-09-01 16:26:02 [ℹ] deleting EKS cluster "operator-test-cluster"
おわりに
今回は、Pulumi Kubernetes Operatorを利用してProgramも自動デプロイを実現しました。
GitLab CIやGitHub ActionsなどでもCI/CDワークフローをサポートしていますが、KubernetesにデプロイされるPulumi Kubernetes Operatorであれば、他のKubernetesワークロードと合わせて一元的に管理できる点にメリットがありそうです。すでにKubernetesを運用されている方は、この機会にPulumi Kubernetes Operatorの導入を検討されてみてはいかがでしょうか。次回もお楽しみに!
- この記事のキーワード