forked from pivotal/docs-tap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.md.hbs
495 lines (371 loc) · 26.3 KB
/
install.md.hbs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
# Installing the Tanzu Application Platform package and profiles
This topic describes how to install Tanzu Application Platform packages
from the Tanzu Application Platform package repository.
Before installing the packages, ensure that you have completed the prerequisites, configured
and verified the cluster, accepted the EULA, and installed the Tanzu CLI with any required plug-ins.
See [Accepting Tanzu Application Platform EULAs, installing Cluster Essentials and the Tanzu CLI](install-tanzu-cli.md) for more information.
## <a id='add-tap-package-repo'></a> Relocate images to a registry
VMware recommends relocating the images to your registry from VMware Tanzu Network registry before
attempting installation.
If you choose not to relocate images, Tanzu Application Platform depends directly on
VMware Tanzu Network for continued operation.
VMware recommends relocating images because there are no uptime guarantees for installations that
depend directly on VMware Tanzu Network.
The option to skip relocation is documented for evaluation and proof-of-concept only.
The supported container registries are Harbor, Azure Container Registry, Google Container Registry,
and Quay.io.
See the documentation for a registry to learn how to set it up.
To relocate images from the VMware Tanzu Network registry to your registry:
1. Log in to your image registry by running:
```console
docker login MY-REGISTRY
```
Where `MY-REGISTRY` is your own container registry.
1. Log in to the VMware Tanzu Network registry with your VMware Tanzu Network credentials by running:
```console
docker login registry.tanzu.vmware.com
```
1. Set up environment variables for installation use by running:
```console
export INSTALL_REGISTRY_USERNAME=MY-REGISTRY-USER
export INSTALL_REGISTRY_PASSWORD=MY-REGISTRY-PASSWORD
export INSTALL_REGISTRY_HOSTNAME=MY-REGISTRY
export TAP_VERSION=VERSION-NUMBER
```
Where:
- `MY-REGISTRY-USER` is the user with write access to `MY-REGISTRY`.
- `MY-REGISTRY-PASSWORD` is the password for `MY-REGISTRY-USER`.
- `MY-REGISTRY` is your own container registry.
- `VERSION-NUMBER` is your Tanzu Application Platform version. For example, `{{ vars.tap_version }}`.
1. Relocate the images with the Carvel tool imgpkg by running:
```console
imgpkg copy -b registry.tanzu.vmware.com/tanzu-application-platform/tap-packages:${TAP_VERSION} --to-repo ${INSTALL_REGISTRY_HOSTNAME}/TARGET-REPOSITORY/tap-packages
```
Where `TARGET-REPOSITORY` is your target repository
1. Create a namespace called `tap-install` for deploying any component packages by running:
```console
kubectl create ns tap-install
```
This namespace keeps the objects grouped together logically.
1. Create a registry secret by running:
```console
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
```
1. Add the Tanzu Application Platform package repository to the cluster by running:
```console
tanzu package repository add tanzu-tap-repository \
--url ${INSTALL_REGISTRY_HOSTNAME}/TARGET-REPOSITORY/tap-packages:$TAP_VERSION \
--namespace tap-install
```
Where:
- `$TAP_VERSION` is the Tanzu Application Platform version environment variable you defined earlier.
- `TARGET-REPOSITORY` is the necessary repository.
1. Get the status of the Tanzu Application Platform package repository, and ensure the status updates to `Reconcile succeeded` by running:
```console
tanzu package repository get tanzu-tap-repository --namespace tap-install
```
For example:
```console
$ tanzu package repository get tanzu-tap-repository --namespace tap-install
- Retrieving repository tap...
NAME: tanzu-tap-repository
VERSION: 16253001
REPOSITORY: tapmdc.azurecr.io/mdc/1.0.2/tap-packages
TAG: 1.0.2
STATUS: Reconcile succeeded
REASON:
```
> **Note:** The `VERSION` and `TAG` numbers differ from the earlier example if you are on
> Tanzu Application Platform v1.0.2 or earlier.
1. List the available packages by running:
```console
tanzu package available list --namespace tap-install
```
For example:
```console
$ tanzu package available list --namespace tap-install
/ Retrieving available packages...
NAME DISPLAY-NAME SHORT-DESCRIPTION
accelerator.apps.tanzu.vmware.com Application Accelerator for VMware Tanzu Used to create new projects and configurations.
api-portal.tanzu.vmware.com API portal A unified user interface to enable search, discovery and try-out of API endpoints at ease.
backend.appliveview.tanzu.vmware.com Application Live View for VMware Tanzu App for monitoring and troubleshooting running apps
connector.appliveview.tanzu.vmware.com Application Live View Connector for VMware Tanzu App for discovering and registering running apps
conventions.appliveview.tanzu.vmware.com Application Live View Conventions for VMware Tanzu Application Live View convention server
buildservice.tanzu.vmware.com Tanzu Build Service Tanzu Build Service enables the building and automation of containerized software workflows securely and at scale.
cartographer.tanzu.vmware.com Cartographer Kubernetes native Supply Chain Choreographer.
cnrs.tanzu.vmware.com Cloud Native Runtimes Cloud Native Runtimes is a serverless runtime based on Knative
controller.conventions.apps.tanzu.vmware.com Convention Service for VMware Tanzu Convention Service enables app operators to consistently apply desired runtime configurations to fleets of workloads.
controller.source.apps.tanzu.vmware.com Tanzu Source Controller Tanzu Source Controller enables workload create/update from source code.
developer-conventions.tanzu.vmware.com Tanzu App Platform Developer Conventions Developer Conventions
grype.scanning.apps.tanzu.vmware.com Grype Scanner for Supply Chain Security Tools - Scan Default scan templates using Anchore Grype
image-policy-webhook.signing.apps.tanzu.vmware.com Image Policy Webhook The Image Policy Webhook allows platform operators to define a policy that will use cosign to verify signatures of container images
learningcenter.tanzu.vmware.com Learning Center for Tanzu Application Platform Guided technical workshops
ootb-supply-chain-basic.tanzu.vmware.com Tanzu App Platform Out of The Box Supply Chain Basic Out of The Box Supply Chain Basic.
ootb-supply-chain-testing-scanning.tanzu.vmware.com Tanzu App Platform Out of The Box Supply Chain with Testing and Scanning Out of The Box Supply Chain with Testing and Scanning.
ootb-supply-chain-testing.tanzu.vmware.com Tanzu App Platform Out of The Box Supply Chain with Testing Out of The Box Supply Chain with Testing.
ootb-templates.tanzu.vmware.com Tanzu App Platform Out of The Box Templates Out of The Box Templates.
scanning.apps.tanzu.vmware.com Supply Chain Security Tools - Scan Scan for vulnerabilities and enforce policies directly within Kubernetes native Supply Chains.
metadata-store.apps.tanzu.vmware.com Tanzu Supply Chain Security Tools - Store The Metadata Store enables saving and querying image, package, and vulnerability data.
service-bindings.labs.vmware.com Service Bindings for Kubernetes Service Bindings for Kubernetes implements the Service Binding Specification.
services-toolkit.tanzu.vmware.com Services Toolkit The Services Toolkit enables the management, lifecycle, discoverability and connectivity of Service Resources (databases, message queues, DNS records, etc.).
spring-boot-conventions.tanzu.vmware.com Tanzu Spring Boot Conventions Server Default Spring Boot convention server.
sso.apps.tanzu.vmware.com AppSSO Application Single Sign-On for Tanzu
tap-gui.tanzu.vmware.com Tanzu Application Platform GUI web app graphical user interface for Tanzu Application Platform
tap.tanzu.vmware.com Tanzu Application Platform Package to install a set of TAP components to get you started based on your use case.
workshops.learningcenter.tanzu.vmware.com Workshop Building Tutorial Workshop Building Tutorial
```
## <a id='install-profile'></a> Install your Tanzu Application Platform profile
The `tap.tanzu.vmware.com` package installs predefined sets of packages based on your profile settings.
This is done by using the package manager installed by Tanzu Cluster Essentials.
For more information about profiles, see [About Tanzu Application Platform package and profiles](about-package-profiles.md).
To prepare to install a profile:
1. List version information for the package by running:
```console
tanzu package available list tap.tanzu.vmware.com --namespace tap-install
```
1. Create a `tap-values.yaml` file by using the
[Full Profile sample](#full-profile) as a guide.
These samples have the minimum configuration required to deploy Tanzu Application Platform.
The sample values file contains the necessary defaults for:
- The meta-package, or parent Tanzu Application Platform package
- Subordinate packages, or individual child packages
>**Important:** Keep the values file for future configuration use.
1. Proceed to the [View possible configuration settings for your package](#view-pkge-config-settings)
section.
### <a id='full-profile'></a> Full Profile
The following is the YAML file sample for the full-profile:
```yaml
profile: full
ceip_policy_disclosed: FALSE-OR-TRUE-VALUE # Installation fails if this is not set to true. Not a string.
buildservice:
kp_default_repository: "KP-DEFAULT-REPO"
kp_default_repository_username: "KP-DEFAULT-REPO-USERNAME"
kp_default_repository_password: "KP-DEFAULT-REPO-PASSWORD"
tanzunet_username: "TANZUNET-USERNAME"
tanzunet_password: "TANZUNET-PASSWORD"
descriptor_name: "DESCRIPTOR-NAME"
supply_chain: basic
cnrs:
domain_name: INGRESS-DOMAIN
ootb_supply_chain_basic:
registry:
server: "SERVER-NAME"
repository: "REPO-NAME"
gitops:
ssh_secret: "SSH-SECRET-KEY"
learningcenter:
ingressDomain: "DOMAIN-NAME"
tap_gui:
service_type: ClusterIP
ingressEnabled: "true"
ingressDomain: "INGRESS-DOMAIN"
app_config:
app:
baseUrl: http://tap-gui.INGRESS-DOMAIN
catalog:
locations:
- type: url
target: https://GIT-CATALOG-URL/catalog-info.yaml
backend:
baseUrl: http://tap-gui.INGRESS-DOMAIN
cors:
origin: http://tap-gui.INGRESS-DOMAIN
metadata_store:
app_service_type: LoadBalancer # (optional) Defaults to LoadBalancer. Change to NodePort for distributions that don't support LoadBalancer
grype:
namespace: "MY-DEV-NAMESPACE" # (optional) Defaults to default namespace.
targetImagePullSecret: "TARGET-REGISTRY-CREDENTIALS-SECRET"
```
Where:
- `KP-DEFAULT-REPO` is a writable repository in your registry. Tanzu Build Service dependencies are written to this location. Examples:
* Harbor has the form `kp_default_repository: "my-harbor.io/my-project/build-service"`
* Dockerhub has the form `kp_default_repository: "my-dockerhub-user/build-service"` or `kp_default_repository: "index.docker.io/my-user/build-service"`
* Google Cloud Registry has the form `kp_default_repository: "gcr.io/my-project/build-service"`
- `KP-DEFAULT-REPO-USERNAME` is the username that can write to `KP-DEFAULT-REPO`. You can `docker push` to this location with this credential.
* For Google Cloud Registry, use `kp_default_repository_username: _json_key`
- `KP-DEFAULT-REPO-PASSWORD` is the password for the user that can write to `KP-DEFAULT-REPO`. You can `docker push` to this location with this credential. You can also configure this credential by using a secret reference. See [Install Tanzu Build Service](tanzu-build-service/install-tbs.html#install-secret-refs) for details.
* For Google Cloud Registry, use the contents of the service account JSON file.
- `TANZUNET-USERNAME` and `TANZUNET-PASSWORD` are the email address and password to log in to VMware Tanzu Network. Your VMware Tanzu Network credentials enable you to configure the dependencies updater. This resource accesses and installs the build dependencies (buildpacks and stacks) that Tanzu Build Service requires on your cluster. It can also optionally keep these dependencies up to date as new versions are released on VMware Tanzu Network. You can also configure this credential by using a secret reference. For more information, see [Install Tanzu Build Service](tanzu-build-service/install-tbs.html#install-secret-refs).
- `DESCRIPTOR-NAME` is the name of the descriptor to import. For more information, see [Overview of Tanzu Build Service](tanzu-build-service/tbs-about.html#descriptors). Available options are:
* `lite` is the default if not set. It has a smaller footprint, which enables faster installations.
* `full` is optimized to speed up builds and includes dependencies for all supported workload types.
- `SERVER-NAME` is the hostname of the registry server. Examples:
* Harbor has the form `server: "my-harbor.io"`
* Dockerhub has the form `server: "index.docker.io"`
* Google Cloud Registry has the form `server: "gcr.io"`
- `REPO-NAME` is where workload images are stored in the registry.
Images are written to `SERVER-NAME/REPO-NAME/workload-name`. Examples:
* Harbor has the form `repository: "my-project/supply-chain"`
* Dockerhub has the form `repository: "my-dockerhub-user"`
* Google Cloud Registry has the form `repository: "my-project/supply-chain"`
- `SSH-SECRET-KEY` is the SSH secret key supported by the specific package.
See [Identify the values for your package](#identify-values) for more information.
- `DOMAIN-NAME` has a value such as `learningcenter.example.com`.
- `INGRESS-DOMAIN` is the subdomain for the host name that you point at the `tanzu-shared-ingress`
service's External IP address.
- `GIT-CATALOG-URL` is the path to the `catalog-info.yaml` catalog definition file. You can download either a blank or populated catalog file from the [Tanzu Application Platform product page](https://network.pivotal.io/products/tanzu-application-platform/#/releases/1043418/file_groups/6091). Otherwise, you can use a Backstage-compliant catalog you've already built and posted on the Git infrastructure.
- `MY-DEV-NAMESPACE` is the namespace where you want to deploy the `ScanTemplates`.
This is the namespace where the scanning feature runs.
- `TARGET-REGISTRY-CREDENTIALS-SECRET` is the name of the secret that contains the
credentials to pull an image from the registry for scanning.
If built images are pushed to the same registry as the Tanzu Application Platform images,
this can reuse the `tap-registry` secret created in
[Add the Tanzu Application Platform package repository](#add-tap-package-repo).
> **Note:** When you install Tanzu Application Platform, it is bootstrapped with
> a set of dependencies (buildpacks and stacks) for application builds.
> For more information about buildpacks, see the [VMware Tanzu Buildpacks Documentation](https://docs.vmware.com/en/VMware-Tanzu-Buildpacks/index.html).
> You can find the buildpack and stack artifacts installed with Tanzu Application Platform
> in the descriptor file on [Tanzu Network](https://network.pivotal.io/products/tbs-dependencies).
> The current installed version of the descriptor is
> [100.0.293](https://network.pivotal.io/products/tbs-dependencies#/releases/1086670). Sometimes the dependencies
> require updates. You can use a
> [manual process in a CI/CD context](tanzu-build-service/tbs-about.html#dependencies-manual), or
> an [automatic update process](tanzu-build-service/tbs-about.html#auto-updates)
> in the background by Tanzu Application Platform.
### <a id='light-profile'></a> Light Profile
The Light profile is deprecated. Although existing values files might still refer to the Light profile, VMware recommends to migrate to one of the new profiles described in [Install your Tanzu Application Platform profile](#install-profile) by following the procedures in [Migrate Tanzu Application Platform profiles](migrate-profile.md).
### <a id="view-pkge-config-settings"></a>View possible configuration settings for your package
To view possible configuration settings for a package, run:
```console
tanzu package available get tap.tanzu.vmware.com/$TAP_VERSION --values-schema --namespace tap-install
```
Where `$TAP_VERSION` is the Tanzu Application Platform version environment variable
you defined earlier.
>**Note:** The `tap.tanzu.vmware.com` package does not show all configuration settings for packages
>it plans to install. The package only shows top-level keys.
>You can view individual package configuration settings with the same `tanzu package available get` command.
>For example, use `tanzu package available get -n tap-install cnrs.tanzu.vmware.com/1.0.3 --values-schema` for Cloud Native Runtimes.
```yaml
profile: full
# ...
# e.g. CNRs specific values go under its name
cnrs:
provider: local
# e.g. App Accelerator specific values go under its name
accelerator:
server:
service_type: "ClusterIP"
```
### <a id="identify-values"></a>Identify the values for your package
You can identify the values for your Tanzu package by running:
```console
tanzu package available get PACKAGE-NAME.tanzu.vmware.com/VERSION --values-schema -n tap-install
```
Where:
- `VERSION` is the version number of the package. For example, `0.5.1` for Supply Chain Basic package.
- `PACKAGE-NAME` is the value of `Top-level Key` for package-specific configuration within
your `tap-values.yaml`, as summarized in the following table:
|Package|Top-level Key|
|----|----|
|_see table below_|`shared`|
|API portal|`api_portal`|
|Application Accelerator|`accelerator`|
|Application Live View|`appliveview`|
|Application Live View Connector|`appliveview_connector`|
|Application Live View Conventions|`appliveview-conventions`|
|Cartographer|`cartographer`|
|Cloud Native Runtimes|`cnrs`|
|Convention Controller|`convention_controller`|
|Source Controller|`source_controller`|
|Supply Chain|`supply_chain`|
|Supply Chain Basic|`ootb_supply_chain_basic`|
|Supply Chain Testing|`ootb_supply_chain_testing`|
|Supply Chain Testing Scanning|`ootb_supply_chain_testing_scanning`|
|Supply Chain Security Tools - Scan|`scanning`|
|Supply Chain Security Tools - Scan (Grype Scanner)|`grype`|
|Supply Chain Security Tools - Store|`metadata_store`|
|Image Policy Webhook|`image_policy_webhook`|
|Build Service|`buildservice`|
|Tanzu Application Platform GUI|`tap_gui`|
|Learning Center|`learningcenter`|
Shared Keys define values that configure multiple packages. These keys are defined under the `shared` Top-level Key, as summarized in the following table:
|Shared Key|Used By|Description|
|----|----|----|
|`ca_cert_data`|`convention_controller`, `source_controller`|Optional: PEM Encoded certificate data to trust TLS connections with a private CA.|
For information about package-specific configuration, see [Installing individual packages](install-components.md).
For example, to identify the SSH secret keys for Supply Chain Basic, you can run:
```console
tanzu package available get ootb-supply-chain-basic.tanzu.vmware.com/0.5.1 --values-schema -n tap-install
```
Expect to see the following outputs that list the all the SSH secret keys and the descriptions applicable to the package:
```console
KEY DEFAULT TYPE DESCRIPTION
cluster_builder default string Name of the Tanzu Build Service (TBS) ClusterBuilder to use by default on image objects managed by the supply chain.
gitops.branch main string Default branch to use for pushing Kubernetes configuration files produced by the supply chain.
gitops.commit_message bump configuration string Default git commit message to write when publishing Kubernetes configuration files produces by the supply chain to git.
gitops.email supplychain@cluster.local string Default user email to be used for the commits produced by the supply chain.
gitops.repository_prefix <nil> string Default prefix to be used for forming Git SSH URLs for pushing Kubernetes configuration produced by the supply chain.
gitops.ssh_secret git-ssh string Name of the default Secret containing SSH credentials to lookup in the developer namespace for the supply chain to fetch source code from and push configuration to.
gitops.username supplychain string Default user name to be used for the commits produced by the supply chain.
registry.repository <nil> string Name of the repository in the image registry server where the application images from the workloads should be pushed to (required).
registry.server index.docker.io string Name of the registry server where application images should be pushed to (required).
service_account default string Name of the service account in the namespace where the Workload is submitted to utilize for providing registry credentials to Tanzu Build Service (TBS) Image objects as well as deploying the application.
```
## <a id="install-package"></a>Install your Tanzu Application Platform package
Follow these steps to install the Install the Tanzu Application Platform package:
1. Install the package by running:
```console
tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION --values-file tap-values.yaml -n tap-install
```
Where `$TAP_VERSION` is the Tanzu Application Platform version environment variable
you defined earlier.
1. Verify the package install by running:
```console
tanzu package installed get tap -n tap-install
```
This may take 5-10 minutes because it installs several packages on your cluster.
1. Verify that all the necessary packages in the profile are installed by running:
```console
tanzu package installed list -A
```
1. (Optional) [Install any additional packages](install-components.md) not included in
your profile.
>**Important:** Ensure you have
[set up developer namespaces to use your installed packages](install-components.md#setup).
After installing Full Profile on to your cluster, you can install the
Tanzu Developer Tools for VSCode extension to help you develop against it.
For instructions, see [Installing Tanzu Dev Tools for VSCode](vscode-extension/installation.md).
## <a id="configure-envoy-lb"></a> Configure LoadBalancer for Contour ingress
This section only applies when you use Tanzu Application Platform to deploy its own shared Contour ingress controller in `tanzu-system-ingress`. It is not applicable when you use your existing ingress.
You can share this ingress across Cloud Native Runtimes (`cnrs`), Tanzu Application Platform GUI (`tap_gui`), and Learning Center (`learningcenter`).
By default, Contour uses `NodePort` as the service type. To set the service type to `LoadBalancer`, add the following to your `tap-values.yaml`:
```yaml
contour:
envoy:
service:
type: LoadBalancer
```
If you use AWS, the section above creates a classic LoadBalancer.
If you want to use the Network LoadBalancer instead of the classic LoadBalancer for ingress, add the
following to your `tap-values.yaml`:
```yaml
contour:
infrastructure_provider: aws
envoy:
service:
aws:
LBType: nlb
```
## <a id='access-tap-gui'></a> Access Tanzu Application Platform GUI
To access Tanzu Application Platform GUI, you can use the hostname that you configured earlier. This hostname is pointed at the shared ingress. To configure LoadBalancer for Tanzu Application Platform GUI, see [Accessing Tanzu Application Platform GUI](tap-gui/accessing-tap-gui.md.hbs).
You're now ready to start using Tanzu Application Platform GUI.
Proceed to the [Getting Started](getting-started.md) topic or the
[Tanzu Application Platform GUI - Catalog Operations](tap-gui/catalog/catalog-operations.md) topic.
## <a id='exclude-packages'></a> Exclude packages from a Tanzu Application Platform profile
To exclude packages from a Tanzu Application Platform profile:
1. Find the full subordinate (child) package name:
```console
tanzu package available list --namespace tap-install
```
2. Update your `tap-values` file with a section listing the exclusions:
```console
profile: PROFILE-VALUE
excluded_packages:
- tap-gui.tanzu.vmware.com
- service-bindings.lab.vmware.com
```
>**Important:** If you exclude a package after performing a profile installation including that package, you cannot see the accurate package states immediately after running `tap package installed list -n tap-install`.
>**Warning:** You can break package dependencies by removing a package. Allow 20 minutes to verify that all packages have reconciled correctly while troubleshooting.