本文就是玩玩看:
https://docs.vmware.com/en/VMware-Tanzu-Application-Catalog/services/tac-docs/GUID-get-started-get-started-tanzu-application-catalog.html

相信很多人不太清楚這個是什麼,能用在哪裡?後面會有簡單解釋說明以及讓大家來看看這個平台的基本操作。

/ 什麼是 VAC(TAC) /

VMware 應用程序目錄 (VAC) 是來自 Bitnami 集合的可自定義選擇的開源軟件,該軟件持續維護並經過驗證測試,可在生產環境中使用。 VMware Application Catalog 為開發人員提供了預打包的自助應用程序和組件的生產力和敏捷性,同時使運營商能夠滿足企業 IT 嚴格的安全性和透明度要求。

簡單來說就是你可以用它來管理你自己的 base image 或是現在活在 VMware Bitnami team 在維護的那些 open source
最後的呈現可以是單獨的 containers 或一組 Helm charts

目前來說(2022年3月)相關 artifacts 的發佈都是丟在 Google Container Registry (GCR) ,要使用的話當然就是下載到自己 OCI-compliant 的映像倉庫來使用了,如 Docker Hub, Harbor, Artifactory。
不用多說,企業使用一律建議是都建一個私有倉庫如 Harbor ,並且放在防火牆裡面。

/ 基本操作 & 常用功能 /

1. 登入TAC

Portal 網址:https://tac.bitnami.com/
(會讓你使用 VMware 的 Cloud Service Account 來登入 aka 利用 MyVMware 登入的另一平台)

2. 儀表板查看

輸入帳號密碼登入後,會出現所有你擁有的 container images 和 Helm charts。

portal 上只會列出你有購買的 applications and building blocks。
當然如果你的公司有採購 Tanzu Advanced 的話,就是全部都有啦~不過是 by Core by 年訂閱(2021.08 的情況)

名詞介紹

在對 end-user 的軟體交付中的單位稱為 Application Artifacts ,簡稱 AA。

TAC 裡面的AA 有可能是一組 helm chart (好幾個containers) 如上,或是單個 Container image 如下

/ 實務上常會要看的指標 /

來源:(Digest)看這個image 的倉庫是存放在哪裡
版本:(tags)

這兩者不用說,上面我有提到目前丟在哪裡,而且版本也可以直接透過 VAC(TAC) 介面查看,更重要的是這個:

基本上這張圖所列的範圍大概就是平台最重要的功能,我們開發企業應用,要通過相關機構的稽查,最方便的就是在這邊去看我相關 AA 的詳細安全報告了,包含: 測試結果(test result) 、弱掃報告:(CVE Scan Result) 看這個package 裡頭有沒有已知的安全性漏洞等等可以下載、防毒報告:(Antivirus Scan) 等等

/ 部署一個被 TAC 安全認證過的應用程式- 以 wordpress 為例 /

1. 保持 helm 健康,like apt update

1
helm repo update
  1. 由於作者我是先用魔法網路,拉 image 到我的 harbor 了,直接指定該 project 然後開始安裝 wordpress
    1
    2
    $ helm install tac-maria tac-repo/mariadb --set auth.username=admin_wordpress --set auth.password=VMware1! --set auth.database=wp_database
    $ helm install tac-wp tac-repo/wordpress --set mariadb.enabled=false --set externalDatabase.host=tac-maria-mariadb.default.svc.cluster.local --set externalDatabase.user=admin_wordpress --set externalDatabase.password=VMware1! --set externalDatabase.database=wp_database


登進去後臺寫點東西,登去後台只要在網址後面加 /admin:

帳號是 user, 密碼這樣拿:

1
kubectl get secret --namespace default tac-wp-wordpress -o jsonpath="{.data.wordpress-password}" | base64 -d && echo

完成

完全就跟之前部署 application 一樣的體驗,重點是來源端是被驗證的,所以映像檔倉庫非常非常重要喔!

/ 建議最佳整合使用 kubeapps /

Kubeapps 是一個最容易方便部署應用到 k8s cluster 裡頭的一個 web-UI 工具,介面也非常直覺,容易管理你所擁有的應用,詳細可參考官網: kubeapps:https://kubeapps.com/

都同樣是 Bitnami 出產,TAC 裡面當然也有 kubeapps 可以下載囉!
同樣省略連魔法網路下載到自己私倉那段,以下是我安裝使用 kubeapps 的紀錄

安裝kubeapps

1
2
$ helm install kubeapps tac-repo/kubeapps --set useHelm3=true --set frontend.service.type=LoadBalancer --wait
$ kubectl get svc kubeapps

拿token登入

新增帳號,做 role binding

1
2
$ kubectl create serviceaccount kubeapps-operator
$ kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator

解碼token

1
$ kubectl get secret $(kubectl get serviceaccount kubeapps-operator -o jsonpath='{range .secrets[*]}{.name}{"\n"}{end}' | grep kubeapps-operator-token) -o jsonpath='{.data.token}' -o go-template='{{.data.token | base64decode}}' && echo

右上角 > 新增 repository (注意這是 app repository, 跟 image/code repo 不一樣喔)

完成


以上是我個人簡單試玩的分享。如果是想要接案很多要部署應用的源頭到各處的 ISV 廠商,或業務上需要建立一個自己發布應用給授權的單位使用的平台,透過 VAC(TAC) 加上 kubeapps 體驗應該是蠻流暢的。