TAP 1.2をProfileでインストールした場合は、Tanzu Build Serviceのlite dependenciesがインストールされます。 今回はTanzu Application Platform 1.2 (Full Profile) をAKSにインストールしAzure ADと連携するメモ - Self Signed編で作成した環境にfull dependenciesをインストールします。
full dependenciesの場合は、offline対応しており、JavaのようなRuntimeが全てイメージに組み込まれています。そのため、ビルドの度にダウンロードが発生しなくなります。 TAP 1.2の時点で、次のbuildpackはfull dependenciesにしか含まれません。
liteとfullの詳しい違いは以下を参照してください。
目次
- lite dependenciesの削除
- full dependencies用のpackage repositoryの登録
- full dependenciesのインストール
- full clusterbuilderでWorkloadを作成
基本的には以下のドキュメントの通りです。
lite dependenciesの削除
lite dependenciesではClusterStack,ClusterStore,ClusterBuilderは次のようになります。
$ kubectl get clusterstack,clusterstore,clusterbuilder
NAME READY
clusterstack.kpack.io/base True
clusterstack.kpack.io/default True
NAME READY
clusterstore.kpack.io/default True
NAME LATESTIMAGE READY
clusterbuilder.kpack.io/base tap28868.azurecr.io/build-service:clusterbuilder-base@sha256:5c4c3eef1a24a456264873b9bd4e85d8f4b7faf4fec114f0d3de4b686d6a4fa6 True
clusterbuilder.kpack.io/default tap28868.azurecr.io/build-service:clusterbuilder-default@sha256:5c4c3eef1a24a456264873b9bd4e85d8f4b7faf4fec114f0d3de4b686d6a4fa6 True
lite dependenciesを除外するためのtap-values.yml
に以下の設定を追加します。
buildservice:
# ...
exclude_dependencies: true
変更を反映します。
tanzu package installed update -n tap-install tap -f tap-values.yml
full dependencies用のpackage repositoryの登録
TAP 1.2からはfull dependenciesはTBS用の専用package repositoryから配布されるようになりました。package repositoryを追加します。
tanzu package repository add tbs-full-deps-repository \
--url registry.tanzu.vmware.com/build-service/full-tbs-deps-package-repo:1.6.1 \
--namespace tap-install
次のpackageが利用可能になります。
$ tanzu package available get -n tap-install full-tbs-deps.tanzu.vmware.com/1.6.1
NAME: full-tbs-deps.tanzu.vmware.com
VERSION: 1.6.1
RELEASED-AT: 0001-01-01 00:00:00 +0000 UTC
DISPLAY-NAME: Full Tanzu Build Service Dependencies
SHORT-DESCRIPTION: Full Tanzu Build Service Dependencies provide all buildpacks and stacks with support for airgapped environments.
PACKAGE-PROVIDER: VMware
MINIMUM-CAPACITY-REQUIREMENTS: Cluster with nodes > 50GB ephemeral storage, Registry > 5GB available space
LONG-DESCRIPTION: Full Tanzu Build Service Dependencies Build Service provide contains all Tanzu Buildpacks and dependencies, which provides support for more workload types. The dependencies are pre-packaged so builds don't have to download them from the Internet. This can speed up build times and allows builds to occur in airgapped environments.
MAINTAINERS: [{Matt McNew} {Matt Gibson} {Tom Kennedy} {Viraj Patel} {Tyler Phelan} {Nicholas Carlson}]
RELEASE-NOTES: https://docs.vmware.com/en/VMware-Tanzu-Build-Service/index.html
LICENSE: []
SUPPORT: https://tanzu.vmware.com/support
CATEGORY: []
full dependenciesのインストール
追加されたpackageをインストールします。
tanzu package install full-tbs-deps -p full-tbs-deps.tanzu.vmware.com -v 1.6.1 -n tap-install
完了するのに10分近くかかります。
full dependenciesではClusterStack,ClusterStore,ClusterBuilderは次のようになります。
$ kubectl get clusterstack,clusterstore,clusterbuilder
NAME READY
clusterstack.kpack.io/base True
clusterstack.kpack.io/default True
clusterstack.kpack.io/full True
clusterstack.kpack.io/tiny True
NAME READY
clusterstore.kpack.io/default True
NAME LATESTIMAGE READY
clusterbuilder.kpack.io/base tap28868.azurecr.io/build-service:clusterbuilder-base@sha256:de4384876beb357367d986041bbfd006f0d4bf705a5ab4316e5ca67976230e76 True
clusterbuilder.kpack.io/default tap28868.azurecr.io/build-service:clusterbuilder-default@sha256:de4384876beb357367d986041bbfd006f0d4bf705a5ab4316e5ca67976230e76 True
clusterbuilder.kpack.io/full tap28868.azurecr.io/build-service:clusterbuilder-full@sha256:7e5538e6abb3919cf0363fadff9136e8724ff69ed699706d97428b4c755cc715 True
clusterbuilder.kpack.io/tiny tap28868.azurecr.io/build-service:clusterbuilder-tiny@sha256:5b103c7d3ba7186ef8dca6865f61ca0c1adad9f2adaf5d3e8de930d1dbbb371d True
⚠️ 一度でもlite dependenciesでビルドをしたことがある場合は、online buildpackが引き続き使われることがあるようです。その場合は、次のコマンドでリソースをいったん全部削除し、reconcileで再度作成されるのを待ってください。
kubectl delete clusterbuilder --all kubectl delete clusterstack --all kubectl delete clusterstore --all kubectl delete tanzunetdependencyupdaters -n build-service --all kubectl delete deploy dependency-updater-controller -n build-service
full clusterbuilderでWorkloadを作成
full dependenciesの場合は、デフォルトのdefault clusterbuilderのままでもoffline対応buildpackが使われるので、buildは速くなります。Partner Buildpacksもdefault clusterbuilderで利用可能です。
一方、PHP BuildpackやWeb Servers Buildpackを使いたい場合はfull clusterbuilderを使用する必要があります。
Workloadでどのclusterbuilderを使用するかはtap-values.yml
で指定できます。デフォルトではdefault
(= base
)が設定されます。
ootb_supply_chain_basic:
cluster_builder: default # or base or full or tiny
この設定を変更してクラスタ全体で変更することもできますが、TAP 1.2からはWorklod個別にclusterbuilderを指定できるようになりました。
https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.2/tap/GUID-scc-tbs.html
tanzu apps workload apply spring-music \
--app spring-music \
--git-repo https://github.com/tanzu-japan/spring-music \
--git-branch tanzu \
--type web \
--label apps.tanzu.vmware.com/has-tests=true \
--annotation autoscaling.knative.dev/minScale=1 \
--param clusterBuilder=full \
-n demo \
-y
tanzu apps workload tail spring-music -n demo
# "or" stern -n demo spring-music