Context

images.jpeg


<aside> ๐Ÿ’ก Tanzu DevOps Platform

</aside>

TAP ENV

# AWS
export AWS_PROFILE=Altair
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_DEFAULT_REGION=ap-southeast-1
export AWS_REGION=ap-southeast-1

# TKG
export TKG_CUSTOM_IMAGE_REPOSITORY="registry.altair-lab.com/tkg"
export TKG_IMAGE_REPO="projects.registry.vmware.com/tkg"
# export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE=""
export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE=""
export TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY=false
export TKG_BOM_IMAGE_TAG="v2.1.0"
#export TKG_BOM_IMAGE_TAG="v1.6.4"

# TAP
#export IMGPKG_REGISTRY_HOSTNAME=
#export IMGPKG_REGISTRY_USERNAME=
#export IMGPKG_REGISTRY_PASSWORD=
export IMGPKG_REGISTRY_HOSTNAME=
export IMGPKG_REGISTRY_USERNAME=admin
export IMGPKG_REGISTRY_PASSWORD=

export INSTALL_REGISTRY_HOSTNAME=
export INSTALL_REPO=tap
export INSTALL_REGISTRY_USERNAME=admin
export INSTALL_REGISTRY_PASSWORD=
export TAP_VERSION=1.4.0
export REGISTRY_CA_PATH=/root/ca.crt
export VERSION=1.9.0

TAP deploy

## ๊ฐœ๋ฐœ์ž ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์‹œํฌ๋ฆฟ
# ํฌ๋ฆฌ๋ด์…œ ์ถ”๊ฐ€
tanzu secret registry add registry-credentials --server $INSTALL_REGISTRY_HOSTNAME --username $INSTALL_REGISTRY_USERNAME --password $INSTALL_REGISTRY_PASSWORD --namespace default
# ์—๋Ÿฌ์‹œ
kubectl create secret docker-registry registry-credentials --docker-server=$INSTALL_REGISTRY_HOSTNAME --docker-username=$INSTALL_REGISTRY_USERNAME --docker-password=$INSTALL_REGISTRY_PASSWORD --namespace default
# ์ ์šฉ
kubectl -n YOUR-NAMESPACE apply -f set-up-ns.yaml

# ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ์กฐํšŒ
imgpkg tag list -i registry.tanzu.vmware.com/tanzu-application-platform/tap-packages | grep -v sha | sort -V

# ํŒจํ‚ค์ง€ tar๋กœ ๋ฐ›์•„์˜ค๊ธฐ
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
imgpkg copy -b registry.tanzu.vmware.com/tanzu-application-platform/full-tbs-deps-package-repo:${VERSION} --to-tar tbs-full-deps-${VERSION}.tar

# ํŒจํ‚ค์ง€ tar๋กœ ๋„ฃ๊ธฐ
imgpkg copy --tar tap-packages-${TAP_VERSION}.tar --to-repo ${INSTALL_REGISTRY_HOSTNAME}/tap/tap-packages --include-non-distributable-layers --registry-verify-certs=false
imgpkg copy --tar tbs-full-deps-${VERSION}.tar --to-repo ${INSTALL_REGISTRY_HOSTNAME}/tap/tbs-full-deps --registry-verify-certs=false

# ํŒจํ‚ค์ง€ ๋ฐ”๋กœ๋„ฃ๊ธฐ
imgpkg copy -b registry.tanzu.vmware.com/tanzu-application-platform/tap-packages:${TAP_VERSION} --to-repo ${INSTALL_REGISTRY_HOSTNAME}/tap/tap-packages
imgpkg copy -b registry.tanzu.vmware.com/tanzu-application-platform/full-tbs-deps-package-repo:${VERSION} --to-repo ${INSTALL_REGISTRY_HOSTNAME}/tap/tbs-full-deps

# ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ
kubectl create ns tap-install
kubectl create ns build-service

tanzu secret registry add tap-registry \\
    --server   $INSTALL_REGISTRY_HOSTNAME \\
    --username $INSTALL_REGISTRY_USERNAME \\
    --password $INSTALL_REGISTRY_PASSWORD \\
    --namespace tap-install \\
    --export-to-all-namespaces \\
    --yes

# ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‹œํฌ๋ฆฟ ์ถ”๊ฐ€
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
tanzu secret registry add tbs-full-deps-repository --username ${INSTALL_REGISTRY_USERNAME} --password ${INSTALL_REGISTRY_PASSWORD} --server ${INSTALL_REGISTRY_HOSTNAME} --export-to-all-namespaces --yes --namespace tap-install
tanzu secret registry add tbs-full-deps-repository --username ${INSTALL_REGISTRY_USERNAME} --password ${INSTALL_REGISTRY_PASSWORD} --server ${INSTALL_REGISTRY_HOSTNAME} --export-to-all-namespaces --yes --namespace build-service

# ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ถ”๊ฐ€
tanzu package repository add tap-repository --url ${INSTALL_REGISTRY_HOSTNAME}/tap/tap-packages:${TAP_VERSION} --namespace tap-install
tanzu package repository add tbs-full-deps-repository --url ${INSTALL_REGISTRY_HOSTNAME}/tap/tbs-full-deps:${VERSION} --namespace tap-install

# ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์‚ญ์ œ
tanzu package repository delete tanzu-tap-repository --namespace tap-install
tanzu package repository delete tbs-full-deps-repository --namespace tap-install

# ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ™•์ธ
tanzu package repository get tanzu-tap-repository --namespace tap-install
tanzu package repository get tbs-full-deps-repository --namespace tap-install

# ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ํ™•์ธ
tanzu package available list --namespace tap-install

# ํŒจํ‚ค์ง€ ์„ค์น˜
tanzu package install tap -p tap.tanzu.vmware.com -v ${TAP_VERSION} -n tap-install --values-file tap-values.yaml 
tanzu package install full-tbs-deps -p full-tbs-deps.tanzu.vmware.com -v ${VERSION} -n tap-install

# ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ
tanzu package installed update tap -p tap.tanzu.vmware.com -v ${TAP_VERSION} --values-file tap-values.yaml -n tap-install
tanzu package installed update full-tbs-deps -p full-tbs-deps.tanzu.vmware.com -v ${VERSION} -n tap-install

# ํŒจํ‚ค์ง€ ์‚ญ์ œ
tanzu package installed delete tap -n tap-install
tanzu package installed delete tbs-full-deps -n tap-install

# ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ํ™•์ธ
tanzu package installed list -n tap

set-up-ns.yaml

apiVersion: v1
kind: Secret
metadata:
  name: tap-registry
  annotations:
    secretgen.carvel.dev/image-pull-secret: ""
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: e30K
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: default
secrets:
  - name: registry-credentials
imagePullSecrets:
  - name: registry-credentials
  - name: tap-registry
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: default-permit-deliverable
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: deliverable
subjects:
  - kind: ServiceAccount
    name: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: default-permit-workload
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: workload
subjects:
  - kind: ServiceAccount
    name: default
# Workload ๋ฐฐํฌ / source๋Š” ๊นƒ
tanzu apps workload create tanzu-java-web-app \\
--git-repo <https://github.com/kshong05311129/tanzu-java-web-app-tap-hol> \\
--git-branch main \\
--type web \\
--label app.kubernetes.io/part-of=tanzu-java-web-app \\
--yes \\
--namespace default

# Workload ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
tanzu apps workload list

# Workload app ์กฐํšŒ
tanzu apps workload get tanzu-java-web-app

# kubectl ๊ณผ ๋น„๊ต
kubectl get pod -n default

์„œํ”Œ๋ผ์ด ์ฒด์ธ์ง€์˜ ์ดˆ๊ทธ๋ž˜ํ”ผ๋กœ ๊ฐœ๋ฐœ์ž, ์šด์˜์ž ์ค‘๊ฐ„ ์‚ฌ์ด์˜ sec์˜ ๋ช…ํ™•ํ•œ
๋ถ„๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค
๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ ๊ฐœ๋ฐœ์— ์ง‘์ค‘์„ ํ•˜๊ณ ,
์šด์˜์ž๋Š” ์„œํ”Œ๋ผ์ด ์ฒด์ธ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ง‘์ค‘ํ•˜๊ณ , ์ƒ์‚ฐ๊ฒฝ๋กœ๋ฅผ ์ž๋™ํ™” ํ•œ๋‹ค.
๊ฐœ๋ฐœ์ž๋“ค์ด ๋กœ์ปฌํ™˜๊ฒฝ์—์„œ ๋””๋ฒ„๊ทธ๋ฅผ ํ•˜๊ณ  ์ปค๋ฐ‹์„ํ•˜๋Š” ์ˆœ๊ฐ„ ์„œํ”Œ๋ผ์ด ์ฒด์ธ์ด
์ •์˜ ๋  ๋•Œ๋‹ค ์šด์˜ํŒ€์—์„œ

kubectl get workload,gitrepository,pipelinerun,images.kpack,podintent,app,services.serving

TAP standalone Deploy

# Install kapp-controller (v0.29.0+)
kapp deploy -y -a kc -f <https://github.com/vmware-tanzu/carvel-kapp-controller/releases/download/v0.29.0/release.yml>

# Install secretgen-controller (v0.6.0+)
kapp deploy -y -a sg -f <https://github.com/vmware-tanzu/carvel-secretgen-controller/releases/download/v0.6.0/release.yml>

# Install cert manager
kapp deploy -y -a cm -f <https://github.com/jetstack/cert-manager/releases/download/v1.4.0/cert-manager.yaml>

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kapp-controller-sa
  namespace: kapp-controller-packaging-global
EOF

# Note: This is a very open ClusterRole at present, we are aiming to refine the permissions in an upcoming release.
cat <<EOF | kubectl apply -f -
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kapp-controller-services-toolkit
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["*"]
EOF

cat <<EOF | kubectl apply -f -
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kapp-controller-services-toolkit
subjects:
- kind: ServiceAccount
  name: kapp-controller-sa
  namespace: kapp-controller-packaging-global
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kapp-controller-services-toolkit
EOF
kubectl create secret docker-registry tap-registry \\
  --namespace=kapp-controller-packaging-global \\
  --docker-username='${INSTALL_REGISTRY_USERNAME}' \\
  --docker-password='${INSTALL_REGISTRY_PASSWORD}' \\
  --docker-server='${INSTALL_REGISTRY_HOSTNAME}' \\
  --dry-run=client -oyaml \\
  | kubectl apply -f -

cat <<EOF | kubectl apply -f -
---
apiVersion: secretgen.carvel.dev/v1alpha1
kind: SecretExport
metadata:
  name: tap-registry
  namespace: kapp-controller-packaging-global
spec:
  toNamespaces:
  - "*"
EOF
cat <<EOF | kubectl apply -f -
---
apiVersion: data.packaging.carvel.dev/v1alpha1
kind: PackageMetadata
metadata:
  name: services-toolkit.tanzu.vmware.com
  namespace: kapp-controller-packaging-global
spec:
  categories:
  - services
  displayName: Services Toolkit
  longDescription: |
    The Services Toolkit comprises a number of Kubernetes native components which support the management, lifecycle, discoverability and connectivity of Service Resources (databases, message queues, DNS records, etc.) on Kubernetes. These components are:
    * Service Offering
    * Service Resource Claims
    * Service API Projection (Experimental)
    * Service Resource Replication (Experimental)
  maintainers:
  - name: The Services Control Plane team
  providerName: VMware
  shortDescription: The Services Toolkit enables the management, lifecycle, discoverability and connectivity of Service Resources (databases, message queues, DNS records, etc.).
  supportDescription: <https://tanzu.vmware.com/support>
EOF

cat <<EOF | kubectl apply -f -
---
apiVersion: data.packaging.carvel.dev/v1alpha1
kind: Package
metadata:
  name: services-toolkit.tanzu.vmware.com.0.5.1
  namespace: kapp-controller-packaging-global
spec:
  refName: services-toolkit.tanzu.vmware.com
  version: "0.5.1"
  template:
    spec:
      fetch:
      - imgpkgBundle:
          image: ${INSTALL_REGISTRY_HOSTNAME}/tap-packages@sha256:9f739406ada507ee3b0590301633666357371581897d44a95db1f7b8b5c6926d
      template:
      - ytt:
          paths:
          - "config/"
      - kbld:
          paths:
          - "-"
          - "kbld.yaml"
          - ".imgpkg/images.yml"
      deploy:
      - kapp: {}
EOF

Untitled


<aside> โš™ ใ€€๏ฝœใ€€Main Pageใ€€๏ฝœใ€€Categoryใ€€๏ฝœใ€€ Tagsใ€€๏ฝœใ€€About Meใ€€๏ฝœใ€€Contactใ€€๏ฝœ

</aside>