SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GitOpsで実現する継続的デリバリー

「PipeCD」で始める継続的デリバリー~GitOpsとプログレッシブデリバリーの実践

GitOpsで実現する継続的デリバリー 第3回

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ボタンを押してdevprodという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 IdPiped Keyが表示されます。これらはあとで使うのでメモをしてください。クローンしたmanifestsリポジトリの./quickstart/piped-values.yamlを開いて次のように変更してください。

./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 Atnot startedからa few seconds agoというように起動した時間に変わります。

 以上でPipedエージェントのインストールは終わりです。

Applicationの作成

 以下のコマンドで事前にdevとprodネームスペースを作成しておきます。

$ kubectl create ns dev
$ kubectl create ns prod

 PipeCDのWeb UIのメニューから、Application画面を開いてください。+ADDボタンを押してdevprodという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!と表示されます。

次のページ
PipeCDを使ったGitOpsによる継続的デリバリー

この記事は参考になりましたか?

GitOpsで実現する継続的デリバリー連載記事一覧

もっと読む

この記事の著者

安井 岳(株式会社サイバーエージェント)(ヤスイ ガク)

 サイバーエージェントに中途入社し、社内基盤である継続的インテグレーションシステムの開発と運用に従事。現在は社内基盤のフィーチャーフラグ・ABテストシステムの開発と組織のデリバリーパフォーマンスの向上を支援する活動がメイン。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/14811 2021/10/18 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー