This write up focuses at a TKGs install with AVI (NSX advanced loadbalancer) Further down is the TKGm install
A nice network spread sheet is located here
https://github.com/ogelbric/Arcas/blob/main/Arcasdeploymentspreadsheet.xlsx
Send e-mail or [email protected] to get access
https://www.dropbox.com/sh/xxx/AADU_xxxxxxxxxxztl7ESHa?dl=0
Power on once deployed
(In my case http://192.168.1.39:8888)
cd /opt/vmware/arcas/src
arcas --env vsphere --file vsphere.json --avi_configuration --avi_wcp_configuration --enable_wcp
The error can be ignored! If you have this error you may have to pull the kubectl-vsphere binary from the API endpoint
wget --no-check-certificate https://192.168.4.71/wcp/plugin/linux-amd64/vsphere-plugin.zip
And unzip it and place it in /usr/local/bin
/usr/local/bin/kubectl-vsphere login --vsphere-username [email protected] --server=https://192.168.4.71 --insecure-skip-tls-verify
kubectl config use-context 192.168.4.71
kubectl get nodes
arcas --env vsphere --file vsphere.json --create_supervisor_namespace
root@arcas [ /opt/vmware/arcas/src ]# cat vsphere.json
{
"env-spec": {
"vcenter-details": {
"vcenter-address": "192.168.1.50",
"vcenter-sso-user": "[email protected]",
"vcenter-sso-password-base64": "Vk13YXJlMSE=",
"vcenter-datacenter": "avi-Datacenter",
"vcenter-cluster": "avi-Cluster",
"vcenter-datastore": "vsanDatastore",
"content-library-name": "avi",
"avi-ova-name": "controller-21.1.2-9124"
},
"env-type": "tkgs",
"marketplace-spec": {
"refresh-token": ""
},
"saas-endpoints": {
"tmc-details": {
"tmc-availability": "false",
"tmc-refresh-token": "",
"tmc-supervisor-cluster-name": ""
}
},
"infra-components": {
"dns-servers-ip": "192.168.1.7",
"search_domains": "lab.local",
"ntp-servers": "10.128.152.81"
}
},
"tkgs-component-spec": {
"control-plane-size": "MEDIUM",
"avi-mgmt-network": {
"avi-mgmt-network-name": "DVPG-Management Network",
"avi-mgmt-network-gateway-cidr": "192.168.1.1/24",
"avi-mgmt-service-ip-startrange": "192.168.1.60",
"avi-mgmt-service-ip-endrange": "192.168.1.70"
},
"avi-components": {
"avi-password-base64": "Vk13YXJlMSE=",
"avi-backup-passphrase-base64": "Vk13YXJlMSE=",
"avi-controller01-ip": "192.168.1.40",
"avi-controller01-fqdn": "avi.lab.local"
},
"tkgs-vip-network": {
"tkgs-vip-network-name": "DVPG-Frontend Network",
"tkgs-vip-network-gateway-cidr": "192.168.4.1/24",
"tkgs-vip-ip-startrange": "192.168.4.70",
"tkgs-vip-ip-endrange": "192.168.4.100"
},
"tkgs-mgmt-network-spec": {
"tkgs-mgmt-network-name": "DVPG-Management Network",
"tkgs-mgmt-network-gateway-cidr": "192.168.1.1/24",
"tkgs-mgmt-network-starting-ip": "192.168.1.80",
"tkgs-mgmt-network-dns-server": "192.168.1.7",
"tkgs-mgmt-network-search-domains": "lab.local",
"tkgs-mgmt-network-ntp": "10.128.152.81"
},
"tkgs-primary-workload-network": {
"tkgs-primary-workload-network-name": "DVPG-Workload Network",
"tkgs-primary-workload-network-gateway-cidr": "192.168.5.1/24",
"tkgs-primary-workload-network-start-range": "192.168.5.70",
"tkgs-primary-workload-network-end-range": "192.168.5.100",
"tkgs-workload-dns-server": "192.168.1.7",
"tkgs-workload-service-cidr": "10.96.0.0/22"
},
"tkgs-storage-policy-spec": {
"master-storage-policy": "vSAN Default Storage Policy",
"ephemeral-storage-policy": "vSAN Default Storage Policy",
"image-storage-policy": "vSAN Default Storage Policy"
},
"tkgs-vsphere-namespace-spec": {
"tkgs-vsphere-namespace-name": "namespace1000",
"tkgs-vsphere-namespace-description": "",
"tkgs-vsphere-namespace-workload-network": "DVPG-Workload Network",
"tkgs-vsphere-namespace-content-library": "avi",
"tkgs-vsphere-namespace-vm-classes": [
"best-effort-small",
"best-effort-2xlarge",
"best-effort-large",
"best-effort-xsmall",
"best-effort-medium",
"best-effort-xlarge"
],
"tkgs-vsphere-namespace-resource-spec": {},
"tkgs-vsphere-namespace-storage-spec": [
{
"storage-policy": "vSAN Default Storage Policy"
}
],
"tkgs-vsphere-workload-cluster-spec": {
"tkgs-vsphere-namespace-name": "namespace1000",
"tkgs-vsphere-workload-cluster-name": "tkg-cluster",
"allowed-storage-classes": [
"vSAN Default Storage Policy"
],
"default-storage-class": "vSAN Default Storage Policy",
"node-storage-class": "vSAN Default Storage Policy",
"service-cidr-blocks": "192.168.0.0/16",
"pod-cidr-blocks": "10.96.0.0/12",
"control-plane-vm-class": "best-effort-medium",
"worker-vm-class": "best-effort-medium",
"worker-node-count": "3",
"enable-control-planne-ha": "false"
}
}
}
}
This write up focuses at a TKGm install with AVI (NSX advanced loadbalancer)
Arcas is deployed(use previous section for that) And here are the input screens
arcas --env vsphere --file /opt/vmware/arcas/src/vsphere.json --avi_configuration --tkg_mgmt_configuration
journalctl -u arcas.service --follow
arcas --env vsphere --file /opt/vmware/arcas/src/vsphere.json --avi_configuration --tkg_mgmt_configuration --shared_service_configuration --workload_preconfig --workload_deploy
kubectl config get-contexts
kubectl config use-context sharedtkg1-admin@sharedtkg1
kubectl get svc -A
kubectl get httpproxy -A
{
"env-spec": {
"vcenter-details": {
"vcenter-address": "192.168.1.50",
"vcenter-sso-user": "[email protected]",
"vcenter-sso-password-base64": "Vk13YXJlMSE=",
"vcenter-datacenter": "avi-Datacenter",
"vcenter-cluster": "avi-Cluster",
"vcenter-datastore": "vsanDatastore",
"content-library-name": "avi",
"avi-ova-name": "controller-21.1.2-9124",
"resource-pool-name": ""
},
"env-type": "tkgm",
"marketplace-spec": {
"refresh-token": ""
},
"custom-repository-spec": {
"tkg_custom_image_repository": "",
"tkg_custom_image_repository_public_ca_cert": ""
},
"saas-endpoints": {
"tmc-details": {
"tmc-availability": "false",
"tmc-refresh-token": ""
},
"tanzu-observability-details": {
"tanzu-observability-availability": "false",
"tanzu-observability-url": "",
"tanzu-observability-refresh-token": ""
}
},
"infra-components": {
"dns-servers-ip": "192.168.1.7",
"ntp-servers": "10.128.152.81",
"search_domains": "lab.local"
},
"proxy-spec": {
"arcas-vm": {
"enable-proxy": "false",
"http-proxy": "",
"https-proxy": "",
"no-proxy": ""
},
"tkg-mgmt": {
"enable-proxy": "false",
"http-proxy": "",
"https-proxy": "",
"no-proxy": ""
},
"tkg-sharedservice": {
"enable-proxy": "false",
"http-proxy": "",
"https-proxy": "",
"no-proxy": ""
},
"tkg-workload": {
"enable-proxy": "false",
"http-proxy": "",
"https-proxy": "",
"no-proxy": ""
}
}
},
"tkg-component-spec": {
"avi-mgmt-network": {
"avi-mgmt-network-name": "DVPG-Management Network",
"avi-mgmt-network-gateway-cidr": "192.168.1.1/24",
"avi-mgmt-service-ip-startrange": "192.168.1.60",
"avi-mgmt-service-ip-endrange": "192.168.1.70"
},
"tkg-cluster-vip-network": {
"tkg-cluster-vip-network-name": "DVPG-Frontend Network",
"tkg-cluster-vip-network-gateway-cidr": "192.168.4.1/24",
"tkg-cluster-vip-ip-startrange": "192.168.4.70",
"tkg-cluster-vip-ip-endrange": "192.168.4.100"
},
"avi-components": {
"avi-password-base64": "Vk13YXJlMSE=",
"avi-backup-passphrase-base64": "Vk13YXJlMSE=",
"avi-controller01-ip": "192.168.1.40",
"avi-controller01-fqdn": "avi.lab.local"
},
"tkg-mgmt-components": {
"tkg-mgmt-network-name": "DVPG-Management Network",
"tkg-mgmt-gateway-cidr": "192.168.1.1/24",
"tkg-mgmt-cluster-name": "tkgmgt1",
"tkg-mgmt-size": "medium",
"tkg-mgmt-deployment-type": "dev",
"tkg-mgmt-cluster-cidr": "100.96.0.0/11",
"tkg-mgmt-service-cidr": "100.64.0.0/13",
"tkg-mgmt-base-os": "photon",
"tkg-sharedservice-cluster-name": "sharedtkg1",
"tkg-sharedservice-size": "large",
"tkg-sharedservice-deployment-type": "dev",
"tkg-sharedservice-worker-machine-count": "1",
"tkg-sharedservice-cluster-cidr": "100.96.0.0/11",
"tkg-sharedservice-service-cidr": "100.64.0.0/13",
"tkg-sharedservice-base-os": "photon",
"tkg-sharedservice-kube-version": "v1.21.2"
}
},
"tkg-mgmt-data-network": {
"tkg-mgmt-data-network-name": "DVPG-Management Network",
"tkg-mgmt-data-network-gateway-cidr": "192.168.1.1/24",
"tkg-mgmt-avi-service-ip-startrange": "192.168.1.80",
"tkg-mgmt-avi-service-ip-endrange": "192.168.1.100"
},
"tkg-workload-data-network": {
"tkg-workload-data-network-name": "DVPG-Workload Network",
"tkg-workload-data-network-gateway-cidr": "192.168.5.1/24",
"tkg-workload-avi-service-ip-startrange": "192.168.5.70",
"tkg-workload-avi-service-ip-endRange": "192.168.5.100"
},
"tkg-workload-components": {
"tkg-workload-network-name": "DVPG-Workload Network",
"tkg-workload-gateway-cidr": "192.168.5.1/24",
"tkg-workload-cluster-name": "worktkg1",
"tkg-workload-size": "medium",
"tkg-workload-deployment-type": "dev",
"tkg-workload-worker-machine-count": "1",
"tkg-workload-cluster-cidr": "100.96.0.0/11",
"tkg-workload-service-cidr": "100.64.0.0/13",
"tkg-workload-base-os": "photon",
"tkg-workload-kube-version": "v1.21.2",
"tkg-workload-tsm-integration": "false",
"namespace-exclusions": {
"exact-name": "",
"starts-with": ""
}
},
"harbor-spec": {
"enable-harbor-extension": "true",
"harbor-fqdn": "harbor.lab.local",
"harbor-password-base64": "Vk13YXJlMSE=",
"harbor-cert-path": "",
"harbor-certkey-path": ""
},
"tanzu-extensions": {
"enable-extensions": "false",
"tkg-clusters_name": "",
"logging": {
"syslog_endpoint": {
"enable_syslog_endpoint": "false",
"syslog_endpoint_address": "",
"syslog_endpoint_port": "",
"syslog_endpoint_mode": "",
"syslog_endpoint_format": ""
},
"http_endpoint": {
"enable_http_endpoint": "false",
"http_endpoint_address": "",
"http_endpoint_port": "",
"http_endpoint_uri": "",
"http_endpoint_header_key_value": ""
},
"elastic_search_endpoint": {
"enable_elastic_search_endpoint": "false",
"elastic_search_endpoint_address": "",
"elastic_search_endpoint_port": ""
},
"kafka_endpoint": {
"enable_kafka_endpoint": "false",
"kafka_broker_service_name": "",
"kafka_topic_name": ""
},
"splunk_endpoint": {
"enable_splunk_endpoint": "false",
"splunk_endpoint_address": "",
"splunk_endpoint_port": "",
"splunk_endpoint_token": ""
}
},
"monitoring": {
"enable-logging-extension": "false",
"prometheus-fqdn": "",
"prometheus-cert-path": "",
"prometheus-certkey-path": "",
"grafana-fqdn": "",
"grafana-cert-path": "",
"grafana-certkey-path": "",
"grafana-password-base64": ""
}
}
}