TAP のサンプルアプリの起動(やりかけ)の実施内容やら、メモやらを記載していってみます。
完成はしてないけど、触ってみてるよ 記事ですので、内容はご注意ください。
(追記: まだ記事内容自体は未完了で、TAPの設定ファイルの書き方などの癖がわかってないけど、
これだけの手順でアプリケーションデプロイできるの?! もしかして楽になるのでは? とワクワク感があるのでした。)
そもそも Tanzu Application Platform (TAP)とは
ソースコードからいい感じにコンテナとかビルドして、
いい感じにデプロイまで行ってくれる仕組みらしい。
私は、このあたりの情報を参考にしました。まだ、なんとなくふわっとした理解しかできていない。
- https://blogs.vmware.com/vmware-japan/2022/02/tap-introduction.html
- https://paas.connpass.com/event/238740/
そんな状況で、とりあえず触ってみるという記事。
前段 / TAP 環境の構築
TAPの構築はAWS上に以下のCloudformationを用いて起動した。
AWSにログインしておき、 How to deploy
タブの、 Deploy into a new VPC.
をクリックすると
Cloudformation のウィザードに従って、デプロイすることで環境ができあがったところからが開始地点です。
ウィザードの従って設定していくと、Cloudformationのデプロイを開始します。
開始後45分ぐらいは起動待ちだった。
AWS 料金
1日放置しておくと 3-5千円 になるので、あとでCloudwatchログを減らしたり
EKSのノード数を減らしたりして、ワークロードを減らすとAWS料金は削減ができる。
でも、限界があり、頑張っても毎日2-3千円ぐらいはかかってしまうので、個人で試すときは、要注意。
Getting Started 試してみた
この記事を試してみる。
上記のインストール方法で、TAPを構築すると、 Installed Tanzu Application Platform GUI
のところまで
実行されているように見える。(詳細は不明、全く同じとはどこにも記載はない)
なので、いきなり、tap-gui のページまでアクセスすることができるようになっています
とりあえず、GUIがあるとやる気が出始める。
サンプルアプリのデプロイ
ここからが目的の、サンプルアプリケーションのデプロイの流れについて。
tap-values.yaml
サンプルアプリのデプロイに必要なパラメーターは、tapのセットアップに使用したマシンの
~/tap-setup-scripts/generated$ cat tap-values.yaml
に格納されている。(AWSのCloudformationでのセットアップは色々自動でやってくれるので、上記のファイルを見つけるのに、時間を食った。この時点ではじめて tap-values.yaml というものを知る。)
プロジェクトのダウンロード
Application Accerarators
から Tanzu Java Web App
を選択して、生成される
WEBアプリケーションのプロジェクトをダウンロードする。
ウィザードに従って・・・
値は以下のように設定。
- name は適当に
my-first-tanzu-java-web-app
にした。 - image repository は、
tap-values.yaml
の内容と合わせる。
GENERATE ACCELERATOR
をクリックして、ZIPファイルを生成、
あとは、ZIPファイルをダウンロードする。
同じ名前で、GitHub にリポジトリを作成
ソースを格納する先にGithubを使うことにした。
認証などもめんどくさいので、とりあえずパブリックのリポジトリを作成する。
デプロイ
Gitリポジトリを準備したので、ここからソースを取得して、いい感じにビルド、デプロイしてくれることを期待して、
TAP上にデプロイしてみる。
サプライチェーン(Supply Chain)・ワークロード(Workload)
どんな流れで、アプリをビルド・デプロイ・(テストなど)・・・してくれる流れのことを、サプライチェーンと読んでいるらしい。
サプライチェーンは、クラスタ内に色々なパターンが登録できるようで、いくつかデプロイされている。
以下のように、パッケージとして、何が入っているか見ることができるみたい。
XXXXX@ip-XXXXX:~$ tanzu package available list -A
(例)
ootb-supply-chain-basic.tanzu.vmware.com Tanzu App Platform Out of The Box Supply Chain Basic Out of The Box Supply Chain Basic. 0.10.2 tap-install
とりあえず、サンプルのWEBアプリが動いているので、すでに何かサプライチェーンはクラスタ内にデプロイされていると踏んで、
それを使う想定で、以下コマンドを実行してみる。
えいやー。(ファイルパスはどこでも良い。)
tanzu apps workload create my-first-tanzu-java-web-app \
--git-repo https://github.com/make0x0/my-first-tanzu-java-web-app \
--git-branch main \
--type web \
--label app.kubernetes.io/part-of=tanzu-java-web-app \
--yes \
--namespace tap-workload
無邪気にデプロイしてみるもののSupplyChainNotFound
デプロイ済みのサプライチェーンを見てみる
デプロイ済みのサプライチェーンは以下のように見ることができた。
ラベルでマッチングしているみたい。そのラベルにマッチしないので、not found と言われているのではないか?
ということで、Workloadのデプロ時のラベル指定を合わせてみる。
再度 Workload をデプロイ
一旦、デプロイ済みのWorkload を削除
tanzu apps workload delete my-first-tanzu-java-web-app --namespace tap-workload
その後、修正したコマンドで再デプロイ。(ラベル、タイプ を source-test-scan-to-url のサプライチェーン に合わせてみる。
tanzu apps workload create my-first-tanzu-java-web-app \
--git-repo https://github.com/make0x0/my-first-tanzu-java-web-app \
--git-branch main \
--label apps.tanzu.vmware.com/has-tests=true \
--label app.kubernetes.io/part-of=tanzu-java-web-app \
--type web \
--yes \
--namespace tap-workload
今日はここまで
- サンプルアプリをデプロイしてみる
- デプロイするときサプライチェーンというリソースがクラスタに必要
- サプライチェーンは、Workloadのラベルでマッチングしているので合わせる必要がある
ここまでの注意点っぽい。
だが、まだアプリが稼働していないが、時間切れのためこの記事ではここまで。
まだ終わらない
image-privider
なる箇所で、問題がある模様。
トラブルシュート方法などもわかってないので、続きはまた別の機会に!
さいごに
最近おしごとで k8s 触れておらずもやもや。かといって、自分で手を動かしてもなかったので、
アドベントカレンダーの登録をきっかけに、ちょっと触り始めたのでいいきっかけになりました!
途中記事になっているので、色々ご指摘
受けそうですが、まあ一旦Upします。