VMware/TAP: Difference between revisions

From DER's LLC
Jump to navigation Jump to search
 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Setup VS Code =
= Install Tanzu Application Platform =
In CMD:
== Create a Tanzu Account ==
  pscp root@172.16.87.48:/root/.kube/config .
Follow Step 1: https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.11/tap/install-offline-profile.html
  kubectl port-forward service/acc-server -n accelerator-system 8877:80


= Install Tanzu Application Platform =
== Set Environment Variables ==  
== Set Environment Variables ==  
  export IMGPKG_REGISTRY_HOSTNAME=harbor.dersllc.com
  export IMGPKG_REGISTRY_HOSTNAME=harbor.dersllc.com
  export IMGPKG_REGISTRY_USERNAME=admin
  export IMGPKG_REGISTRY_USERNAME=admin
  export IMGPKG_REGISTRY_PASSWORD=DERS4me!
  export IMGPKG_REGISTRY_PASSWORD=<PASSWORD>
  export TAP_VERSION=1.3.0
  export TAP_VERSION=1.6.3
  export REGISTRY_CA_PATH=/root/ders-ca.crt
  export REGISTRY_CA_PATH=/data/ders-ca.crt


== Export and Import the Package Repo for Air-Gapped Environments ==
== Export and Import the Package Repo for Air-Gapped Environments ==
docker login harbor.dersllc.com
docker login registry.tanzu.vmware.com
imgpkg copy \
  -b registry.tanzu.vmware.com/tanzu-application-platform/tap-packages:$TAP_VERSION \
  --to-tar tap-packages-$TAP_VERSION.tar \
  --include-non-distributable-layers
   
   
 
# Add new harbor repository named tap-$TAP_VERSION
imgpkg copy \
  --tar tap-packages-$TAP_VERSION.tar \
  --to-repo $IMGPKG_REGISTRY_HOSTNAME/tap-$TAP_VERSION/tap-packages \
  --include-non-distributable-layers \
  --registry-ca-cert-path $REGISTRY_CA_PATH \
  --registry-username $IMGPKG_REGISTRY_USERNAME \
  --registry-password $IMGPKG_REGISTRY_PASSWORD


== Setup the TAP Repository ==
== Setup the TAP Repository ==
  kubectl config use-context tap-admin@tap
  #kubectl config use-context tap-admin@tap
#kubectl vsphere login --insecure-skip-tls-verify --server tkgs.dersllc.com -u admin --tanzu-kubernetes-cluster-namespace ders --tanzu-kubernetes-cluster-name tap
  #tanzu package repository delete -n tap-install tanzu-tap-repository --yes
  #tanzu package repository delete -n tap-install tanzu-tap-repository --yes
  kubectl create ns tap-install
  kubectl create ns tap-install
Line 42: Line 56:


== Prep for Grype Scanner ==
== Prep for Grype Scanner ==
  kubectl create configmap grype-ca -n default --from-file=ca.crt=/data/certs/ca.crt
  kubectl create configmap grype-ca -n default --from-file=ca.crt=/data/ders-ca.crt
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/grype-db/grype-airgap-secret.yaml > grype-airgap-secret.yaml
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/grype-db/grype-airgap-secret.yaml > grype-airgap-secret.yaml
  kubectl apply -f grype-airgap-secret.yaml -n tap-install
  kubectl apply -f grype-airgap-secret.yaml -n tap-install
Line 49: Line 63:


== Install TAP ==
== Install TAP ==
#Dependancies Certificate Issuer
kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/TMC%20on%20TKGm/tmc-issuer.yaml
#GITOPS (If you want TAP to send its deployment yamls to GitLab Repo)
# curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/TAP-values-FULL.yaml > tap-values.yaml
#REPOOPS (If you want TAP to send its deployment yamls to Harbor Repo)
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/tap-values-FULL.yaml > tap-values.yaml
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/tap-values-FULL.yaml > tap-values.yaml
#INSTALL TAP
  #vi tap-values.yaml
  #vi tap-values.yaml
  tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION --values-file tap-values.yaml -n tap-install
  tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION --values-file tap-values.yaml -n tap-install
  kubectl get packageinstall -n tap-install  
  kubectl get packageinstall -n tap-install


== Install Full Build Service Dependancies Package ==
== Install Full Build Service Dependancies Package ==
  tanzu package available list buildservice.tanzu.vmware.com --namespace tap-install
  # LOG INTO THE HARBOR SERVER
  export TBS_VERSION='1.7.2'
docker login tap-sm-docker-prod-local.dmz.packages.broadcom.com #LOOK @ VAULT.DERSLLC.COM for the CREDENTIALS. Search for TAP.
  export TAP_VERSION=1.10.1
export HARBOR_HOSTNAME=harbor.dersllc.com
   
   
  #####Export and Import Full Dep Containers  
  #####Export and Import Full Dep Containers  
  #imgpkg copy -b registry.tanzu.vmware.com/tanzu-application-platform/full-tbs-deps-package-repo:$TBS_VERSION \
  imgpkg copy -b tap-sm-docker-prod-local.dmz.packages.broadcom.com/$TAP_VERSION/tanzu-application-platform/full-deps-package-repo:$TAP_VERSION \
     --to-tar=tbs-full-deps.tar
     --to-tar=tbs-full-deps-$TAP_VERSION.tar
  #imgpkg copy --tar tbs-full-deps.tar \
   
     --to-repo=${IMGPKG_REGISTRY_HOSTNAME}/tbs-$TBS_VERSION/tbs-full-deps
imgpkg copy --tar tbs-full-deps-$TAP_VERSION.tar \
     --to-repo=${HARBOR_HOSTNAME}/tbs-$TAP_VERSION/tbs-full-deps
# BACK ON THE SERVER WITH TANZU CLI
export TAP_VERSION=1.10.1
export HARBOR_HOSTNAME=harbor.dersllc.com
   
   
  tanzu package repository add tbs-full-deps-repository \
  tanzu package repository add tbs-full-deps-repository \
     --url ${IMGPKG_REGISTRY_HOSTNAME}/tbs-$TBS_VERSION/tbs-full-deps:$TBS_VERSION \
     --url ${HARBOR_HOSTNAME}/tbs-$TAP_VERSION/tbs-full-deps:$TAP_VERSION \
     --namespace tap-install
     --namespace tap-install
   
   
  tanzu package install full-tbs-deps -p full-tbs-deps.tanzu.vmware.com -v $TBS_VERSION -n tap-install
  tanzu package install full-tbs-deps -p full-tbs-deps.tanzu.vmware.com -v $TAP_VERSION -n tap-install


== Install OOTB Testing and Scanning Package ==
== Install OOTB Testing and Scanning Package ==
  #curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/grype-db/scan-values.yaml > scan-values.yaml
tanzu package available list ootb-supply-chain-testing-scanning.tanzu.vmware.com --namespace tap-install
export OOTB_VERSION='0.13.9'
export OOTB_VERSION=`tanzu package available list ootb-supply-chain-testing-scanning.tanzu.vmware.com --namespace tap-install | awk '{ print $2 }' | egrep  -v VERSION | tail -1`
echo $OOTB_VERSION
  #GITOPS
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/ootb-supply-chain-testing-scanning-values.yaml > scan-values.yaml
kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/overlay-ootb-templates-skip-tls.yaml
 
#REPOOPS
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/ootb-supply-chain-testing-scanning-values.yaml > scan-values.yaml
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/ootb-supply-chain-testing-scanning-values.yaml > scan-values.yaml
  tanzu package install ootb-supply-chain-testing-scanning -p ootb-supply-chain-testing-scanning.tanzu.vmware.com -v 0.10.2 -n tap-install --values-file scan-values.yaml
#INSTALL
  tanzu package install ootb-supply-chain-testing-scanning -p ootb-supply-chain-testing-scanning.tanzu.vmware.com -v $OOTB_VERSION -n tap-install --values-file scan-values.yaml


== Fix the Metadata Service ==
== Fix the Metadata Service ==
Line 103: Line 145:


== Install the Apps Plug-in for the Tanzu CLI ==
== Install the Apps Plug-in for the Tanzu CLI ==
  wget https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/tanzu-apps-plugin-linux-amd64-v0.11.1.tar.gz
# Latest Release - https://github.com/vmware-tanzu/apps-cli-plugin/releases
  tar -zxvf tanzu-apps-plugin-linux-amd64-v0.11.1.tar.gz -C tap-cli/
  wget https://github.com/vmware-tanzu/apps-cli-plugin/releases/download/v0.12.1/tanzu-apps-plugin-linux-amd64-v0.12.1.tar.gz
  tanzu plugin install apps -l tap-cli
mkdir -p tap-cli
  tar -zxvf tanzu-apps-plugin-linux-amd64-v0.12.1.tar.gz -C tap-cli/
  tanzu plugin install apps -l tap-cli/linux/amd64/
 
== Delete TAP ==
tanzu package installed delete ootb-supply-chain-testing-scanning -n tap-install --yes
tanzu package installed delete full-tbs-deps -n tap-install --yes
tanzu package installed delete tap -n tap-install --yes
== Delete Repos ==
tanzu package repository delete -n tap-install tbs-full-deps-repository --yes
tanzu package repository delete -n tap-install tanzu-tap-repository --yes


= Deploy Workloads =
= Deploy Workloads =
Line 135: Line 187:
== Tanzu Java Web App (Test / Scan Supply Chain)==
== Tanzu Java Web App (Test / Scan Supply Chain)==
=== Prepare Namespace ===
=== Prepare Namespace ===
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-cluster.yaml > prep-cluster.yaml
  kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-cluster.yaml
k apply -f prep-cluster.yaml
   
   
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-default-ns.yaml > prep-default-ns.yaml
  kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-test-ns.yaml
k apply -f prep-default-ns.yaml
   
   
  curl https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt > /data/ders-ca.crt
  curl https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt > /data/ders-ca.crt
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer >> /data/ders-ca.crt
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer >> /data/ders-ca.crt
  kubectl create configmap grype-ca -n default --from-file=ca.crt=/data/ders-ca.crt
  kubectl create configmap grype-ca -n default --from-file=ca.crt=/data/ders-ca.crt
kubectl create secret generic custom-ca --from-file=caFile=/data/ders-ca.crt -n test


=== Create Workload in TAP ===
=== Create Workload in TAP ===
Line 150: Line 202:
   
   
  #Delete Workload
  #Delete Workload
  tanzu apps workload delete tanzu-java-web-app-scan --yes
  tanzu apps workload delete tanzu-java-web-app-scan --yes -n test
   
   
  #Create Workload
  #Create Workload
  tanzu apps workload create -f tanzu-java-web-app-workload-scan.yaml --yes
  tanzu apps workload create -f tanzu-java-web-app-workload-scan.yaml --yes -n test
   
   
  #Continuously View Workload
  #Continuously View Workload
  watch tanzu apps workload get tanzu-java-web-app-scan
  watch tanzu apps workload get tanzu-java-web-app-scan -n test


== Hungryman (Where for Dinner) ==
== Hungryman (Where for Dinner) ==
=== Prepare Namespace ===
=== Prepare Namespace ===
  curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-cluster.yaml > prep-cluster.yaml
  kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-cluster.yaml
  k apply -f prep-cluster.yaml
  kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-workloads-ns.yaml
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-workloads-ns.yaml > prep-workloads-ns.yaml
k apply -f prep-workloads-ns.yaml
   
   
  curl https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt > /data/ders-ca.crt
  curl https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt > /data/ders-ca.crt
Line 216: Line 265:
== IDE ==
== IDE ==
=== Setup Demo ENV ==
=== Setup Demo ENV ==
  pscp [email protected].87.48:/root/.kube/config C:\Users\ders\.kube\
  pscp [email protected].84.25:/root/.kube/config C:\Users\ders\.kube\
kubectl config use-context tap-admin@tap


=== Accelerator URL Setup (Port-Forward) ===
=== Accelerator URL Setup (Port-Forward) ===
Line 222: Line 272:


= References =  
= References =  
== GITOPS Skip TLS verification ==
https://github.com/alexandreroman/tap-recipes/tree/main/skip-tls-gitops
== Namespace Provisioner ==
  https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.7/tap/namespace-provisioner-use-cases.html
== values file values ==
OOTB Supply Chain Testing and Scanning
tanzu package available get ootb-supply-chain-testing-scanning.tanzu.vmware.com/0.13.9 -n tap-install --values-schema
tanzu package available get tap.tanzu.vmware.com/1.6.3 -n tap-install --values-schema
== Supply Chain ==
== Supply Chain ==
=== GitOps vs. RegistryOps (Config Writer) ===
=== GitOps vs. RegistryOps (Config Writer) ===
Line 233: Line 292:
  Make sure the grype-ca-overlay secret is created.
  Make sure the grype-ca-overlay secret is created.
  Make sure the grype-ca-overlay is referenced in the tap-values.yaml
  Make sure the grype-ca-overlay is referenced in the tap-values.yaml
Config Writer Error
pod error: fatal: unable to access 'https://ders-gitlab.dersllc.com/ders/tap-supply-chain.git/': server certificate verification failed. CAfile: none CRLfile: none
#Follow the instructions here -> https://github.com/alexandreroman/tap-recipes/tree/main/skip-tls-gitops
kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/overlay-ootb-templates-skip-tls.yaml
#Add the following to tap-values.yaml
package_overlays:
- name: ootb-templates
  secrets:
  - name: overlay-ootb-templates-skip-tls
Config Writer ERROR
fatal: could not read Username for 'https://ders-gitlab.dersllc.com': No such device or address
kubectl patch serviceaccount default -p '{"secrets": [{"name": "git-ssh"}]}' -n test

Latest revision as of 20:15, 22 July 2024

Install Tanzu Application Platform

Create a Tanzu Account

Follow Step 1: https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.11/tap/install-offline-profile.html

Set Environment Variables

export IMGPKG_REGISTRY_HOSTNAME=harbor.dersllc.com
export IMGPKG_REGISTRY_USERNAME=admin
export IMGPKG_REGISTRY_PASSWORD=<PASSWORD>
export TAP_VERSION=1.6.3
export REGISTRY_CA_PATH=/data/ders-ca.crt

Export and Import the Package Repo for Air-Gapped Environments

docker login harbor.dersllc.com
docker login registry.tanzu.vmware.com

imgpkg copy \
 -b registry.tanzu.vmware.com/tanzu-application-platform/tap-packages:$TAP_VERSION \
 --to-tar tap-packages-$TAP_VERSION.tar \
 --include-non-distributable-layers

# Add new harbor repository named tap-$TAP_VERSION
imgpkg copy \
 --tar tap-packages-$TAP_VERSION.tar \
 --to-repo $IMGPKG_REGISTRY_HOSTNAME/tap-$TAP_VERSION/tap-packages \
 --include-non-distributable-layers \
 --registry-ca-cert-path $REGISTRY_CA_PATH \
 --registry-username $IMGPKG_REGISTRY_USERNAME \
 --registry-password $IMGPKG_REGISTRY_PASSWORD

Setup the TAP Repository

#kubectl config use-context tap-admin@tap
#kubectl vsphere login --insecure-skip-tls-verify --server tkgs.dersllc.com -u admin --tanzu-kubernetes-cluster-namespace ders --tanzu-kubernetes-cluster-name tap

#tanzu package repository delete -n tap-install tanzu-tap-repository --yes
kubectl create ns tap-install

tanzu secret registry add tap-registry \
   --server   $IMGPKG_REGISTRY_HOSTNAME \
   --username $IMGPKG_REGISTRY_USERNAME \
   --password $IMGPKG_REGISTRY_PASSWORD \
   --namespace tap-install \
   --export-to-all-namespaces \
   --yes

kubectl create secret docker-registry registry-credentials \
   --docker-server=${IMGPKG_REGISTRY_HOSTNAME} \
   --docker-username=${IMGPKG_REGISTRY_USERNAME} \
   --docker-password=${IMGPKG_REGISTRY_PASSWORD} \
   -n tap-install 

tanzu package repository add tanzu-tap-repository \
 --url $IMGPKG_REGISTRY_HOSTNAME/tap-$TAP_VERSION/tap-packages:$TAP_VERSION \
 --namespace tap-install

tanzu package repository get tanzu-tap-repository --namespace tap-install

Prep for Grype Scanner

kubectl create configmap grype-ca -n default --from-file=ca.crt=/data/ders-ca.crt
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/grype-db/grype-airgap-secret.yaml > grype-airgap-secret.yaml
kubectl apply -f grype-airgap-secret.yaml -n tap-install
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/grype-db/grype-ca-overlay.yaml > grype-ca-overlay.yaml
kubectl apply -f grype-ca-overlay.yaml -n tap-install

Install TAP

#Dependancies Certificate Issuer
kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/TMC%20on%20TKGm/tmc-issuer.yaml

#GITOPS (If you want TAP to send its deployment yamls to GitLab Repo)
# curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/TAP-values-FULL.yaml > tap-values.yaml

#REPOOPS (If you want TAP to send its deployment yamls to Harbor Repo)
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/tap-values-FULL.yaml > tap-values.yaml

#INSTALL TAP
#vi tap-values.yaml
tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION --values-file tap-values.yaml -n tap-install
kubectl get packageinstall -n tap-install

Install Full Build Service Dependancies Package

# LOG INTO THE HARBOR SERVER
docker login tap-sm-docker-prod-local.dmz.packages.broadcom.com  #LOOK @ VAULT.DERSLLC.COM for the CREDENTIALS. Search for TAP.

export TAP_VERSION=1.10.1
export HARBOR_HOSTNAME=harbor.dersllc.com

#####Export and Import Full Dep Containers 
imgpkg copy -b tap-sm-docker-prod-local.dmz.packages.broadcom.com/$TAP_VERSION/tanzu-application-platform/full-deps-package-repo:$TAP_VERSION \
   --to-tar=tbs-full-deps-$TAP_VERSION.tar

imgpkg copy --tar tbs-full-deps-$TAP_VERSION.tar \
   --to-repo=${HARBOR_HOSTNAME}/tbs-$TAP_VERSION/tbs-full-deps

# BACK ON THE SERVER WITH TANZU CLI
export TAP_VERSION=1.10.1
export HARBOR_HOSTNAME=harbor.dersllc.com

tanzu package repository add tbs-full-deps-repository \
   --url ${HARBOR_HOSTNAME}/tbs-$TAP_VERSION/tbs-full-deps:$TAP_VERSION \
   --namespace tap-install

tanzu package install full-tbs-deps -p full-tbs-deps.tanzu.vmware.com -v $TAP_VERSION -n tap-install

Install OOTB Testing and Scanning Package

tanzu package available list ootb-supply-chain-testing-scanning.tanzu.vmware.com --namespace tap-install
export OOTB_VERSION='0.13.9'

export OOTB_VERSION=`tanzu package available list ootb-supply-chain-testing-scanning.tanzu.vmware.com --namespace tap-install | awk '{ print $2 }' | egrep  -v VERSION | tail -1`
echo $OOTB_VERSION

#GITOPS
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/ootb-supply-chain-testing-scanning-values.yaml > scan-values.yaml
kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/overlay-ootb-templates-skip-tls.yaml
#REPOOPS
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/ootb-supply-chain-testing-scanning-values.yaml > scan-values.yaml
#INSTALL
tanzu package install ootb-supply-chain-testing-scanning -p ootb-supply-chain-testing-scanning.tanzu.vmware.com -v $OOTB_VERSION -n tap-install --values-file scan-values.yaml

Fix the Metadata Service

kubectl get secret $(kubectl get sa -n metadata-store metadata-store-read-write-client -o json | jq -r '.metadata.name') -n metadata-store -o json | jq -r '.data.token' | base64 -d
#add the following to the tap-values.yaml
tap_gui:
  service_type: ClusterIP
  ingressEnabled: "true"
  app_config:
      #auth:
        #environment: development
        #providers:
          #gitlab:
            #development:
              #clientId: "22b23986fb7218abd7914d2ac2f03e6be740f59cdd7c4c73fc34179efa5a5cd3"
              #clientSecret: "01888711c86de528a8a90b38259dd346d74601e1351d35b8b7bdb07200cceee4"
              #audience: "https://ders-gitlab.dersllc.com"
      proxy:
        /metadata-store:
          target: https://metadata-store-app.metadata-store:8443/api/v1
          changeOrigin: true
          secure: false
          headers:
            Authorization: "Bearer <TOKEN FROM PREVIOUS STEP>"
            X-Custom-Source: project-star
tanzu package install tap -p tap.tanzu.vmware.com -v $TAP_VERSION --values-file tap-values.yaml -n tap-install

Install the Apps Plug-in for the Tanzu CLI

# Latest Release - https://github.com/vmware-tanzu/apps-cli-plugin/releases
wget https://github.com/vmware-tanzu/apps-cli-plugin/releases/download/v0.12.1/tanzu-apps-plugin-linux-amd64-v0.12.1.tar.gz
mkdir -p tap-cli
tar -zxvf tanzu-apps-plugin-linux-amd64-v0.12.1.tar.gz -C tap-cli/
tanzu plugin install apps -l tap-cli/linux/amd64/

Delete TAP

tanzu package installed delete ootb-supply-chain-testing-scanning -n tap-install --yes
tanzu package installed delete full-tbs-deps -n tap-install --yes
tanzu package installed delete tap -n tap-install --yes

Delete Repos

tanzu package repository delete -n tap-install tbs-full-deps-repository --yes
tanzu package repository delete -n tap-install tanzu-tap-repository --yes

Deploy Workloads

Tanzu Java Web App (Basic Supply Chain)

Prepare Namespace

curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-cluster.yaml > prep-cluster.yaml
kubectl apply -f prep-cluster.yaml

curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-default-ns.yaml > prep-default-ns.yaml
kubectl apply -f prep-default-ns.yaml

curl https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt > /data/ders-ca.crt
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer >> /data/ders-ca.crt
kubectl create configmap grype-ca -n default --from-file=ca.crt=/data/ders-ca.crt

Create Workload in TAP

#Download Workload File
curl --insecure https://ders-gitlab.dersllc.com/ders/tanzu-java-web-app/-/raw/main/config/workload.yaml > tanzu-java-web-app-workload.yaml

#Delete Workload
tanzu apps workload delete tanzu-java-web-app --yes

#Create Workload
tanzu apps workload create -f tanzu-java-web-app-workload.yaml --yes

#Continuously View Workload
watch tanzu apps workload get tanzu-java-web-app

Tanzu Java Web App (Test / Scan Supply Chain)

Prepare Namespace

kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-cluster.yaml

kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-test-ns.yaml

curl https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt > /data/ders-ca.crt
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer >> /data/ders-ca.crt
kubectl create configmap grype-ca -n default --from-file=ca.crt=/data/ders-ca.crt

kubectl create secret generic custom-ca --from-file=caFile=/data/ders-ca.crt -n test

Create Workload in TAP

#Download Workload File
curl --insecure https://ders-gitlab.dersllc.com/ders/tanzu-java-web-app/-/raw/scan-branch/config/workload-scan.yaml > tanzu-java-web-app-workload-scan.yaml

#Delete Workload
tanzu apps workload delete tanzu-java-web-app-scan --yes -n test

#Create Workload
tanzu apps workload create -f tanzu-java-web-app-workload-scan.yaml --yes -n test

#Continuously View Workload
watch tanzu apps workload get tanzu-java-web-app-scan -n test

Hungryman (Where for Dinner)

Prepare Namespace

kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-cluster.yaml
kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/prep-workloads-ns.yaml

curl https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt > /data/ders-ca.crt
curl https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer >> /data/ders-ca.crt
kubectl create configmap grype-ca -n workloads --from-file=ca.crt=/data/ders-ca.crt

Create Workloads in TAP

#Download Workload Files
curl --insecure https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/raw/main/where-for-dinner-api-gateway/config/workload.yaml > where-for-dinner-api-gateway-workload.yaml
curl --insecure https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/raw/main/where-for-dinner-availability/config/workload.yaml > where-for-dinner-availability-workload.yaml
curl --insecure https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/raw/main/where-for-dinner-crawler/config/workload.yaml > where-for-dinner-crawler-workload.yaml
curl --insecure https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/raw/main/where-for-dinner-notify/config/workload.yaml > where-for-dinner-notify-workload.yaml 
curl --insecure https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/raw/main/where-for-dinner-search-proc/config/workload.yaml > where-for-dinner-search-proc-workload.yaml
curl --insecure https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/raw/main/where-for-dinner-search/config/workload.yaml > where-for-dinner-search-workload.yaml
curl --insecure https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/raw/main/where-for-dinner-ui/config/workload.yaml > where-for-dinner-ui-workload.yaml

#Delete Workloads
tanzu apps workload delete -n workloads where-for-dinner --yes
tanzu apps workload delete -n workloads where-for-dinner-availability --yes
tanzu apps workload delete -n workloads where-for-dinner-crawler --yes
tanzu apps workload delete -n workloads where-for-dinner-notify --yes
tanzu apps workload delete -n workloads where-for-dinner-search-proc --yes
tanzu apps workload delete -n workloads where-for-dinner-search --yes
tanzu apps workload delete -n workloads where-for-dinner-ui --yes

#Create Workloads
tanzu apps workload create -f where-for-dinner-api-gateway-workload.yaml --yes
tanzu apps workload create -f where-for-dinner-availability-workload.yaml --yes
tanzu apps workload create -f where-for-dinner-crawler-workload.yaml --yes
tanzu apps workload create -f where-for-dinner-notify-workload.yaml --yes
tanzu apps workload create -f where-for-dinner-search-proc-workload.yaml --yes
tanzu apps workload create -f where-for-dinner-search-workload.yaml --yes
tanzu apps workload create -f where-for-dinner-ui-workload.yaml --yes

#View Workloads
tanzu apps workload get -n workloads where-for-dinner
tanzu apps workload get -n workloads where-for-dinner-availability
tanzu apps workload get -n workloads where-for-dinner-crawler
tanzu apps workload get -n workloads where-for-dinner-notify
tanzu apps workload get -n workloads where-for-dinner-search-proc
tanzu apps workload get -n workloads where-for-dinner-search
tanzu apps workload get -n workloads where-for-dinner-ui

Register Repos with TAP

Tanzu Java Web App

https://ders-gitlab.dersllc.com/ders/tanzu-java-web-app/-/blob/main/catalog/catalog-info.yaml

Hungryman (Where for Dinner)

https://ders-gitlab.dersllc.com/ders/where-for-dinner/-/blob/main/catalog/catalog-info.yaml

Other Commands

IDE

= Setup Demo ENV

pscp [email protected]:/root/.kube/config C:\Users\ders\.kube\
kubectl config use-context tap-admin@tap

Accelerator URL Setup (Port-Forward)

kubectl port-forward service/acc-server -n accelerator-system 8877:80

References

GITOPS Skip TLS verification

https://github.com/alexandreroman/tap-recipes/tree/main/skip-tls-gitops

Namespace Provisioner

 https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.7/tap/namespace-provisioner-use-cases.html

values file values

OOTB Supply Chain Testing and Scanning

tanzu package available get ootb-supply-chain-testing-scanning.tanzu.vmware.com/0.13.9 -n tap-install --values-schema
tanzu package available get tap.tanzu.vmware.com/1.6.3 -n tap-install --values-schema

Supply Chain

GitOps vs. RegistryOps (Config Writer)

https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.3/tap/GUID-scc-gitops-vs-regops.html

ERRORS

Supply-Chain Image Scanner Step

error: scan job failed. logs: Error: Get "https://harbor.dersllc.com/v2/": x509: certificate signed by unknown authority
Make sure the grype-ca ConfigMap is in the desired namespace.
Make sure the grype-ca-overlay secret is created.
Make sure the grype-ca-overlay is referenced in the tap-values.yaml

Config Writer Error

pod error: fatal: unable to access 'https://ders-gitlab.dersllc.com/ders/tap-supply-chain.git/': server certificate verification failed. CAfile: none CRLfile: none
#Follow the instructions here -> https://github.com/alexandreroman/tap-recipes/tree/main/skip-tls-gitops
kubectl apply -f https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/TAP/gitops/overlay-ootb-templates-skip-tls.yaml
#Add the following to tap-values.yaml
package_overlays:
- name: ootb-templates
  secrets:
  - name: overlay-ootb-templates-skip-tls

Config Writer ERROR

fatal: could not read Username for 'https://ders-gitlab.dersllc.com': No such device or address
kubectl patch serviceaccount default -p '{"secrets": [{"name": "git-ssh"}]}' -n test