---
title: Tanzu Application Platform 1.2でTanzu Build Serviceのfull dependenciesをインストールする
tags: ["Kubernetes", "Cartographer", "Tanzu", "TAP", "Tanzu Build Service"]
categories: ["Dev", "CaaS", "Kubernetes", "TAP"]
date: 2022-08-15T09:24:16Z
updated: 2022-09-13T04:56:52Z
---

TAP 1.2をProfileでインストールした場合は、Tanzu Build Serviceの**lite** dependenciesがインストールされます。
今回は[Tanzu Application Platform 1.2 (Full Profile) をAKSにインストールしAzure ADと連携するメモ - Self Signed編](/entries/708)で作成した環境に**full** dependenciesをインストールします。

full dependenciesの場合は、offline対応しており、JavaのようなRuntimeが全てイメージに組み込まれています。そのため、ビルドの度にダウンロードが発生しなくなります。
TAP 1.2の時点で、次のbuildpackはfull dependenciesにしか含まれません。

* [PHP Buildpack](https://docs.vmware.com/en/VMware-Tanzu-Buildpacks/services/tanzu-buildpacks/GUID-php-php-buildpack.html)
* [Web Servers Buildpack](https://docs.vmware.com/en/VMware-Tanzu-Buildpacks/services/tanzu-buildpacks/GUID-web-servers-web-servers-buildpack.html)
* [Tanzu Partner Buildpacks](https://docs.vmware.com/en/VMware-Tanzu-Buildpacks/services/tanzu-buildpacks/GUID-partner-integrations-partner-integration-buildpacks.html)

liteとfullの詳しい違いは以下を参照してください。

https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.2/tap/GUID-tanzu-build-service-dependencies.html#lite-vs-full

**目次**
<!-- toc -->

基本的には以下のドキュメントの通りです。

https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.2/tap/GUID-tanzu-build-service-install-tbs.html#install-full-dependencies-5

### 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`に以下の設定を追加します。

```yaml
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`)が設定されます。

```yaml
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
```
