## Enable Automatic Dependency Updates
TAP ships with the ability to configure TBS dependencies to be updated. These updates are provided through a separate package repository with available version lines for all supported TAP minor versions. Within a version line, only patch versions are incremented to avoid any possible breaking changes. Users can customize the packages that can be updated through tap-values or their full deps values.
1. Add the following to tap-values.yaml:
```yaml
buildservice:
dependency_updates:
allow: true
scope: <SCOPE>
include_packages: [""]
exclude_packages: [""]
```
Where:
- `SCOPE` is the list of dependencies you would like to be updated.
The options are:
- `stacks-only` (default value): only stacks and builders are updated
- `all`: stacks, builders, and buildpacks are updated
- `custom`: this list is empty by default, use the `include_packages` key to add packages to be updated
<p class="note"><strong>Note:</strong> The TAP package install and/or the Full Deps Package install will need to be updated after changing tap-values</p>
2. Create a secret for VMware Tanzu Network using the `tanzu` cli:
```commandline
tanzu secret registry add tanzunet-creds \
--server "registry.tanzu.vmware.com" \
--username "${TANZUNET_REGISTRY_USERNAME}" \
--password "${TANZUNET_REGISTRY_PASSWORD}" \
--namespace ${INSTALL_NAMESPACE}
```
3. Add the Tanzu Build Service Dependency Updates package repository by running:
```
kubectl apply -f - <<EOF
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageRepository
metadata:
name: tbs-dependencies-package-repository
namespace: tap-install
spec:
fetch:
imgpkgBundle:
image: registry.tanzu.vmware.com/build-service-dependency-updater/package-repo
tagSelection:
semver:
# this should be TAP major.minor.x
constraints: "1.8.x"
EOF
```
## Enable Automatic Dependency Updates - airgapped
TAP ships with the ability to configure TBS dependencies to be updated. These updates are provided through a separate package repository with available version lines for all supported TAP minor versions. Within a version line, only patch versions are incremented to avoid any possible breaking changes. Users can customize the packages that can be updated through tap-values or their full deps values.
1. Add the following to tap-values.yaml:
```yaml
buildservice:
dependency_updates:
allow: true
scope: <SCOPE>
include_packages: [""]
exclude_packages: [""]
```
Where:
- `SCOPE` is the list of dependencies you would like to be updated.
The options are:
- `stacks-only` (default value): only stacks and builders are updated
- `all`: stacks, builders, and buildpacks are updated
- `custom`: this list is empty by default, use the `include_packages` key to add packages to be updated
<p class="note"><strong>Note:</strong> The TAP package install and/or the Full Deps Package install will need to be updated after changing tap-values</p>
2. Login to registry.tanzu.vmware.com and the internal repo on a machine that has internal repo access (assumes the cluster has a secret for the internal repo)
3. relocate deps updater package repo with imgpkg to the internal repo
4. Add the Tanzu Build Service Dependency Updates package repository by running:
```
kubectl apply -f - <<EOF
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageRepository
metadata:
name: tbs-dependencies-package-repository
namespace: tap-install
spec:
fetch:
imgpkgBundle:
image: <internal repo ref>
tagSelection:
semver:
# this should be TAP major.minor.x
constraints: "1.8.x"
EOF
```
5. set up ci to watch registry.tanzu.vmware.com/build-service-dependency-updater/package-repo and relocate automatically. cluster will be watching internal repo <optional, but updates wont be automatic without it>