0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Tanzu Application PlatformのProfileを使ってTanzu Build Serviceをインストールする

Last updated at Posted at 2023-07-27

Tanzu Build Service(TBS) 1.10ではTanzu Application Platform(TAP)のインストール用Profileを使ってインストールするのが推奨となっている。
これを試した時のメモ。
基本的には公式手順をなぞっただけなので大したものではないが、設定ファイルの書式とかは公式には記載例がない箇所もあるので、参考になれば幸いです。

前提

  • イメージレジストリとしてHarborは構築済み、かつ証明書も作業端末に導入済み
  • Harborの空きは20Gくらいはあること(tapのイメージコピー等でPrerequisitesより多く必要)
  • クラスタのノードにもHarborの証明書を設定済み(参考:こちら
  • kapp-controllerにもHarborの証明書を設定済み
  • Carvelツールはインストール済み
  • tanzuコマンドはインストール済み
  • kpack-cliはインストール済み

TBSのインストール準備

最初に配布されているTAPのイメージを自前のイメージレジストリにpushし直す。
利用可能なTAPのバージョンを取得する(省略可)。

imgpkg tag list -i registry.tanzu.vmware.com/tanzu-application-platform/tap-packages | grep -v sha | sort -V

環境変数の定義ファイルを作成する。

cat << EOF > ./env.sh
# イメージをPushするImage Registryのユーザ名
export INSTALL_REGISTRY_USERNAME=admin
# イメージをPushするImage Registryのパスワード
export INSTALL_REGISTRY_PASSWORD='xxxxxx'
# イメージをPushするImage Registryのホスト名
export INSTALL_REGISTRY_HOSTNAME=harbor.10.41.79.209.sslip.io
# イメージをPushするImage Registry内のリポジトリ名
export INSTALL_REPO=library
# TAPのバージョン
export TAP_VERSION=1.5.3
EOF

作った環境変数のファイルを使ってPush先レジストリとTAPのイメージの配布元であるregistry.tanzu.vmware.comにログインする。

. env.sh
echo $INSTALL_REGISTRY_PASSWORD | docker login -u $INSTALL_REGISTRY_USERNAME --password-stdin $INSTALL_REGISTRY_HOSTNAME
docker login registry.tanzu.vmware.com

自前のイメージレジストリにTAP Packageをコピーする。イメージレジストリに自己証明書を利用しているため、--registry-ca-cert-pathで証明書のパスを指定する。

imgpkg copy -b registry.tanzu.vmware.com/tanzu-application-platform/tap-packages:${TAP_VERSION} --to-repo ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}/tap-packages --registry-ca-cert-path /tmp/harbor.crt

転送が始まると以下のような画面になる。TAPのイメージは8.59Gと結構大きいので時間がかかる点に注意。

copy | will export registry.tanzu.vmware.com/tanzu-application-platform/tap-packages@sha256:fe8d3bde3d58c066c2ad2132357457cf2f0c62984a9ba162d11fc391e4089652
copy | exported 252 images
copy | importing 252 images...

2.52 GiB / 8.59 GiB [---------------------------------------------->________________________________________________________________________________________________________________] 29.38% 32.79 MiB p/s

イメージの転送が終わったら、tanzu packageコマンドでインストールを行うために、TAPのkind: PackageRepositoryを作成する。

kubectl create ns tap-install
tanzu secret registry add tap-registry \
  --username ${INSTALL_REGISTRY_USERNAME} \
  --password ${INSTALL_REGISTRY_PASSWORD} \
  --server ${INSTALL_REGISTRY_HOSTNAME} \
  --export-to-all-namespaces --yes --namespace tap-install
tanzu package repository add tanzu-tap-repository \
  --url ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}/tap-packages:$TAP_VERSION \
  --namespace tap-install

なお、ここでエラーが出る場合はimgpkg pullに失敗しているか、kapp-controllerにHarborの証明書が入れられていない可能性が高いので、その辺りを見直すと良さそう。
問題なければtanzu package repository listを実行すると以下のように表示される。

$ tanzu package repository list

  NAME                  SOURCE                                                            STATUS
  tanzu-tap-repository  (imgpkg) harbor.10.41.79.209.sslip.io/library/tap-packages:1.5.3  Reconcile succeeded

TBSのインストール

次にTBSで利用するリポジトリの認証情報をSecretとして作成する。
先程と同じリポジトリを使い回すので、環境変数は変えずにそのまま作成する。

tanzu secret registry add kp-default-repository \
  --username ${INSTALL_REGISTRY_USERNAME} \
  --password ${INSTALL_REGISTRY_PASSWORD} \
  --server ${INSTALL_REGISTRY_HOSTNAME} \
  --yes --namespace tap-install

次に新しいベースイメージがリリースされた時などに自動更新するためにVMware Tanzu Networkの認証情報をSecretとして作成する。

export TANZUNET_USERNAME=xxxx
export TANZUNET_PASSWORD=xxxx
tanzu secret registry add tanzunet-registry \
  --username ${TANZUNET_USERNAME} \
  --password ${TANZUNET_PASSWORD} \
  --server "registry.tanzu.vmware.com" \
  --yes --namespace tap-install

次にTBSの設定ファイルを作成する。

cat << EOF > ./tap-values.yaml
ceip_policy_disclosed: true
profile: buildservice
buildservice:
  kp_default_repository: ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}/tbs
  kp_default_repository_secret:
    name: kp-default-repository
    namespace: tap-install
  tanzunet_secret:
    name: tanzunet-registry
    namespace: tap-install
  enable_automatic_dependency_updates: true
  ca_cert_data: |
    -----BEGIN CERTIFICATE-----
    MIIDKDCCAhCgAwIBAgIQNE0hB9cxQZF4jRq2Ai95OzANBgkqhkiG9w0BAQsFADAU
     :(省略)
    -----END CERTIFICATE-----
  descriptor_name: lite
EOF

設定した値の意味は以下。

  • ceip_policy_disclosed: カスタマーエクスペリエンス向上のためのデータ提供の有無。falseにすると失敗する。。。
  • profile: TAPのprofile。TBSのみ入れるのでbuildserviceを指定。
  • kp_default_repository: TBSが使うイメージを格納するリポジトリ
  • kp_default_repository_secret: 先程作ったTBS用のSecretを指定
  • tanzunet_secret: 先程作ったVMware Tanzu Network用のSecretを指定
  • enable_automatic_dependency_updates: ベースイメージなどの自動アップデートの有効/無効
  • ca_cert_data: TBSで使うイメージレジストリの証明書
  • descriptor_name: 関連イメージを全てインストールするか(full)、都度インストールするか(lite)

設定後、以下のコマンドでインストールする。

tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION --values-file tap-values.yaml -n tap-install

TAP packageのインストールとなっているが、TBSがTAPの1コンポーネントであるため、このようなインストールコマンドとなっている。
インストールが成功すると以下のようにtap, build-service, tap-telemetryがkind: Appとしてデプロイされる。

$ kubectl get app -n tap-install
NAME            DESCRIPTION           SINCE-DEPLOY   AGE
buildservice    Reconcile succeeded   41s            44m
tap             Reconcile succeeded   1s             44m
tap-telemetry   Reconcile succeeded   4m44s          44m

動作確認

動作確認として、Javaのコードからイメージを作成してみる。
対象はGitHubでPublicに公開されているhello-tanzuを使う。
先程使った環境変数を使いまわして認証情報を登録する。

export REGISTRY_PASSWORD=${INSTALL_REGISTRY_PASSWORD}
kp secret create my-registry-cred --registry ${INSTALL_REGISTRY_HOSTNAME} --registry-user ${INSTALL_REGISTRY_USERNAME}

イメージを作成する。

kp image save --git https://github.com/imurata/hello-tanzu --tag ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}/hello-tanzu hello-tanzu --wait

問題なく作成できたので、作成したイメージを使って起動してみる。

kubectl run --image ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}/hello-tanzu hello-tanzu

問題なく起動できた。

$ kubectl get pod
NAME                            READY   STATUS      RESTARTS   AGE
hello-tanzu                     1/1     Running     0          19m
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?