## Install Tanzu Build Service
This topic is meant to serve as a quick-start guide for TAP installs of Tanzu Build Service using the tanzu cli and may not include some configurations required for your specific environment. For more advanced details on installation, see [Installing Tanzu Build Service](https://docs.pivotal.io/build-service/installing.html).
### Prerequisites
* Ensure you have access to a docker registry that Tanzu Build Service can use to create Builder images. Approximately 5gb of registry space is required.
### Assumptions
For this example setup, we will make the following assumptions:
* You have successfully added the TAP package repository to your Cluster
* Your registry is accesible with username and password credentials.
* You have accepted the necessary TanzuNet EULAs specified in the TAP pre-requisites
### Installing Using the Tanzu CLI
1. Follow instructions in Install Packages above
2. Gather values schema
```bash
tanzu package available get buildservice.tanzu.vmware.com/1.3.0 --values-schema --namespace tap-install
```
For example:
```bash
$ tanzu package available get buildservice.tanzu.vmware.com/1.3.0 --values-schema --namespace tap-install
| Retrieving package details for buildservice.tanzu.vmware.com/1.3.0...
KEY DEFAULT TYPE DESCRIPTION
kp_default_repository <nil> string docker repository
kp_default_repository_password <nil> string registry password
kp_default_repository_username <nil> string registry username
tanzunet_username <nil> string tanzunet registry username required for dependency updater feature
no_proxy <nil> string A comma-separated list of hostnames, IP addresses, or IP ranges in CIDR format that should not use a proxy
tanzunet_password <nil> string tanzunet registry password required for dependency updater feature
admin_groups <nil> string comma separated list of groups that will be granted admin privileges on Build Service
admin_users <nil> string comma separated list of users who will be granted admin privileges on Build Service
ca_cert_data <nil> string tbs registry ca certificate
http_proxy <nil> string the HTTP proxy to use for network traffic
https_proxy <nil> string the HTTPS proxy to use for network traffic.
```
3. Create a `tbs-values.yaml` using the following sample as a guide
Sample `tbs-values.yaml` for Tanzu Build Service:
```yaml
---
kp_default_repository: <some-registry.com/some-path-to-install>
kp_default_repository_password: <registry-username>
kp_default_repository_username: <registry-username>
tanzunet_username: <tanzunet_username@email.com>
tanzunet_password: <tanzunet_password>
```
The `kp_default_repository` is the registry location that all TBS dependencies and builder images will be written. The install requires a `kp_default_repository_username` and `kp_default_repository_password` in order to write to the repository location.
The TanzuNet credentials allow for configuration of the Dependencies Updater. This resource will access and install the build dependencies (buildpacks and stacks) TBS needs on your Cluster. It will also keep these dependencies up to date as new versions are released on TanzuNet.
The optional values not included in this sample provide additional configuration for production use cases.
Check [Installing Tanzu Build Service](https://docs.pivotal.io/build-service/installing.html) for more information.
4. Install the package by running
Installing the `buildservice.tanzu.vmware.com` package with tanzunet credentials will automatically relocate buildpack dependencies to your cluster. This install process may take some time.
```bash
tanzu package install tbs -p buildservice.tanzu.vmware.com -v 1.3.0 -n tap-install -f tbs-values.yaml --poll-interval 15s
```
For example:
```bash
$ tanzu package install tbs -p buildservice.tanzu.vmware.com -v 1.3.0 -n tap-install -f tbs-values.yaml
| Installing package 'buildservice.tanzu.vmware.com'
| Getting namespace 'tap-install'
| Getting package metadata for 'buildservice.tanzu.vmware.com'
| Creating service account 'tbs-tap-install-sa'
| Creating cluster admin role 'tbs-tap-install-cluster-role'
| Creating cluster role binding 'tbs-tap-install-cluster-rolebinding'
| Creating secret 'tbs-tap-install-values'
- Creating package resource
- Package install status: Reconciling
Added installed package 'tbs' in namespace 'tap-install'
```
5. Verify the package install by running
```bash
$ tanzu package installed get tbs -n tap-install
- Retrieving installation details for tbs...
NAME: tbs
PACKAGE-NAME: buildservice.tanzu.vmware.com
PACKAGE-VERSION: 1.3.0
STATUS: Reconcile succeeded
CONDITIONS: [{ReconcileSucceeded True }]
USEFUL-ERROR-MESSAGE:
```
You should also be able to see the clusterbuilders created by the TBS install
```bash
$kubectl get clusterbuilders
NAME LATESTIMAGE READY
base my-registry.com/tbs@sha256:8732fadb92d8afa40bcef2d885e9730b372484a39b4a7f718291f574645f4bf2 True
default my-registry.com/tbs@sha256:8732fadb92d8afa40bcef2d885e9730b372484a39b4a7f718291f574645f4bf2 True
full my-registry.com/tbs@sha256:f7cdac8b2d97790276821ee3f54c497fba4ec71752eec9a87d22905344471ed8 True
tiny my-registry.com/tbs@sha256:b9c5348da4c1527c356d2d8b9d48462ea9bf97a98eb379e925bec69c6dd918a5 True
```