PipeCDを使ったGitOpsによる継続的デリバリー
Pipedエージェントのインストール
Hello App Configリポジトリを監視するPipedエージェントをpipedネームスペースにインストールします。Pipedエージェントがコントロールプレーンと通信するために必要な設定はWeb UIから行います。
Environmentの作成
PipeCDのWeb UI(http://localhost:8080/)にアクセスしてください。もしアクセスできない場合はkubectl -n pipecd port-forward svc/pipecd 8080が実行されているかを確認してください。メニューから、Settings画面のEnvironmentタブを開いてください。
この画面ではdev環境やprod環境など用途別に設定の違う環境を作成することができます。+ADDボタンを押してdevとprodという2つの環境を作成します。
| Name | Description |
|---|---|
| dev | 最新のmainブランチがデプロイされている環境 |
| prod | 最新のリリースがデプロイされている環境 |
Pipedシークレットの発行
Pipedエージェントがコントロールプレーンと通信する時に必要なPipedシークレットを発行します。PipeCD Web UIのメニューより、Settings画面のPipedタブを開いてください。+ADDボタンを押して次の設定でPipedシークレットを発行します。
| Name | Description | Environments |
|---|---|---|
| hello app piped | Hello App用 Piped | dev, prod |
SAVEボタンを押すと、Piped IdとPiped Keyが表示されます。これらはあとで使うのでメモをしてください。クローンしたmanifestsリポジトリの./quickstart/piped-values.yamlを開いて次のように変更してください。
args:
insecure: true
config:
data: |
apiVersion: pipecd.dev/v1beta1
kind: Piped
spec:
projectID: quickstart
pipedID: YOUR_PIPED_ID # 先程発行したPiped Idに変更
pipedKeyFile: /etc/piped-secret/piped-key
git: # 追加
sshKeyFile: /etc/piped-secret/ssh-key # 追加
apiAddress: pipecd.pipecd.svc.cluster.local:8080 # 変更
webAddress: http://localhost:8080 # 変更
syncInterval: 1m
repositories:
# 以下変更
- repoId: hello-app-config
remote: git@github.com:<あなたのGitHubアカウント名>/hello-app-config.git
branch: main
変更したら次のコマンドでPipedエージェントをインストールします。
$ helm -n piped install piped ./manifests/piped --create-namespace \ --values ./quickstart/piped-values.yaml \ --set secret.pipedKey.data=<先程発行したPiped Key> \ --set-file secret.sshKey.data=<作成したSSH秘密鍵ファイルへのパス>
Settings画面のPipedタブを開いてください。クラスターでPipedエージェントが正常に起動するとStarted Atがnot startedからa few seconds agoというように起動した時間に変わります。
以上でPipedエージェントのインストールは終わりです。
Applicationの作成
以下のコマンドで事前にdevとprodネームスペースを作成しておきます。
$ kubectl create ns dev $ kubectl create ns prod
PipeCDのWeb UIのメニューから、Application画面を開いてください。+ADDボタンを押してdevとprodという2つのApplicationを作成します。
| Name | Kind | Environment | Piped | Repository | Path | Config Filename | Cloud Provider |
|---|---|---|---|---|---|---|---|
| dev | KUBERNETES | dev | hello app piped | hello-app-config | dev | 空欄 | kubernetes-default |
| prod | KUBERNETES | prod | hello app piped | hello-app-config | prod | 空欄 | kubernetes-default |
SAVEボタンを押したあとに出てくる画面ではSKIPボタンを押します。しばらくするとデプロイが始まります。Hello App Configリポジトリの設定によりdev環境はdevネームスペースにprod環境はprodネームスペースにデプロイされます。devネームスペースにデプロイされたHello Appを確認してみましょう。devではhttp://localhost:30000/で、prodではhttp://localhost:31000/でアプリケーションにアクセスできるように設定されています。ブラウザでhttp://localhost:30000/helloにアクセスするとHello, world!と表示されます。
