Giter Club home page Giter Club logo

jaguchi-manifests's Introduction

🚰 jaguchi-manifests

Set up a cluster for GitOps

kubectl create ns kapp
kubectl create -n kapp sa kapp
kubectl create clusterrolebinding kapp-cluster-admin --clusterrole cluster-admin --serviceaccount=kapp:kapp
kubectl create secret generic -n kapp github --from-file=ssh-privatekey=$HOME/.ssh/kapp-controller --dry-run=client -oyaml | kubectl apply -f-
kubectl create secret generic -n kapp pgp-key --from-file=$HOME/.gnupg/jaguchi.pk --dry-run=client -oyaml | kubectl apply -f-

Deploy everything

kubectl apply -f jaguchi/kapp/apps.yaml

(Tip) How the GPG key (jaguchi.pk) was created

https://carvel.dev/kapp-controller/docs/latest/sops/

mkdir -p $HOME/.gnupg
cat <<EOF > $HOME/.gnupg/conf
%no-protection
Key-Type: 1
Key-Length: 4096
Subkey-Type: 1
Subkey-Length: 4096
Expire-Date: 0
Name-Comment: kapp-controller-sops
Name-Real: Jaguchi
Name-Email: [email protected]
EOF
docker run --rm -v $HOME/.gnupg:/root/.gnupg --entrypoint gpg maven:3.8.2 --batch --full-generate-key /root/.gnupg/conf
docker run --rm -v $HOME/.gnupg:/root/.gnupg --entrypoint gpg maven:3.8.2 --list-secret-keys "Jaguchi"
docker run --rm -v $HOME/.gnupg:/root/.gnupg --entrypoint gpg maven:3.8.2 --armor --export-secret-keys 1997AA2DBF0982F972B61D91D127B098EF01F86D > $HOME/.gnupg/jaguchi.pk

jaguchi-manifests's People

Contributors

balnbibarbi avatar boltkrank avatar gigiyy avatar hirosat avatar imurata avatar justeh avatar kayleema avatar kenojiri avatar mahata avatar making avatar mmonroe-vmware avatar tsurutan avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jaguchi-manifests's Issues

NaomiはMySQLを使いたい (Tanzu SQL with MySQL for Kubernetes)

Why

As Naomi
I want to MySQLを使用したい
So that アプリデータを永続化するため

Acceptance Criteria

Scenario: 
Given Spring Musicがデプロイされて、データがWeb上で更新されている
When Spring MusicのPodを削除する
Then 更新されたデータが残っていること

Notes:
MySQLにはTanzu SQL with MySQL for Kubernetesを使用し、Service Bindingでアプリに接続する。

Naomiはsource-to-urlの前にunit testを実行したい

Why

As Naomi
I want to コンテナイメージビルドの前にテストを実行したい
So that テストが通っていないソースをデプロイしたくないから

Acceptance Criteria

Scenario: 
Given テストコードが失敗する
When コードをコミットしたら
Then テストが実行され、失敗してコンテナイメージが作成されない
Scenario: 
Given テストコードが成功する
When コードをコミットしたら
Then テストが実行され、その後コンテナイメージが作成され、デプロイされる

Notes:

  • source-to-urlのSupply Chainは残しつつ、source-test-to-url のSupply Chainを追加する

Alanaはk8sクラスタのメトリクスをダッシュボードで見たい

Why

As Alana
I want to k8sクラスタのメトリクスをダッシュボードで見たい
So that 使用状況や異常を監視するため

Acceptance Criteria

Scenario: 
Given Grafanaのadminパスワードを取得している
When Grafanaにログイン
Then クラスタのメトリクス(CPU使用率、メモリ使用率など)がグラフで表示されている

Notes:

  • Carvel Packageかkube-prometheusのどちらかが候補

Naomiはアプリをインターネットに公開したい

Why

As Naomi
I want to アプリをインターネットに公開したい
So that インターネット上のユーザーにアプリを使ってもらう

Acceptance Criteria

Scenario: 
Given Spring Musicがデプロイされている
When VPN外のNetworkからインターネット公開用のURLにアクセスする
Then トップページが表示される

Notes:

アプリのデフォルトドメイン *.apps.jaguchi.maki.lol はVPN内からしかアクセスできない。
https://github.com/making/tsunagu を使用して、jaguchiクラスタをインターネットから *.run.jaguchi.maki.lol アクセスできるようにする。
個々のアプリへは DomainMapping CRで*.run.jaguchi.maki.lolドメインを追加することによってTsunagu経由でアクセスできるようにする

NaomiはMongoDBを使いたい (Bitnami Helm Chart)

Why

As Naomi
I want to MongoDBを使用したい
So that アプリデータを永続化するため

Acceptance Criteria

Scenario: 
Given Spring Musicがデプロイされて、データがWeb上で更新されている
When Spring MusicのPodを削除する
Then 更新されたデータが残っていること

Notes:
MongoDBのデプロイにはBitnami Helm Chartを使用し、Direct Secret ReferenceでService Bindingでアプリに接続する。
Secretはsecretgen controllerのSecret Templateで生成する。

NaomiはPosgreSQLを使いたい (Tanzu SQL with Postgres for Kubernetes)

Why

As Naomi
I want to When PostgreSQLを使用したい
So that アプリデータを永続化するため

Acceptance Criteria

Scenario: 
Given Spring Musicがデプロイされて、データがWeb上で更新されている
When Spring MusicのPodを削除する
Then 更新されたデータが残っていること

Notes:
PostgreSQLにはTanzu SQL with Postgres for Kubernetesを使用し、Service Bindingでアプリに接続する。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.