Skip to content

Latest commit

 

History

History
97 lines (70 loc) · 6.15 KB

chapter1.md

File metadata and controls

97 lines (70 loc) · 6.15 KB

Chapter 1 Introduction

CI/CD Conference by CloudNative Days の Co-located ハンズオンイベント、『Kubernetes で始める GitOps の基礎について』 にようこそ!

このハンズオンイベントでは、Go + Web Assemblyを用いたアプリケーションをKubernetes上で提供するシナリオで、GitHub ActionsArgo CDを用いてGitOpsによるCI/CD Pipelineを整備するハンズオンを実施していきます。 アプリケーションのテスト、コンテナイメージの最適化、よりセキュアなコンテナイメージの作成、Kubernetes への自動デプロイなどを実際に GitOps パイプラインを組みながら学んでいきます。

  • 取り扱う技術
    • Go + Web Assembly
      • ※ ハンズオンにあたり、Web Assembly、Go の知識は必要ありません
    • GitHub
    • Kubernetes
    • GitHub Actions (CI tool)
    • Argo CD (CD tool)

ハンズオン全体構成図

章の構成

章は全部で9つのパート(10章除く)から構成されています。 一つ一つ順を追って手を動かしていくことで、通常のアプリケーションをコンテナ化し、Kubernetes上で稼働させ、継続的に更新し続けるCI/CD Pipelineを実現する方法を学ぶことができます。 advanceは、応用編となります。9章までのハンズオンが早く終わった場合や後日スキルアップとしてチャレンジしてみてください。

Chapter Title 概要
0 Preparation GitHub・Kubernetes・CLI等の準備をします。(イベント当日までに行ってください)
1 Introduction 今回のハンズオンの概要と基礎知識について紹介します。(このページです)
2 Application Go + Web Assemblyで実装されたアプリケーションとアプリケーションに対するテストについて説明し、実際に実行して動作確認をします。
3 Docker/Kubernetes fundamentals 2章で実装したアプリケーションのコンテナ化し、Kubernetes上で実行します。
4 Optimize container image 3章で作成したコンテナイメージの最適化を行っていきます。
5 CI pipeline by GitHub Actions 3/4章で行っていた手作業をGitHub ActionsによるCI Pipelineで自動化します。
6 Application testing CIにテストを組み込み、アプリケーションの更新を継続的に行うことができる環境を整えます。
7 Secure container image コンテナイメージをセキュアに保つための仕組みをCIに導入します。
8 CD pipeline by ArgoCD 3章で行っていた手作業をArgo CDによるGitOpsで自動化します。
9 CI/CD pipeline CIからCDにつなげる部分を実装し、完成したCI/CD Pipelineのテストを行います。
10 Clean up 環境の削除手順です。※advanceを実施する場合は、その後に実行してください。
advance-1 Policy Check of manifests ConfigリポジトリへのプルリクエストをトリガーにConftestを利用したOpen Policy Agent(OPA)によるポリシーチェックの設定を行います。
advance-2 Conftest & Open Policy Agent (OPA) Open Policy Agent(OPA)で使われているRegoという言語を用いてポリシーを定義します。
advance-3 CD pipeline by Flux Fluxを利用したCD Pipelineを作成します。

リポジトリの作成

今回のハンズオンで利用するリポジトリを作成します。 下記のリポジトリをそれぞれご自身のアカウントにforkして、各々のリポジトリを作成してください。

forkはGitHubの画面上の右上から行うことが可能です。

リポジトリのfork

それぞれ下記のように皆さんのところにリポジトリが作成されていればOKです。

次に、ホームディレクトリ配下にcode用とconfig用のそれぞれのリポジトリをcloneして作業できるようにしてください。 Personal Access Tokenを利用して認証する方は「https://github.com/ 」から始まるURLを、SSH Keyを利用して認証する方は「[email protected]: 」から始まるURLを指定してください。

  • Personal Access Tokenを利用する場合
cd ~
git clone https://github.com/<GITHUB_USER>/cicd-handson-2021-code
git clone https://github.com/<GITHUB_USER>/cicd-handson-2021-config
  • SSH Keysを利用する場合
cd ~
git clone [email protected]:<GITHUB_USER>/cicd-handson-2021-code
git clone [email protected]:<GITHUB_USER>/cicd-handson-2021-config

以上でこのハンズオンで利用するファイル類の準備は完了です。

なお、このドキュメントのリポジトリはforkする必要はありません。

GitHub Actionsで利用するSecretの追加

次に、後ほどGitHub Actionsで利用するためのSecretを「cicd-handson-2021-code」リポジトリに3つ追加します。 このGitHub Actions Secretを追加しておくことで、ActionsのStep実行時に値を利用して処理を行うことができます。

項目
USERNAME GitHubアカウント名
EMAIL GitHub登録メールアドレス
PERSONAL_ACCESS_TOKEN GitHub PAT(0章で作成したtoken.txt)

Chapter 2 Application