From f17eec5ea255cd1a68a9496f158c13612b7b7cf7 Mon Sep 17 00:00:00 2001 From: William Lam Date: Wed, 21 Jun 2023 18:13:57 -0700 Subject: [PATCH] feat: Integrate Tanzu Sources (vSphere/Horizon) for Knative Closes: 1066 Signed-off-by: William Lam --- .../vmware-event-router-config-template.yaml | 50 +-------- .../vmware-event-router-k8s-template.yaml | 2 - .../templates/horizon-source-template.yml | 27 +++++ files/downloads/tanzu-sources/overlay.yaml | 50 +++++++++ files/setup-01-os.sh | 2 +- files/setup-010-veba-ui.sh | 2 +- files/setup-011-fluentbit.sh | 2 +- files/setup-012-cadvisor.sh | 2 +- files/setup-02-proxy.sh | 2 +- files/setup-03-network.sh | 2 +- files/setup-04-kubernetes.sh | 2 +- files/setup-05-knative.sh | 27 ++++- files/setup-06-event-processor.sh | 25 ----- files/setup-06-horizon-sources.sh | 22 ++++ files/setup-06-vsphere-sources.sh | 58 ++++++++++ files/setup-07-event-router-webhook.sh | 33 ++++++ files/setup-07-event-router.sh | 28 ----- files/setup-08-tinywww.sh | 7 +- files/setup-09-ingress.sh | 2 +- files/setup-098-dcui-endpoints.sh | 12 +-- files/setup-099-banner.sh | 2 +- files/setup.sh | 36 ++++--- manual/photon.xml.template | 12 +++ photon.pkr.hcl | 13 +-- scripts/photon-containers.sh | 6 ++ scripts/photon-settings.sh | 9 ++ test/deploy_veba_knative_processor.sh | 8 +- test/deploy_veba_knative_processor_veba_ui.sh | 8 +- ..._veba_knative_processor_veba_ui_webhook.sh | 8 +- ...ative_processor_veba_ui_webhook_horizon.sh | 102 ++++++++++++++++++ veba-bom.json | 29 ++++- 31 files changed, 436 insertions(+), 154 deletions(-) create mode 100644 files/configs/horizon-source/templates/horizon-source-template.yml create mode 100644 files/downloads/tanzu-sources/overlay.yaml delete mode 100755 files/setup-06-event-processor.sh create mode 100755 files/setup-06-horizon-sources.sh create mode 100755 files/setup-06-vsphere-sources.sh create mode 100755 files/setup-07-event-router-webhook.sh delete mode 100755 files/setup-07-event-router.sh create mode 100755 test/deploy_veba_knative_processor_veba_ui_webhook_horizon.sh diff --git a/files/configs/event-router/templates/vmware-event-router-config-template.yaml b/files/configs/event-router/templates/vmware-event-router-config-template.yaml index bb5095ef..25fff883 100644 --- a/files/configs/event-router/templates/vmware-event-router-config-template.yaml +++ b/files/configs/event-router/templates/vmware-event-router-config-template.yaml @@ -2,11 +2,8 @@ #@ load("@ytt:data", "data") #@ load("@ytt:json", "json") -#@ vcenter = json.decode(data.values.config)["ESCAPED_VCENTER_SERVER"] -#@ vcenterUsername = json.decode(data.values.config)["ESCAPED_VCENTER_USERNAME"] -#@ vcenterPassword = json.decode(data.values.config)["ESCAPED_VCENTER_PASSWORD"] -#@ vcenterTls = json.decode(data.values.config)["VCENTER_DISABLE_TLS"] - +#@ webhookUsername = json.decode(data.values.config)["ESCAPED_WEBHOOK_USERNAME"] +#@ webhookPassword = json.decode(data.values.config)["ESCAPED_WEBHOOK_PASSWORD"] #@ routerName = "vmware-event-router-config-knative-" + data.values.eventProvider apiVersion: event-router.vmware.com/v1alpha1 @@ -23,48 +20,6 @@ eventProcessor: name: default namespace: vmware-functions eventProvider: - #@ if data.values.eventProvider == "vcenter": - name: veba-vc-01 - type: vcenter - vcenter: - address: #@ "https://"+vcenter+"/sdk" - auth: - basicAuth: - username: #@ vcenterUsername - password: #@ vcenterPassword - type: basic_auth - #@ if vcenterTls == "True": - insecureSSL: true - #@ else: - insecureSSL: false - #@ end - checkpoint: false - #@ end - #@ if data.values.eventProvider == "horizon": - #@ horizon = json.decode(data.values.config)["ESCAPED_HORIZON_SERVER"] - #@ horizonDomain = json.decode(data.values.config)["HORIZON_DOMAIN"] - #@ horizonUsername = json.decode(data.values.config)["ESCAPED_HORIZON_USERNAME"] - #@ horizonPassword = json.decode(data.values.config)["ESCAPED_HORIZON_PASSWORD"] - #@ horizonNoTLS = json.decode(data.values.config)["HORIZON_DISABLE_TLS"] - name: veba-horizon-01 - type: horizon - horizon: - address: #@ "https://"+horizon - auth: - type: active_directory - activeDirectoryAuth: - domain: #@ horizonDomain - username: #@ horizonUsername - password: #@ horizonPassword - #@ if horizonNoTLS == "True": - insecureSSL: true - #@ else: - insecureSSL: false - #@ end - #@ end - #@ if data.values.eventProvider == "webhook": - #@ webhookUsername = json.decode(data.values.config)["ESCAPED_WEBHOOK_USERNAME"] - #@ webhookPassword = json.decode(data.values.config)["ESCAPED_WEBHOOK_PASSWORD"] name: veba-webhook-01 type: webhook webhook: @@ -77,7 +32,6 @@ eventProvider: username: #@ webhookUsername password: #@ webhookPassword #@ end - #@ end kind: RouterConfig metadata: name: #@ routerName diff --git a/files/configs/event-router/templates/vmware-event-router-k8s-template.yaml b/files/configs/event-router/templates/vmware-event-router-k8s-template.yaml index 435df555..0a074cc2 100644 --- a/files/configs/event-router/templates/vmware-event-router-k8s-template.yaml +++ b/files/configs/event-router/templates/vmware-event-router-k8s-template.yaml @@ -56,12 +56,10 @@ spec: name: metrics protocol: TCP targetPort: 8082 - #@ if data.values.eventProvider == "webhook": - port: 8080 name: webhook protocol: TCP targetPort: 8080 - #@ end selector: app: #@ routerName sessionAffinity: None diff --git a/files/configs/horizon-source/templates/horizon-source-template.yml b/files/configs/horizon-source/templates/horizon-source-template.yml new file mode 100644 index 00000000..5aa09323 --- /dev/null +++ b/files/configs/horizon-source/templates/horizon-source-template.yml @@ -0,0 +1,27 @@ +#@ load("@ytt:overlay", "overlay") +#@ load("@ytt:data", "data") + +#@ load("@ytt:json", "json") +#@ horizon = json.decode(data.values.config)["ESCAPED_HORIZON_SERVER"] +#@ horizonTls = json.decode(data.values.config)["HORIZON_DISABLE_TLS"] + +apiVersion: sources.tanzu.vmware.com/v1alpha1 +kind: HorizonSource +metadata: + name: horizon-source +spec: + sink: + ref: + apiVersion: eventing.knative.dev/v1 + kind: Broker + name: default + namespace: vmware-functions + address: #@ "https://"+horizon + #@ if horizonTls == "True": + skipTLSVerify: true + #@ else: + skipTLSVerify: false + #@ end + secretRef: + name: horizon-creds + serviceAccountName: horizon-source-sa \ No newline at end of file diff --git a/files/downloads/tanzu-sources/overlay.yaml b/files/downloads/tanzu-sources/overlay.yaml new file mode 100644 index 00000000..15332bc5 --- /dev/null +++ b/files/downloads/tanzu-sources/overlay.yaml @@ -0,0 +1,50 @@ +#@ load("@ytt:overlay", "overlay") +#@ load("@ytt:data", "data") + +#@ load("@ytt:json", "json") +#@ tanzuSourcesDebug = json.decode(data.values.config)["TANZU_SOURCES_DEBUG"] + +#@ def updates(): + #@ if tanzuSourcesDebug == "True": + level: "debug" + #@ end +#@ end + +#@overlay/match by=overlay.subset({"kind":"Deployment", "metadata": {"name": "horizon-source-controller", "namespace": "vmware-sources"}}) +--- +spec: + template: + spec: + containers: + #@overlay/match by=overlay.all, expects="1+" + - + #@overlay/match missing_ok=True + imagePullPolicy: IfNotPresent + +#@overlay/match by=overlay.subset({"kind":"Deployment", "metadata": {"name": "horizon-source-webhook", "namespace": "vmware-sources"}}) +--- +spec: + template: + spec: + containers: + #@overlay/match by=overlay.all, expects="1+" + - + #@overlay/match missing_ok=True + imagePullPolicy: IfNotPresent + +#@overlay/match by=overlay.subset({"kind":"Deployment", "metadata": {"name": "vsphere-source-webhook", "namespace": "vmware-sources"}}) +--- +spec: + template: + spec: + containers: + #@overlay/match by=overlay.all, expects="1+" + - + #@overlay/match missing_ok=True + imagePullPolicy: IfNotPresent + +#@overlay/match by=overlay.subset({"metadata":{"name":"config-logging"}}), expects="1+" +--- +data: + #@overlay/replace via=lambda a,_: json.encode(overlay.apply(json.decode(a), updates()), indent=2) + zap-logger-config: \ No newline at end of file diff --git a/files/setup-01-os.sh b/files/setup-01-os.sh index 489a7948..2dbedb3f 100755 --- a/files/setup-01-os.sh +++ b/files/setup-01-os.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # OS Specific Settings where ordering does not matter diff --git a/files/setup-010-veba-ui.sh b/files/setup-010-veba-ui.sh index 2d422951..d79b0604 100755 --- a/files/setup-010-veba-ui.sh +++ b/files/setup-010-veba-ui.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Knative UI diff --git a/files/setup-011-fluentbit.sh b/files/setup-011-fluentbit.sh index f31746e1..987b6829 100755 --- a/files/setup-011-fluentbit.sh +++ b/files/setup-011-fluentbit.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup FluentBit diff --git a/files/setup-012-cadvisor.sh b/files/setup-012-cadvisor.sh index 3a4a1262..5f2c1468 100755 --- a/files/setup-012-cadvisor.sh +++ b/files/setup-012-cadvisor.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Google cAdvisor diff --git a/files/setup-02-proxy.sh b/files/setup-02-proxy.sh index 47bd3f43..8cd4a61d 100755 --- a/files/setup-02-proxy.sh +++ b/files/setup-02-proxy.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Network Proxy for both OS and Containerd diff --git a/files/setup-03-network.sh b/files/setup-03-network.sh index 4d582516..0131fd9e 100755 --- a/files/setup-03-network.sh +++ b/files/setup-03-network.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Networking diff --git a/files/setup-04-kubernetes.sh b/files/setup-04-kubernetes.sh index 414aa7c9..f65ee1d1 100755 --- a/files/setup-04-kubernetes.sh +++ b/files/setup-04-kubernetes.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Containerd and Kubernetes diff --git a/files/setup-05-knative.sh b/files/setup-05-knative.sh index e01e9dec..1623fb5c 100755 --- a/files/setup-05-knative.sh +++ b/files/setup-05-knative.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Knative @@ -10,6 +10,7 @@ echo -e "\e[92mDeploying Knative Serving ..." > /dev/console kubectl apply -f /root/download/serving-crds.yaml kubectl apply -f /root/download/serving-core.yaml kubectl wait deployment --all --timeout=${KUBECTL_WAIT} --for=condition=Available -n knative-serving + kubectl apply -f /root/download/knative-contour.yaml kubectl apply -f /root/download/net-contour.yaml kubectl patch configmap/config-network --namespace knative-serving --type merge --patch '{"data":{"ingress.class":"contour.ingress.networking.knative.dev"}}' @@ -19,7 +20,7 @@ kubectl wait deployment --all --timeout=${KUBECTL_WAIT} --for=condition=Availabl echo -e "\e[92mDeploying Knative Eventing ..." > /dev/console kubectl apply -f /root/download/eventing-crds.yaml kubectl apply -f /root/download/eventing-core.yaml -kubectl wait pod --timeout=${KUBECTL_WAIT} --for=condition=Ready -l '!job-name' -n knative-eventing +kubectl wait deployment --all --timeout=${KUBECTL_WAIT} --for=condition=Available -n knative-eventing echo -e "\e[92mDeploying RabbitMQ Cluster Operator ..." > /dev/console kubectl apply -f /root/download/cluster-operator.yml @@ -42,6 +43,7 @@ RABBITMQ_CONFIG_TEMPLATE=/root/config/knative/templates/rabbit-template.yaml RABBITMQ_CONFIG=/root/config/knative/rabbit.yaml ytt --data-value-file bom=${VEBA_BOM_FILE} -f ${RABBITMQ_CONFIG_TEMPLATE} > ${RABBITMQ_CONFIG} kubectl apply -f ${RABBITMQ_CONFIG} +kubectl wait --for=condition=Ready broker/default --timeout=${KUBECTL_WAIT} -n vmware-functions echo -e "\e[92mDeploying Sockeye ..." > /dev/console @@ -55,4 +57,23 @@ SOCKEYE_CONFIG=/root/config/knative/sockeye.yaml # Apply YTT overlay ytt --data-value-file bom=${VEBA_BOM_FILE} -f ${SOCKEYE_TEMPLATE} > ${SOCKEYE_CONFIG} -kubectl -n vmware-functions apply -f ${SOCKEYE_CONFIG} \ No newline at end of file +kubectl -n vmware-functions apply -f ${SOCKEYE_CONFIG} + +# Install Tanzu Sources for Knative +echo -e "\e[92mDeploying Tanzu Sources for Knative ..." > /dev/console +TANZU_SOURCES_TEMPLATE=/root/download/tanzu-sources/templates/tanzu-sources-release.yaml +TANZU_SOURCES_OVERLAY=/root/download/tanzu-sources/overlay.yaml +TANZU_SOURCES_CONFIG=/root/download/tanzu-sources-release.yaml +ytt --data-value-file config=${VEBA_CONFIG_FILE} -f ${TANZU_SOURCES_OVERLAY} -f ${TANZU_SOURCES_TEMPLATE} > ${TANZU_SOURCES_CONFIG} +kubectl apply -f ${TANZU_SOURCES_CONFIG} + +# Wait for all controllers/webhook to be ready +kubectl wait --for=condition=ready pod -l app=horizon-source-controller --timeout=${KUBECTL_WAIT} -n vmware-sources +kubectl wait --for=condition=ready pod -l app=horizon-source-webhook --timeout=${KUBECTL_WAIT} -n vmware-sources +kubectl wait --for=condition=ready pod -l app=vsphere-source-webhook --timeout=${KUBECTL_WAIT} -n vmware-sources + +# Enable debug logs for tanzu sources +if [ ${TANZU_SOURCES_DEBUG} -eq "True" ]; then + kubectl -n vmware-sources get cm config-logging -o yaml > /tmp/vmware-sources-config-logging.yaml + sed -i 's/"level": "info"/"level": "debug"/g' /tmp/vmware-sources-config-logging.yaml +fi \ No newline at end of file diff --git a/files/setup-06-event-processor.sh b/files/setup-06-event-processor.sh deleted file mode 100755 index bb604a76..00000000 --- a/files/setup-06-event-processor.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. -# SPDX-License-Identifier: BSD-2 - -# Setup Event Processor - -set -euo pipefail - -kubectl -n vmware-system create secret generic basic-auth \ - --from-literal=basic-auth-user=admin \ - --from-literal=basic-auth-password="${ROOT_PASSWORD}" - -VEBA_CONFIG_FILE=/root/config/veba-config.json - -echo -e "\e[92mSetting up Knative Processor ..." > /dev/console -grep -q "Processor:" /etc/veba-release || echo "Processor: Knative" >> /etc/veba-release - -for EVENT_PROVIDER in ${EVENT_PROVIDERS[@]}; -do - # Setup Event Processor Configuration File - EVENT_ROUTER_CONFIG_TEMPLATE=/root/config/event-router/templates/vmware-event-router-config-template.yaml - EVENT_ROUTER_CONFIG=/root/config/event-router/vmware-event-router-config-${EVENT_PROVIDER}.yaml - - ytt --data-value eventProvider=${EVENT_PROVIDER} --data-value-file config=${VEBA_CONFIG_FILE} -f ${EVENT_ROUTER_CONFIG_TEMPLATE} > ${EVENT_ROUTER_CONFIG} -done \ No newline at end of file diff --git a/files/setup-06-horizon-sources.sh b/files/setup-06-horizon-sources.sh new file mode 100755 index 00000000..b335ea89 --- /dev/null +++ b/files/setup-06-horizon-sources.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Copyright 2023 VMware, Inc. All rights reserved. +# SPDX-License-Identifier: BSD-2 + +# Setup Horizon Sources + +set -euo pipefail + +# Create Horizon Secret +echo -e "\e[92mCreating Horizon Secret ..." > /dev/console +kubectl -n vmware-functions create secret generic horizon-creds --from-literal=domain=${HORIZON_DOMAIN} --from-literal=username=${HORIZON_USERNAME} --from-literal=password=${HORIZON_PASSWORD} + +# Create vSphere Source +echo -e "\e[92mCreating Horizon Source ..." > /dev/console + +HORIZON_SOURCE_CONFIG_TEMPLATE=/root/config/horizon-source/templates/horizon-source-template.yml +HORIZON_SOURCE_CONFIG=/root/config/horizon-source/horizon-source.yml + +ytt --data-value-file config=${VEBA_CONFIG_FILE} -f ${HORIZON_SOURCE_CONFIG_TEMPLATE} > ${HORIZON_SOURCE_CONFIG} + +kubectl -n vmware-functions create -f ${HORIZON_SOURCE_CONFIG} +kubectl wait --for=condition=Available deploy/horizon-source-adapter --timeout=${KUBECTL_WAIT} -n vmware-functions diff --git a/files/setup-06-vsphere-sources.sh b/files/setup-06-vsphere-sources.sh new file mode 100755 index 00000000..1d6557be --- /dev/null +++ b/files/setup-06-vsphere-sources.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# Copyright 2023 VMware, Inc. All rights reserved. +# SPDX-License-Identifier: BSD-2 + +# Setup vSphere Sources + +set -euo pipefail + +echo -e "\e[92mCreating vSphere Secret ..." > /dev/console +# Create vSphere Secret +if [ ${VCENTER_DISABLE_TLS} == "True" ]; then + kn vsphere auth create \ + --namespace vmware-functions \ + --username ${VCENTER_USERNAME} \ + --password ${VCENTER_PASSWORD} \ + --name vcsa-creds \ + --verify-url https://${VCENTER_SERVER} \ + --verify-insecure +else + kn vsphere auth create \ + --namespace vmware-functions \ + --username ${VCENTER_USERNAME} \ + --password ${VCENTER_PASSWORD} \ + --name vcsa-creds \ + --verify-url https://${VCENTER_SERVER} +fi + +echo -e "\e[92mCreating vSphere Source ..." > /dev/console +# Create vSphere Source + +BROKER_SINK_URI=$(kubectl -n vmware-functions get broker default -o jsonpath='{.status.address.url}') + +if [ ${VCENTER_DISABLE_TLS} == "True" ]; then + kn vsphere source create \ + --namespace vmware-functions \ + --name vcsa-source \ + --vc-address https://${VCENTER_SERVER} \ + --skip-tls-verify \ + --secret-ref vcsa-creds \ + --sink-uri ${BROKER_SINK_URI} \ + --encoding json \ + --checkpoint-age ${VCENTER_CHECKPOINTING_AGE}s \ + --checkpoint-period ${VCENTER_CHECKPOINTING_PERIOD}s +else + kn vsphere source create \ + --namespace vmware-functions \ + --name vcsa-source \ + --vc-address https://${VCENTER_SERVER} \ + --secret-ref vcsa-creds \ + --sink-uri ${BROKER_SINK_URI} \ + --encoding json \ + --checkpoint-age ${VCENTER_CHECKPOINTING_AGE}s \ + --checkpoint-period ${VCENTER_CHECKPOINTING_PERIOD}s +fi + +kubectl wait --for=condition=ready vspheresource.sources.tanzu.vmware.com/vcsa-source --timeout=${KUBECTL_WAIT} -n vmware-functions +kubectl wait --for=condition=ready vspherebinding.sources.tanzu.vmware.com/vcsa-source-vspherebinding --timeout=${KUBECTL_WAIT} -n vmware-functions + diff --git a/files/setup-07-event-router-webhook.sh b/files/setup-07-event-router-webhook.sh new file mode 100755 index 00000000..9678f52a --- /dev/null +++ b/files/setup-07-event-router-webhook.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Copyright 2023 VMware, Inc. All rights reserved. +# SPDX-License-Identifier: BSD-2 + +# Setup VMware Event Router Provider Webhook + +set -euo pipefail + +VEBA_CONFIG_FILE=/root/config/veba-config.json +VEBA_BOM_FILE=/root/config/veba-bom.json +EVENT_PROVIDER="webhook" + +echo -e "\e[92mDeploying VMware Event Router Provider ${EVENT_PROVIDER} ..." > /dev/console +grep -q "Processor:" /etc/veba-release || echo "Processor: Knative" >> /etc/veba-release + +# Setup Event Processor Configuration File +EVENT_ROUTER_CONFIG_TEMPLATE=/root/config/event-router/templates/vmware-event-router-config-template.yaml +EVENT_ROUTER_CONFIG=/root/config/event-router/vmware-event-router-config-${EVENT_PROVIDER}.yaml + +ytt --data-value eventProvider=${EVENT_PROVIDER} --data-value-file config=${VEBA_CONFIG_FILE} -f ${EVENT_ROUTER_CONFIG_TEMPLATE} > ${EVENT_ROUTER_CONFIG} + +kubectl -n vmware-system create secret generic vmware-event-router-config-${EVENT_PROVIDER} --from-file=${EVENT_ROUTER_CONFIG} + +# Event Router Config files +EVENT_ROUTER_K8S_TEMPLATE=/root/config/event-router/templates/vmware-event-router-k8s-template.yaml +EVENT_ROUTER_K8S_CONFIG=/root/config/event-router/vmware-event-router-k8s-${EVENT_PROVIDER}.yaml + +# Apply YTT overlay +ytt --data-value eventProvider=${EVENT_PROVIDER} --data-value-file bom=${VEBA_BOM_FILE} -f ${EVENT_ROUTER_K8S_TEMPLATE} > ${EVENT_ROUTER_K8S_CONFIG} + +kubectl apply -f /root/config/event-router/vmware-event-router-clusterrole.yaml +kubectl -n vmware-system apply -f ${EVENT_ROUTER_K8S_CONFIG} +kubectl wait deployment --all --timeout=${KUBECTL_WAIT} --for=condition=Available -n vmware-system \ No newline at end of file diff --git a/files/setup-07-event-router.sh b/files/setup-07-event-router.sh deleted file mode 100755 index 166ce330..00000000 --- a/files/setup-07-event-router.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. -# SPDX-License-Identifier: BSD-2 - -# Setup VMware Event Router - -set -euo pipefail - -for EVENT_PROVIDER in ${EVENT_PROVIDERS[@]}; -do - echo -e "\e[92mDeploying VMware Event Router for ${EVENT_PROVIDER} ..." > /dev/console - EVENT_ROUTER_CONFIG=/root/config/event-router/vmware-event-router-config-${EVENT_PROVIDER}.yaml - - kubectl -n vmware-system create secret generic vmware-event-router-config-${EVENT_PROVIDER} --from-file=${EVENT_ROUTER_CONFIG} - - VEBA_BOM_FILE=/root/config/veba-bom.json - - # Event Router Config files - EVENT_ROUTER_K8S_TEMPLATE=/root/config/event-router/templates/vmware-event-router-k8s-template.yaml - EVENT_ROUTER_K8S_CONFIG=/root/config/event-router/vmware-event-router-k8s-${EVENT_PROVIDER}.yaml - - # Apply YTT overlay - ytt --data-value eventProvider=${EVENT_PROVIDER} --data-value-file bom=${VEBA_BOM_FILE} -f ${EVENT_ROUTER_K8S_TEMPLATE} > ${EVENT_ROUTER_K8S_CONFIG} - - kubectl apply -f /root/config/event-router/vmware-event-router-clusterrole.yaml - kubectl -n vmware-system apply -f ${EVENT_ROUTER_K8S_CONFIG} - kubectl wait deployment --all --timeout=${KUBECTL_WAIT} --for=condition=Available -n vmware-system -done \ No newline at end of file diff --git a/files/setup-08-tinywww.sh b/files/setup-08-tinywww.sh index d805351c..33707183 100755 --- a/files/setup-08-tinywww.sh +++ b/files/setup-08-tinywww.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Deploy TinyWWW Pod @@ -13,6 +13,11 @@ VEBA_CONFIG_FILE=/root/config/veba-config.json TINYWWW_TEMPLATE=/root/config/tinywww/templates/tinywww-template.yaml TINYWWW_CONFIG=/root/config/tinywww/tinywww.yaml +# Basic Auth for TinyWWW endpoints +kubectl -n vmware-system create secret generic basic-auth \ + --from-literal=basic-auth-user=admin \ + --from-literal=basic-auth-password="${ROOT_PASSWORD}" + # Apply YTT overlay ytt --data-value-file bom=${VEBA_BOM_FILE} --data-value-file config=${VEBA_CONFIG_FILE} -f ${TINYWWW_TEMPLATE} > ${TINYWWW_CONFIG} diff --git a/files/setup-09-ingress.sh b/files/setup-09-ingress.sh index b4379ab8..9c1f44ca 100755 --- a/files/setup-09-ingress.sh +++ b/files/setup-09-ingress.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Contour / Ingress diff --git a/files/setup-098-dcui-endpoints.sh b/files/setup-098-dcui-endpoints.sh index bd94f5c3..432704d2 100755 --- a/files/setup-098-dcui-endpoints.sh +++ b/files/setup-098-dcui-endpoints.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 set -euo pipefail @@ -19,16 +19,6 @@ if [ ${WEBHOOK_ENABLED} == "True" ]; then echo "Appliance Configuration,Webhook,/webhook" >> ${DCUI_ENDPOINTS_FILE} fi -# Default vCenter Provider Stats endpoint is common for all deployments -cat >> ${DCUI_ENDPOINTS_FILE} <> ${DCUI_ENDPOINTS_FILE} -fi - # For Webhook Provider if [ ${WEBHOOK_ENABLED} == "True" ]; then echo "Appliance Provider Stats,Webhook,/stats/webhook" >> ${DCUI_ENDPOINTS_FILE} diff --git a/files/setup-099-banner.sh b/files/setup-099-banner.sh index 60bd59f0..c0e80e23 100755 --- a/files/setup-099-banner.sh +++ b/files/setup-099-banner.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 # Setup Login Banner diff --git a/files/setup.sh b/files/setup.sh index cbf93969..1b1da5e9 100755 --- a/files/setup.sh +++ b/files/setup.sh @@ -1,11 +1,12 @@ #!/bin/bash -# Copyright 2019 VMware, Inc. All rights reserved. +# Copyright 2023 VMware, Inc. All rights reserved. # SPDX-License-Identifier: BSD-2 set -euo pipefail # Extract all OVF Properties VEBA_DEBUG=$(/root/setup/getOvfProperty.py "guestinfo.debug") +TANZU_SOURCES_DEBUG=$(/root/setup/getOvfProperty.py "guestinfo.tanzu_sources_debug") HOSTNAME=$(/root/setup/getOvfProperty.py "guestinfo.hostname" | tr '[:upper:]' '[:lower:]') IP_ADDRESS=$(/root/setup/getOvfProperty.py "guestinfo.ipaddress") NETMASK=$(/root/setup/getOvfProperty.py "guestinfo.netmask" | awk -F ' ' '{print $1}') @@ -26,6 +27,8 @@ VCENTER_PASSWORD=$(/root/setup/getOvfProperty.py "guestinfo.vcenter_password") VCENTER_USERNAME_FOR_VEBA_UI=$(/root/setup/getOvfProperty.py "guestinfo.vcenter_veba_ui_username") VCENTER_PASSWORD_FOR_VEBA_UI=$(/root/setup/getOvfProperty.py "guestinfo.vcenter_veba_ui_password") VCENTER_DISABLE_TLS=$(/root/setup/getOvfProperty.py "guestinfo.vcenter_disable_tls_verification") +VCENTER_CHECKPOINTING_AGE=$(/root/setup/getOvfProperty.py "guestinfo.vcenter_checkpoint_age") +VCENTER_CHECKPOINTING_PERIOD=$(/root/setup/getOvfProperty.py "guestinfo.vcenter_checkpoint_period") HORIZON_ENABLED=$(/root/setup/getOvfProperty.py "guestinfo.horizon") HORIZON_SERVER=$(/root/setup/getOvfProperty.py "guestinfo.horizon_server") HORIZON_DOMAIN=$(/root/setup/getOvfProperty.py "guestinfo.horizon_domain") @@ -61,17 +64,6 @@ else echo fi - # Determine Event Providers - EVENT_PROVIDERS=("vcenter") - - if [ ${WEBHOOK_ENABLED} == "True" ]; then - EVENT_PROVIDERS+=("webhook") - fi - - if [ ${HORIZON_ENABLED} == "True" ]; then - EVENT_PROVIDERS+=("horizon") - fi - # Customize the POD CIDR Network if provided or else default to 10.10.0.0/16 if [ -z "${POD_NETWORK_CIDR}" ]; then POD_NETWORK_CIDR="10.16.0.0/16" @@ -95,10 +87,11 @@ else ESCAPED_WEBHOOK_PASSWORD=$(eval echo -n '${WEBHOOK_PASSWORD}' | jq -Rs .) ESCAPED_PROXY_PASSWORD=$(eval echo -n '${PROXY_PASSWORD}' | jq -Rs .) - + cat > /root/config/veba-config.json < /dev/console . /root/setup/setup-05-knative.sh - echo -e "\e[92mStarting VMware Event Processor Configuration ..." > /dev/console - . /root/setup/setup-06-event-processor.sh + echo -e "\e[92mStarting vSphere Sources Configuration ..." > /dev/console + . /root/setup/setup-06-vsphere-sources.sh + + if [ ${HORIZON_ENABLED} == "True" ]; then + echo -e "\e[92mStarting Horizon Sources Configuration ..." > /dev/console + . /root/setup/setup-06-horizon-sources.sh + fi - echo -e "\e[92mStarting VMware Event Router Configuration ..." > /dev/console - . /root/setup/setup-07-event-router.sh + if [ ${WEBHOOK_ENABLED} == "True" ]; then + echo -e "\e[92mStarting VMware Event Provider Webhook Configuration ..." > /dev/console + . /root/setup/setup-07-event-router-webhook.sh + fi echo -e "\e[92mStarting TinyWWW Configuration ..." > /dev/console . /root/setup/setup-08-tinywww.sh diff --git a/manual/photon.xml.template b/manual/photon.xml.template index b17c6963..7eaa3b9a 100644 --- a/manual/photon.xml.template +++ b/manual/photon.xml.template @@ -89,6 +89,14 @@ Disable TLS Verification for vCenter Server (required for self-sign certificate) + + + Maximum allowed age (seconds) for replaying events determined by last successful event in checkpoint (default 300s) + + + + Period (seconds) between saving checkpoints (default 10s) + Horizon @@ -158,6 +166,10 @@ Enable Debugging + + + Enable Debugging for Tanzu Sources for Knative + Customize POD CIDR Network (Default 10.10.0.0/16) diff --git a/photon.pkr.hcl b/photon.pkr.hcl index ccc6b330..3e0db69a 100644 --- a/photon.pkr.hcl +++ b/photon.pkr.hcl @@ -14,8 +14,9 @@ source "vmware-iso" "veba" { disk_additional_size = ["25600"] disk_size = "25600" disk_type_id = "thin" + disk_adapter_type = "pvscsi" format = "ovf" - guest_os_type = "Other" + guest_os_type = "vmware-photon-64" headless = false http_directory = "http" insecure_connection = true @@ -32,7 +33,7 @@ source "vmware-iso" "veba" { ssh_password = "${var.guest_password}" ssh_port = 22 ssh_username = "${var.guest_username}" - version = "13" + version = "17" vm_name = "${var.vm_name}" cpus = "${var.numvcpus}" memory = "${var.ramsize}" @@ -114,13 +115,13 @@ build { } provisioner "file" { - destination = "/root/setup/setup-06-event-processor.sh" - source = "files/setup-06-event-processor.sh" + destination = "/root/setup/setup-06-vsphere-sources.sh" + source = "files/setup-06-vsphere-sources.sh" } provisioner "file" { - destination = "/root/setup/setup-07-event-router.sh" - source = "files/setup-07-event-router.sh" + destination = "/root/setup/setup-07-event-router-webhook.sh" + source = "files/setup-07-event-router-webhook.sh" } provisioner "file" { diff --git a/scripts/photon-containers.sh b/scripts/photon-containers.sh index 3b8b76ee..abb41eef 100644 --- a/scripts/photon-containers.sh +++ b/scripts/photon-containers.sh @@ -82,6 +82,12 @@ ytt -f ${KNATIVE_CONTOUR_OVERLAY} -f ${KNATIVE_CONTOUR_TEMPLATE} > ${KNATIVE_CON curl -L https://github.com/knative/net-contour/releases/download/knative-${KNATIVE_CONTOUR_VERSION}/net-contour.yaml -o /root/download/net-contour.yaml +echo '> Downloading Tanzu Sources for Knative ...' +TANZU_SOURCES_VERSION=$(jq -r < ${VEBA_BOM_FILE} '.["tanzu-sources"].gitRepoTag') +TANZU_SOURCES_TEMPLATE=/root/download/tanzu-sources/templates/tanzu-sources-release.yaml +mkdir -p /root/download/tanzu-sources/templates +curl -L https://github.com/vmware-tanzu/sources-for-knative/releases/download/${TANZU_SOURCES_VERSION}/release.yaml -o ${TANZU_SOURCES_TEMPLATE} + echo '> Downloading Local Path Provisioner...' mkdir -p /root/download/local-provisioner/templates LOCAL_PROVISIONER_VERSION=$(jq -r < ${VEBA_BOM_FILE} '.["csi"].gitRepoTag') diff --git a/scripts/photon-settings.sh b/scripts/photon-settings.sh index d54d32ea..9754f297 100644 --- a/scripts/photon-settings.sh +++ b/scripts/photon-settings.sh @@ -56,6 +56,15 @@ wget https://github.com/knative/client/releases/download/knative-${KNATIVE_VERSI chmod +x kn-linux-amd64 mv kn-linux-amd64 /usr/local/bin/kn +echo '> Downloading Kn vSphere CLI' +KNATIVE_VSPHERE_VERSION=$(jq -r < ${VEBA_BOM_FILE} '.["knative-vsphere-cli"].version') +KNATIVE_VSPHERE_NUMERIC_VERSION=$(echo ${KNATIVE_VSPHERE_VERSION} | sed 's/v//g') +curl -L https://github.com/vmware-tanzu/sources-for-knative/releases/download/${KNATIVE_VSPHERE_VERSION}/kn-vsphere_${KNATIVE_VSPHERE_NUMERIC_VERSION}_Linux_x86_64.tar.gz -o /root/kn-vsphere_${KNATIVE_VSPHERE_NUMERIC_VERSION}_Linux_x86_64.tar.gz +tar -zxvf /root/kn-vsphere_${KNATIVE_VSPHERE_NUMERIC_VERSION}_Linux_x86_64.tar.gz -C /root +mv /root/kn-vsphere_${KNATIVE_VSPHERE_NUMERIC_VERSION}_Linux_x86_64/kn-vsphere /usr/local/bin/kn-vsphere +chmod +x /usr/local/bin/kn-vsphere +rm -rf /root/kn-vsphere_${KNATIVE_VSPHERE_NUMERIC_VERSION}_Linux_x86_64* + echo '> Downloading YTT CLI' YTT_VERSION=$(jq -r < ${VEBA_BOM_FILE} '.["ytt-cli"].version') wget https://github.com/vmware-tanzu/carvel-ytt/releases/download/${YTT_VERSION}/ytt-linux-amd64 diff --git a/test/deploy_veba_knative_processor.sh b/test/deploy_veba_knative_processor.sh index 6674a83e..25c16eb8 100755 --- a/test/deploy_veba_knative_processor.sh +++ b/test/deploy_veba_knative_processor.sh @@ -4,7 +4,11 @@ set -euo pipefail -# Sample Shell Script to test deployment of VEBA w/Knative Processor +# Sample Shell Script to test deployment of VEBA w/Knative Processor with the following: +# vSphere Sources ✔️ +# Horizon Sources x +# vSphere VEBA UI Plugin x +# Webhook Processor x # To run this on Windows, you can use a terminal like Git BASH or WSL Ubuntu # OVFTOOL_BIN_PATH="/C/Program Files/VMware/VMware OVF Tool/ovftool.exe" @@ -40,6 +44,7 @@ VEBA_HTTPS_PROXY="" VEBA_PROXY_USERNAME="" VEBA_PROXY_PASSWORD="" VEBA_NOPROXY="" +VEBA_TANZU_SOURCES_DEBUG="False" ### DO NOT EDIT BEYOND HERE ### @@ -71,5 +76,6 @@ VEBA_NOPROXY="" --prop:guestinfo.vcenter_password=${VEBA_VCENTER_PASSWORD} \ --prop:guestinfo.vcenter_disable_tls_verification=${VEBA_VCENTER_DISABLE_TLS} \ --prop:guestinfo.debug=${VEBA_DEBUG} \ + --prop:guestinfo.tanzu_sources_debug=${VEBA_TANZU_SOURCES_DEBUG} \ "${VEBA_OVA}" \ "vi://${DEPLOYMENT_TARGET_USERNAME}:${DEPLOYMENT_TARGET_PASSWORD}@${DEPLOYMENT_TARGET_ADDRESS}/${DEPLOYMENT_TARGET_DATACENTER}/host/${DEPLOYMNET_TARGET_CLUSTER}" diff --git a/test/deploy_veba_knative_processor_veba_ui.sh b/test/deploy_veba_knative_processor_veba_ui.sh index 42458e8f..9a30124c 100755 --- a/test/deploy_veba_knative_processor_veba_ui.sh +++ b/test/deploy_veba_knative_processor_veba_ui.sh @@ -4,7 +4,11 @@ set -euo pipefail -# Sample Shell Script to test deployment of VEBA w/Knative Processor +# Sample Shell Script to test deployment of VEBA w/Knative Processor with the following: +# vSphere Sources ✔️ +# Horizon Sources x +# vSphere VEBA UI Plugin ✔️ +# Webhook Processor x # To run this on Windows, you can use a terminal like Git BASH or WSL Ubuntu # OVFTOOL_BIN_PATH="/C/Program Files/VMware/VMware OVF Tool/ovftool.exe" @@ -42,6 +46,7 @@ VEBA_HTTPS_PROXY="" VEBA_PROXY_USERNAME="" VEBA_PROXY_PASSWORD="" VEBA_NOPROXY="" +VEBA_TANZU_SOURCES_DEBUG="False" ### DO NOT EDIT BEYOND HERE ### @@ -75,5 +80,6 @@ VEBA_NOPROXY="" --prop:guestinfo.vcenter_veba_ui_password=${VEBA_UI_PASSWORD} \ --prop:guestinfo.vcenter_disable_tls_verification=${VEBA_VCENTER_DISABLE_TLS} \ --prop:guestinfo.debug=${VEBA_DEBUG} \ + --prop:guestinfo.tanzu_sources_debug=${VEBA_TANZU_SOURCES_DEBUG} \ "${VEBA_OVA}" \ "vi://${DEPLOYMENT_TARGET_USERNAME}:${DEPLOYMENT_TARGET_PASSWORD}@${DEPLOYMENT_TARGET_ADDRESS}/${DEPLOYMENT_TARGET_DATACENTER}/host/${DEPLOYMNET_TARGET_CLUSTER}" diff --git a/test/deploy_veba_knative_processor_veba_ui_webhook.sh b/test/deploy_veba_knative_processor_veba_ui_webhook.sh index fc37add4..99945b8b 100755 --- a/test/deploy_veba_knative_processor_veba_ui_webhook.sh +++ b/test/deploy_veba_knative_processor_veba_ui_webhook.sh @@ -4,7 +4,11 @@ set -euo pipefail -# Sample Shell Script to test deployment of VEBA w/Knative Processor +# Sample Shell Script to test deployment of VEBA w/Knative Processor with the following: +# vSphere Sources ✔️ +# Horizon Sources x +# vSphere VEBA UI Plugin ✔️ +# Webhook Processor ✔️ # To run this on Windows, you can use a terminal like Git BASH or WSL Ubuntu # OVFTOOL_BIN_PATH="/C/Program Files/VMware/VMware OVF Tool/ovftool.exe" @@ -46,6 +50,7 @@ VEBA_NOPROXY="" VEBA_WEBHOOK="True" VEBA_WEBHOOK_USERNAME="veba" VEBA_WEBHOOK_PASSWORD="V3b@" +VEBA_TANZU_SOURCES_DEBUG="False" ### DO NOT EDIT BEYOND HERE ### @@ -82,5 +87,6 @@ VEBA_WEBHOOK_PASSWORD="V3b@" --prop:guestinfo.webhook_username=${VEBA_WEBHOOK_USERNAME} \ --prop:guestinfo.webhook_password=${VEBA_WEBHOOK_PASSWORD} \ --prop:guestinfo.debug=${VEBA_DEBUG} \ + --prop:guestinfo.tanzu_sources_debug=${VEBA_TANZU_SOURCES_DEBUG} \ "${VEBA_OVA}" \ "vi://${DEPLOYMENT_TARGET_USERNAME}:${DEPLOYMENT_TARGET_PASSWORD}@${DEPLOYMENT_TARGET_ADDRESS}/${DEPLOYMENT_TARGET_DATACENTER}/host/${DEPLOYMNET_TARGET_CLUSTER}" diff --git a/test/deploy_veba_knative_processor_veba_ui_webhook_horizon.sh b/test/deploy_veba_knative_processor_veba_ui_webhook_horizon.sh new file mode 100755 index 00000000..b1977ea2 --- /dev/null +++ b/test/deploy_veba_knative_processor_veba_ui_webhook_horizon.sh @@ -0,0 +1,102 @@ +#!/bin/bash +# Copyright 2020 VMware, Inc. All rights reserved. +# SPDX-License-Identifier: BSD-2 + +set -euo pipefail + +# Sample Shell Script to test deployment of VEBA w/Knative Processor with the following: +# vSphere Sources ✔️ +# Horizon Sources ✔️ +# vSphere VEBA UI Plugin ✔️ +# Webhook Processor ✔️ + +# To run this on Windows, you can use a terminal like Git BASH or WSL Ubuntu +# OVFTOOL_BIN_PATH="/C/Program Files/VMware/VMware OVF Tool/ovftool.exe" +OVFTOOL_BIN_PATH="/Applications/VMware OVF Tool/ovftool" +VEBA_OVA="../output-vmware-iso/VMware_Event_Broker_Appliance_v0.7.0.ova" + +# vCenter +DEPLOYMENT_TARGET_ADDRESS="192.168.30.3" +DEPLOYMENT_TARGET_USERNAME="administrator@vsphere.local" +DEPLOYMENT_TARGET_PASSWORD="VMware1!" +DEPLOYMENT_TARGET_DATACENTER="Primp-Datacenter" +DEPLOYMNET_TARGET_CLUSTER="Supermicro-Cluster" + +VEBA_NAME="VEBA-TEST-KNATIVE-PROCESSOR-WITH-VEBA-UI-AND-WEBHOOK" +VEBA_IP="192.168.30.9" +VEBA_HOSTNAME="veba.primp-industries.local" +VEBA_PREFIX="24 (255.255.255.0)" +VEBA_GW="192.168.30.1" +VEBA_DNS="192.168.30.2" +VEBA_DNS_DOMAIN="primp-industries.local" +VEBA_NTP="pool.ntp.org" +VEBA_OS_PASSWORD='VMware1!' +VEBA_ENABLE_SSH="True" +VEBA_NETWORK="VM Network" +VEBA_DATASTORE="sm-vsanDatastore" +VEBA_DEBUG="True" +VEBA_VCENTER_SERVER="vcsa.primp-industries.local" +VEBA_UI_USERNAME="veba-ui@vsphere.local" +VEBA_UI_PASSWORD='$VMware1!' +VEBA_VCENTER_USERNAME="veba@vsphere.local" +VEBA_VCENTER_PASSWORD="VMware1!" +VEBA_VCENTER_DISABLE_TLS="True" +VEBA_HORIZON_SERVER="horizon.primp-industries.local" +VEBA_HORIZON_USERNAME="horizon@primp-industries.local" +VEBA_HORIZON_PASSWORD="VMware1!" +VEBA_HORIZON_DOMAIN="primp-industries.local" +VEBA_HORIZON_DISABLE_TLS="True" +VEBA_DOCKER_NETWORK="172.26.0.1/16" +VEBA_HTTP_PROXY="" +VEBA_HTTPS_PROXY="" +VEBA_PROXY_USERNAME="" +VEBA_PROXY_PASSWORD="" +VEBA_NOPROXY="" +VEBA_WEBHOOK="True" +VEBA_WEBHOOK_USERNAME="veba" +VEBA_WEBHOOK_PASSWORD="V3b@" +VEBA_TANZU_SOURCES_DEBUG="False" + +### DO NOT EDIT BEYOND HERE ### + +"${OVFTOOL_BIN_PATH}" \ + --powerOn \ + --noSSLVerify \ + --sourceType=OVA \ + --allowExtraConfig \ + --diskMode=thin \ + --name="${VEBA_NAME}" \ + --net:"VM Network"="${VEBA_NETWORK}" \ + --datastore="${VEBA_DATASTORE}" \ + --prop:guestinfo.ipaddress=${VEBA_IP} \ + --prop:guestinfo.hostname=${VEBA_HOSTNAME} \ + --prop:guestinfo.netmask="${VEBA_PREFIX}" \ + --prop:guestinfo.gateway=${VEBA_GW} \ + --prop:guestinfo.dns=${VEBA_DNS} \ + --prop:guestinfo.domain=${VEBA_DNS_DOMAIN} \ + --prop:guestinfo.ntp=${VEBA_NTP} \ + --prop:guestinfo.http_proxy=${VEBA_HTTP_PROXY} \ + --prop:guestinfo.https_proxy=${VEBA_HTTPS_PROXY} \ + --prop:guestinfo.proxy_username=${VEBA_PROXY_USERNAME} \ + --prop:guestinfo.proxy_password=${VEBA_PROXY_PASSWORD} \ + --prop:guestinfo.no_proxy=${VEBA_NOPROXY} \ + --prop:guestinfo.root_password=${VEBA_OS_PASSWORD} \ + --prop:guestinfo.enable_ssh=${VEBA_ENABLE_SSH} \ + --prop:guestinfo.vcenter_server=${VEBA_VCENTER_SERVER} \ + --prop:guestinfo.vcenter_username=${VEBA_VCENTER_USERNAME} \ + --prop:guestinfo.vcenter_password=${VEBA_VCENTER_PASSWORD} \ + --prop:guestinfo.vcenter_veba_ui_username=${VEBA_UI_USERNAME} \ + --prop:guestinfo.vcenter_veba_ui_password=${VEBA_UI_PASSWORD} \ + --prop:guestinfo.vcenter_disable_tls_verification=${VEBA_VCENTER_DISABLE_TLS} \ + --prop:guestinfo.horizon_server=${VEBA_HORIZON_SERVER} \ + --prop:guestinfo.horizon_domain=${VEBA_HORIZON_DOMAIN} \ + --prop:guestinfo.horizon_username=${VEBA_HORIZON_USERNAME} \ + --prop:guestinfo.horizon_password=${VEBA_HORIZON_PASSWORD} \ + --prop:guestinfo.horizon_disable_tls_verification=${VEBA_HORIZON_DISABLE_TLS} \ + --prop:guestinfo.webhook=${VEBA_WEBHOOK} \ + --prop:guestinfo.webhook_username=${VEBA_WEBHOOK_USERNAME} \ + --prop:guestinfo.webhook_password=${VEBA_WEBHOOK_PASSWORD} \ + --prop:guestinfo.debug=${VEBA_DEBUG} \ + --prop:guestinfo.tanzu_sources_debug=${VEBA_TANZU_SOURCES_DEBUG} \ + "${VEBA_OVA}" \ + "vi://${DEPLOYMENT_TARGET_USERNAME}:${DEPLOYMENT_TARGET_PASSWORD}@${DEPLOYMENT_TARGET_ADDRESS}/${DEPLOYMENT_TARGET_DATACENTER}/host/${DEPLOYMNET_TARGET_CLUSTER}" diff --git a/veba-bom.json b/veba-bom.json index 4d93559d..17f794f2 100644 --- a/veba-bom.json +++ b/veba-bom.json @@ -13,7 +13,7 @@ "gitRepoTag": "v0.0.0", "containers": [{ "name": "projects.registry.vmware.com/veba/veba-ui", - "version": "2802221f" + "version": "c2eecec0" }] }, "antrea": { @@ -83,6 +83,9 @@ "knative-cli": { "version": "v1.8.1" }, + "knative-vsphere-cli": { + "version": "v0.37.1" + }, "knative-serving": { "gitRepoTag": "v1.8.3", "containers": [{ @@ -227,6 +230,30 @@ } ] }, + "tanzu-sources": { + "gitRepoTag": "v0.37.1", + "containers": [{ + "name": "ghcr.io/vmware-tanzu/sources-for-knative/horizon-controller:v0.37.1@sha256", + "version": "ed68579626a4641ea721637ca801ff98eae3b3753449f5a481f63a647d6a5502" + }, + { + "name": "ghcr.io/vmware-tanzu/sources-for-knative/horizon-webhook:v0.37.1@sha256", + "version": "f3cd8353cabf657dd5ff6af035c83f2bcf8ce759480f9cc7853701a4e15577bd" + }, + { + "name": "ghcr.io/vmware-tanzu/sources-for-knative/horizon-adapter:v0.37.1@sha256", + "version": "ea652efce54a1c40b94e4812b464b0cb085b0c5193f0ecbfe0e0f2c88c133495" + }, + { + "name": "ghcr.io/vmware-tanzu/sources-for-knative/vsphere-controller:v0.37.1@sha256", + "version": "a923012b58b81272ced645240f41de07e50656d5083755a23c82d9171d1c0aed" + }, + { + "name": "ghcr.io/vmware-tanzu/sources-for-knative/vsphere-adapter:v0.37.1@sha256", + "version": "c5b0145aa13c5ac9d57524638cc1227abc4ab741978ac223a039e824c97e1083" + } + ] + }, "tinywww": { "gitRepoTag": "master", "containers": [{