This topic describes how to install Tanzu Application Platform packages from the Tanzu Application Platform package repository on to AWS.
Before installing the packages, ensure you have:
- Completed the Prerequisites.
- Created AWS Resources
- Accepted Tanzu Application Platform EULA and installed Tanzu CLI with any required plug-ins.
- Installed Cluster Essentials for Tanzu
VMware recommends relocating the images from VMware Tanzu Network registry to your own container image registry before attempting installation. If you don't relocate the images, Tanzu Application Platform will depend on VMware Tanzu Network for continued operation, and VMware Tanzu Network offers no uptime guarantees. The option to skip relocation is documented for evaluation and proof-of-concept only.
This section describes how to relocate images to the tap-images repository created in Amazon ECR.
See Creating AWS Resources for more information.
To relocate images from the VMware Tanzu Network registry to the ECR registry:
-
Install Docker if it is not already installed.
-
Log in to your ECR image registry by following the AWS documentation.
Note This is a one time copy of images from the VMware Tanzu Network to ECR, so the ECR token expiring in 12 hours is not a concern.
-
Log in to the VMware Tanzu Network registry with your VMware Tanzu Network credentials by running:
docker login registry.tanzu.vmware.com -
Set up environment variables for installation use by running:
export AWS_ACCOUNT_ID=MY-AWS-ACCOUNT-ID export AWS_REGION=TARGET-AWS-REGION export TAP_VERSION=VERSION-NUMBER export INSTALL_REGISTRY_HOSTNAME=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com export INSTALL_REPO=tap-images
Where:
MY-AWS-ACCOUNT-IDis the account ID you depoloy Tanzu Application Platform in. No dashes and must be in the format012345678901.TARGET-AWS-REGIONis the region you deploy the Tanzu Application Platform to.VERSION-NUMBERis your Tanzu Application Platform version. For example,{{ vars.tap_version }}.
-
Relocate the images with the
imgpkgCLI by running:imgpkg copy --concurrency 1 -b registry.tanzu.vmware.com/tanzu-application-platform/tap-packages:${TAP_VERSION} --to-repo ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO} -
Create a namespace called
tap-installfor deploying any component packages by running:kubectl create ns tap-installThis namespace keeps the objects grouped together logically.
-
Add the Tanzu Application Platform package repository to the cluster by running:
tanzu package repository add tanzu-tap-repository \ --url ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}:$TAP_VERSION \ --namespace tap-install
-
Get the status of the Tanzu Application Platform package repository, and ensure the status updates to
Reconcile succeededby running:tanzu package repository get tanzu-tap-repository --namespace tap-installFor example:
$ tanzu package repository get tanzu-tap-repository --namespace tap-install - Retrieving repository tap... NAME: tanzu-tap-repository VERSION: 16253001 REPOSITORY: 123456789012.dkr.ecr.us-west-2.amazonaws.com/tap-images TAG: {{ vars.tap_version }} STATUS: Reconcile succeeded REASON:
Note The
VERSIONandTAGnumbers differ from the earlier example if you are on Tanzu Application Platform v1.0.2 or earlier. -
List the available packages by running:
tanzu package available list --namespace tap-installFor example:
$ 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. apis.apps.tanzu.vmware.com API Auto Registration for VMware Tanzu A TAP component to automatically register API exposing workloads as API entities in TAP GUI. 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 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
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 components and profiles.
To prepare to install a profile:
-
List version information for the package by running:
tanzu package available list tap.tanzu.vmware.com --namespace tap-install -
Create a
tap-values.yamlfile by using the Full Profile (AWS), which contains the minimum configurations required to deploy Tanzu Application Platform on AWS. The sample values file contains the necessary defaults for:- The meta-package, or parent Tanzu Application Platform package.
- Subordinate packages, or individual child packages.
Keep the values file for future configuration use.
Note
tap-values.yamlis set as a Kubernetes secret, which provides secure means to read credentials for Tanzu Application Platform components.
The following command generates the YAML file sample for the full-profile on AWS by using the ECR repositories you created earlier.
The profile: field takes full as the default value, but you can also set it to iterate, build, run, or view.
Refer to Install multicluster Tanzu Application Platform profiles for more information.
cat << EOF > tap-values.yaml
shared:
ingress_domain: "INGRESS-DOMAIN"
ceip_policy_disclosed: true
#The above keys are minimum numbers of entries needed in tap-values.yaml to get a functioning TAP Full profile installation.
#Below are the keys which may have default values set, but can be overridden.
profile: full # Can take iterate, build, run, view.
excluded_packages:
- policy.apps.tanzu.vmware.com
supply_chain: basic # Can take testing, testing_scanning.
ootb_supply_chain_basic: # Based on supply_chain set above, can be changed to ootb_supply_chain_testing, ootb_supply_chain_testing_scanning.
registry:
server: ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com
# The prefix of the ECR repository. Workloads will need
# two repositories created:
#
# tanzu-application-platform/<workloadname>-<namespace>
# tanzu-application-platform/<workloadname>-<namespace>-bundle
repository: tanzu-application-platform
contour:
envoy:
service:
type: LoadBalancer # This is set by default, but can be overridden by setting a different value.
buildservice:
kp_default_repository: ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/tap-build-service
# Enable the build service k8s service account to bind to the AWS IAM Role
kp_default_repository_aws_iam_role_arn: "arn:aws:iam::${AWS_ACCOUNT_ID}:role/tap-build-service"
ootb_templates:
# Enable the config writer service to use cloud based iaas authentication
# which are retrieved from the developer namespace service account by
# default
iaas_auth: true
tap_gui:
service_type: ClusterIP # If shared.ingress_domain is set earlier, this must be set to ClusterIP.
app_config:
catalog:
locations:
- type: url
target: https://GIT-CATALOG-URL/catalog-info.yaml
metadata_store:
ns_for_export_app_cert: "MY-DEV-NAMESPACE"
app_service_type: ClusterIP # Defaults to LoadBalancer. If shared.ingress_domain is set earlier, this must be set to ClusterIP.
scanning:
metadataStore:
url: "" # Configuration is moved, so set this string to empty.
grype:
namespace: "MY-DEV-NAMESPACE"
targetImagePullSecret: "TARGET-REGISTRY-CREDENTIALS-SECRET"
tap_telemetry:
customer_entitlement_account_number: "CUSTOMER-ENTITLEMENT-ACCOUNT-NUMBER" # (optional) identify data for creation of TAP usage reports
EOFWhere:
INGRESS-DOMAINis the subdomain for the host name that you point at thetanzu-shared-ingressservice's External IP address.kp_default_repository_aws_iam_role_arnis the ARN that was created to write to the ECR repository for the build service. This value is generated by the script, but you can modify it manually.GIT-CATALOG-URLis the path to thecatalog-info.yamlcatalog definition file. You can download either a blank or populated catalog file from the Tanzu Application Platform product page. Otherwise, you can use a Backstage-compliant catalog you've already built and posted on the Git infrastructure.MY-DEV-NAMESPACEis the name of the developer namespace. SCST - Store exports secrets to the namespace, and SCST - Scan deploys theScanTemplatesthere. This allows the scanning feature to run in this namespace. If there are multiple developer namespaces, usens_for_export_app_cert: "*"to export the SCST - Store CA certificate to all namespaces.TARGET-REGISTRY-CREDENTIALS-SECRETis the name of the secret that contains the credentials to pull an image from the registry for scanning.CUSTOMER-ENTITLEMENT-ACCOUNT-NUMBER(optional) refers to the Entitlement Account Number (EAN), which is a unique identifier VMware assigns to its customers. Tanzu Application Platform telemetry uses this number to identify data that belongs to a particular customers and prepare usage reports. See Kubernetes Grid documentation for more information about identifying the Entitlement Account Number.
For AWS, the default settings creates a classic LoadBalancer.
To use the Network LoadBalancer instead of the classic LoadBalancer for ingress, add the
following to your tap-values.yaml:
contour:
infrastructure_provider: aws
envoy:
service:
aws:
LBType: nlbWhen you install a profile that includes Tanzu Build Service,
Tanzu Application Platform is installed with the lite set of dependencies.
These dependencies consist of buildpacks
and stacks
required for application builds.
The lite set of dependencies do not contain all buildpacks and stacks.
To use all buildpacks and stacks, you must install the full dependencies.
For more information about the differences between lite and full dependencies, see
About lite and full dependencies.
To configure full dependencies, add the key-value pair
exclude_dependencies: true to your tap-values.yaml file under the buildservice section.
For example:
buildservice:
kp_default_repository: ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/tap-build-service
exclude_dependencies: trueAfter configuring full dependencies, you must install the dependencies after
you have finished installing your Tanzu Application Platform package.
See Install the full dependencies package for more information.
Follow these steps to install the Tanzu Application Platform package:
-
Install the package by running:
tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION --values-file tap-values.yaml -n tap-install -
Verify the package install by running:
tanzu package installed get tap -n tap-installThis can take 5-10 minutes because it installs several packages on your cluster.
-
Verify that the necessary packages in the profile are installed by running:
tanzu package installed list -A -
If you configured
fulldependencies in yourtbs-values.yamlfile, install thefulldependencies by following the procedure in Install full dependencies.
After installing the Full profile on your cluster, you can install the Tanzu Developer Tools for VS Code Extension to help you develop against it. For instructions, see Installing Tanzu Developer Tools for VS Code.
Note You can run the following command after reconfiguring the profile to reinstall the Tanzu Application Platform:
If you configured full dependencies in your tap-values.yaml file in
Configure your profile with full dependencies earlier,
you must install the full dependencies package.
For more information about the differences between lite and full dependencies, see
About lite and full dependencies.
To install the full dependencies package:
-
If you have not done so already, add the key-value pair
exclude_dependencies: trueto yourtap-values.yamlfile under thebuildservicesection. For example:buildservice: kp_default_repository: ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/tap-build-service exclude_dependencies: true ...
-
Get the latest version of the
buildservicepackage by running:tanzu package available list buildservice.tanzu.vmware.com --namespace tap-install -
Relocate the Tanzu Build Service full dependencies package repository by running:
imgpkg copy -b registry.tanzu.vmware.com/tanzu-application-platform/full-tbs-deps-package-repo:VERSION \ --to-repo ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}/tbs-full-deps
Where
VERSIONis the version of thebuildservicepackage you retrieved in the previous step. -
Add the Tanzu Build Service full dependencies package repository by running:
tanzu package repository add tbs-full-deps-repository \ --url ${INSTALL_REGISTRY_HOSTNAME}/${INSTALL_REPO}/tbs-full-deps:VERSION \ --namespace tap-install
Where
VERSIONis the version of thebuildservicepackage you retrieved earlier. -
Install the full dependencies package by running:
tanzu package install full-tbs-deps -p full-tbs-deps.tanzu.vmware.com -v VERSION -n tap-installWhere
VERSIONis the version of thebuildservicepackage you retrieved earlier.
To access Tanzu Application Platform GUI, you can use the host name that you configured earlier. This host name is pointed at the shared ingress. To configure LoadBalancer for Tanzu Application Platform GUI, see Accessing Tanzu Application Platform GUI.
You're now ready to start using Tanzu Application Platform GUI. Proceed to the Getting Started topic or the Tanzu Application Platform GUI - Catalog Operations topic.
To exclude packages from a Tanzu Application Platform profile:
-
Find the full subordinate (child) package name:
tanzu package available list --namespace tap-install -
Update your
tap-valuesfile with a section listing the exclusions: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. Also, you can break package dependencies by removing a package. Allow 20 minutes to verify that all packages have reconciled correctly while troubleshooting.