Giter Club home page Giter Club logo

arcas's Introduction

Service Installer for VMware Tanzu (Project Arcas 1.1)

TKGm

Network Setup:

Networks .3 .5 .7
.3 = Management
	vCenter 3.50
	Arcas79 3.39
	Avi 3.40
	
	Avi mgt Start 3.60-69
	TKGm mgt start 3.70-89
	TKGm work 3.90-99
	
.5 = Frontend
	AVI .5-60-89
	
.7 = Workload

Gateway = "192.168.3.1"
Gateway = "192.168.5.1"
Gateway = "192.168.7.1"

DNS = "10.197.79.7"
NTP = "10.128.152.81"

OVA Deploy

Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version Version make sure this is harbor.lab.local (my picture is missing the doamin on the hostname!) Version Version Version

Execute on the Arcas VM:

arcas --env vsphere --file /opt/vmware/arcas/src/vsphere-dvs-tkgm.json --avi_configuration --tkg_mgmt_configuration --verbose
kubectl config use-context mgtcluster-admin@mgtcluste

arcas --env vsphere --file /opt/vmware/arcas/src/vsphere-dvs-tkgm.json --avi_configuration --tkg_mgmt_configuration --shared_service_configuration

arcas --env vsphere --file /opt/vmware/arcas/src/vsphere-dvs-tkgm.json --avi_configuration --tkg_mgmt_configuration --shared_service_configuration --workload_preconfig --workload_deploy

Results for each line above:

Version Version Version

YAML file: vsphere-dvs-tkgm.json

{
    "envSpec": {
        "vcenterDetails": {
            "vcenterAddress": "192.168.3.50",
            "vcenterSsoUser": "[email protected]",
            "vcenterSsoPasswordBase64": "Vk13YXJlMSE=",
            "vcenterDatacenter": "avi-Datacenter",
            "vcenterCluster": "avi-Cluster",
            "vcenterDatastore": "vsanDatastore",
            "contentLibraryName": "avi",
            "aviOvaName": "controller-20.1.7-9154",
            "resourcePoolName": ""
        },
        "envType": "tkgm",
        "marketplaceSpec": {
            "refreshToken": ""
        },
        "saasEndpoints": {
            "tmcDetails": {
                "tmcAvailability": "false",
                "tmcRefreshToken": ""
            },
            "tanzuObservabilityDetails": {
                "tanzuObservabilityAvailability": "false",
                "tanzuObservabilityUrl": "",
                "tanzuObservabilityRefreshToken": ""
            }
        },
        "infraComponents": {
            "dnsServersIp": "10.197.79.7",
            "ntpServers": "10.128.152.81",
            "searchDomains": "lab.local"
        },
        "proxySpec": {
            "arcasVm": {
                "enableProxy": "false",
                "httpProxy": "",
                "httpsProxy": "",
                "noProxy": ""
            },
            "tkgMgmt": {
                "enableProxy": "false",
                "httpProxy": "",
                "httpsProxy": "",
                "noProxy": ""
            },
            "tkgSharedservice": {
                "enableProxy": "false",
                "httpProxy": "",
                "httpsProxy": "",
                "noProxy": ""
            },
            "tkgWorkload": {
                "enableProxy": "false",
                "httpProxy": "",
                "httpsProxy": "",
                "noProxy": ""
            }
        }
    },
    "tkgComponentSpec": {
        "aviMgmtNetwork": {
            "aviMgmtNetworkName": "DVPG-Management Network",
            "aviMgmtNetworkGatewayCidr": "192.168.3.1/24",
            "aviMgmtServiceIpStartRange": "192.168.3.60",
            "aviMgmtServiceIpEndRange": "192.168.3.69"
        },
        "tkgClusterVipNetwork": {
            "tkgClusterVipNetworkName": "DVPG-Frontend Network",
            "tkgClusterVipNetworkGatewayCidr": "192.168.5.1/24",
            "tkgClusterVipIpStartRange": "192.168.5.60",
            "tkgClusterVipIpEndRange": "192.168.5.89"
        },
        "aviComponents": {
            "aviPasswordBase64": "Vk13YXJlMSE=",
            "aviBackupPassphraseBase64": "Vk13YXJlMSE=",
            "enableAviHa": "false",
            "aviController01Ip": "192.168.3.40",
            "aviController01Fqdn": "avi.lab.local",
            "aviController02Ip": "",
            "aviController02Fqdn": "",
            "aviController03Ip": "",
            "aviController03Fqdn": "",
            "aviClusterIp": "",
            "aviClusterFqdn": "",
            "aviSize": "small",
            "aviCertPath": "",
            "aviCertKeyPath": ""
        },
        "tkgMgmtComponents": {
            "tkgMgmtNetworkName": "DVPG-Management Network",
            "tkgMgmtGatewayCidr": "192.168.3.1/24",
            "tkgMgmtClusterName": "mgtcluster",
            "tkgMgmtSize": "medium",
            "tkgMgmtCpuSize": "",
            "tkgMgmtMemorySize": "",
            "tkgMgmtStorageSize": "",
            "tkgMgmtDeploymentType": "dev",
            "tkgMgmtClusterCidr": "100.96.0.0/11",
            "tkgMgmtServiceCidr": "100.64.0.0/13",
            "tkgMgmtBaseOs": "photon",
            "tkgSharedserviceClusterName": "sharedcluster",
            "tkgSharedserviceSize": "medium",
            "tkgSharedserviceCpuSize": "",
            "tkgSharedserviceMemorySize": "",
            "tkgSharedserviceStorageSize": "",
            "tkgSharedserviceDeploymentType": "dev",
            "tkgSharedserviceWorkerMachineCount": "2",
            "tkgSharedserviceClusterCidr": "100.96.0.0/11",
            "tkgSharedserviceServiceCidr": "100.64.0.0/13",
            "tkgSharedserviceBaseOs": "photon",
            "tkgSharedserviceKubeVersion": "v1.22.5"
        }
    },
    "tkgMgmtDataNetwork": {
        "tkgMgmtDataNetworkName": "DVPG-Management Network",
        "tkgMgmtDataNetworkGatewayCidr": "192.168.3.1/24",
        "tkgMgmtAviServiceIpStartRange": "192.168.3.70",
        "tkgMgmtAviServiceIpEndRange": "192.168.3.89"
    },
    "tkgWorkloadDataNetwork": {
        "tkgWorkloadDataNetworkName": "DVPG-Management Network",
        "tkgWorkloadDataNetworkGatewayCidr": "192.168.3.1/24",
        "tkgWorkloadAviServiceIpStartRange": "192.168.3.90",
        "tkgWorkloadAviServiceIpEndRange": "192.168.3.99"
    },
    "tkgWorkloadComponents": {
        "tkgWorkloadNetworkName": "DVPG-Management Network",
        "tkgWorkloadGatewayCidr": "192.168.3.1/24",
        "tkgWorkloadClusterName": "workcluster",
        "tkgWorkloadSize": "medium",
        "tkgWorkloadCpuSize": "",
        "tkgWorkloadMemorySize": "",
        "tkgWorkloadStorageSize": "",
        "tkgWorkloadDeploymentType": "dev",
        "tkgWorkloadWorkerMachineCount": "2",
        "tkgWorkloadClusterCidr": "100.96.0.0/11",
        "tkgWorkloadServiceCidr": "100.64.0.0/13",
        "tkgWorkloadBaseOs": "photon",
        "tkgWorkloadKubeVersion": "v1.22.5",
        "tkgWorkloadTsmIntegration": "false",
        "namespaceExclusions": {
            "exactName": "",
            "startsWith": ""
        }
    },
    "harborSpec": {
        "enableHarborExtension": "true",
        "harborFqdn": "harbor.lab.local",
        "harborPasswordBase64": "Vk13YXJlMSE=",
        "harborCertPath": "",
        "harborCertKeyPath": ""
    },
    "tanzuExtensions": {
        "enableExtensions": "false",
        "tkgClustersName": "",
        "logging": {
            "syslogEndpoint": {
                "enableSyslogEndpoint": "false",
                "syslogEndpointAddress": "",
                "syslogEndpointPort": "",
                "syslogEndpointMode": "",
                "syslogEndpointFormat": ""
            },
            "httpEndpoint": {
                "enableHttpEndpoint": "false",
                "httpEndpointAddress": "",
                "httpEndpointPort": "",
                "httpEndpointUri": "",
                "httpEndpointHeaderKeyValue": ""
            },
            "elasticSearchEndpoint": {
                "enableElasticSearchEndpoint": "false",
                "elasticSearchEndpointAddress": "",
                "elasticSearchEndpointPort": ""
            },
            "kafkaEndpoint": {
                "enableKafkaEndpoint": "false",
                "kafkaBrokerServiceName": "",
                "kafkaTopicName": ""
            },
            "splunkEndpoint": {
                "enableSplunkEndpoint": "false",
                "splunkEndpointAddress": "",
                "splunkEndpointPort": "",
                "splunkEndpointToken": ""
            }
        },
        "monitoring": {
            "enableLoggingExtension": "false",
            "prometheusFqdn": "",
            "prometheusCertPath": "",
            "prometheusCertKeyPath": "",
            "grafanaFqdn": "",
            "grafanaCertPath": "",
            "grafanaCertKeyPath": "",
            "grafanaPasswordBase64": ""
        }
    }
}

Log onto a worker node (key is in root .ssh):

ssh capv@<worker_node_ip>

Arcas 1.1 TKGs WCP enablement

TKGs

Network Setup:

Networks .3 .5 .7
.3 = Management
	vCenter 3.50
	Arcas79 3.39
	Avi.lab.local 3.40
	
	Avi mgt Start 3.60-69
	
	WCP mgt start 3.70-79
	
.5 = Frontend
	AVI VIP .5-60-89
	
.7 = Workload

	WCP workload - .7.100-119
	
Gateway = "192.168.3.1"
Gateway = "192.168.5.1"
Gateway = "192.168.7.1"

DNS = "10.197.79.7"
NTP = "10.128.152.81"

Version Version Version Version Version Version Version Version Version Version Version Version Version

WCP enablement:

cd  /opt/vmware/arcas/src

arcas --env vsphere --file /opt/vmware/arcas/src/vsphere-dvs-tkgs-wcp.json  --avi_configuration --avi_wcp_configuration --enable_wcp

Results:

Version

Get the kubectl-vsphere binaries from API endpoint:

cd /usr/local
wget --no-check-certificate https://192.168.5.62/wcp/plugin/linux-amd64/vsphere-plugin.zip
unzip vsphere-plugin.zip

Version

Log onto supervisor cluster:

kubectl-vsphere login --vsphere-username [email protected] --server=https://192.168.5.62 --insecure-skip-tls-verify

KUBECTL_VSPHERE_PASSWORD environment variable is not set. Please enter the password below Password: Logged in successfully.

You have access to the following contexts: 192.168.5.62

If the context you wish to use is not in this list, you may need to try logging in again later, or contact your cluster administrator.

To change context, use kubectl config use-context <workload name> root@arcas79 [ /usr/local ]#

kubectl config use-context 192.168.5.62

Switched to context "192.168.5.62".

kubectl get nodes

Output:

NAME                               STATUS   ROLES                  AGE    VERSION
42133bfc2b5aaf343a32dbce9200c435   Ready    control-plane,master   178m   v1.21.0+vmware.1-wcp
4213a81423b462db51d5f4a4b406d255   Ready    control-plane,master   178m   v1.21.0+vmware.1-wcp
4213ac7fd275d92df89b6cd2eed0e007   Ready    control-plane,master   3h2m   v1.21.0+vmware.1-wcp

Building the namespace (GUI):

Version Version Version Version Version Version Version Version Version

There seems to be an issue with the Harbor enablement!

Version

Building the namespace (CMD line):

arcas --env vsphere --file /opt/vmware/arcas/src/vsphere-dvs-tkgs-namespace.json --create_supervisor_namespace --create_workload_cluster --deploy_extensions

Result:

Version

Loggin onto guest workload cluster:

kubectl-vsphere login --vsphere-username [email protected] --server=https://192.168.5.62 --tanzu-kubernetes-cluster-namespace namespace1000 --tanzu-kubernetes-cluster-name workloadcluster1 --insecure-skip-tls-verify

Logged in successfully.

You have access to the following contexts:
   192.168.5.62
   namespace1000
   workloadcluster1

If the context you wish to use is not in this list, you may need to try
logging in again later, or contact your cluster administrator.

To change context, use `kubectl config use-context <workload name>`

root@arcas79 [ /usr/local ]# kubectl config use-context workloadcluster1    
Switched to context "workloadcluster1".
root@arcas79 [ /usr/local ]# kubectl get nodes
NAME                                            STATUS   ROLES                  AGE     VERSION
workloadcluster1-control-plane-v7f4x            Ready    control-plane,master   10m     v1.20.12+vmware.1
workloadcluster1-workers-ct6fp-bfb88d59-45bcp   Ready    <none>                 6m22s   v1.20.12+vmware.1
workloadcluster1-workers-ct6fp-bfb88d59-lk2qr   Ready    <none>                 6m28s   v1.20.12+vmware.1
	

TKGs YAML file for WCP enablement:

{
    "envSpec": {
        "envType": "tkgs-wcp",
        "vcenterDetails": {
            "vcenterAddress": "vcenteravi.lab.local",
            "vcenterSsoUser": "[email protected]",
            "vcenterSsoPasswordBase64": "Vk13YXJlMSE=",
            "vcenterDatacenter": "avi-Datacenter",
            "vcenterCluster": "avi-Cluster",
            "vcenterDatastore": "vsanDatastore",
            "contentLibraryName": "avi",
            "aviOvaName": "controller-20.1.7-9154"
        },
        "marketplaceSpec": {
            "refreshToken": ""
        },
        "saasEndpoints": {
            "tmcDetails": {
                "tmcAvailability": "false",
                "tmcRefreshToken": "",
                "tmcSupervisorClusterName": ""
            }
        },
        "infraComponents": {
            "dnsServersIp": "10.197.79.7",
            "searchDomains": "lab.local",
            "ntpServers": "10.128.152.81"
        }
    },
    "tkgsComponentSpec": {
        "controlPlaneSize": "MEDIUM",
        "aviMgmtNetwork": {
            "aviMgmtNetworkName": "DVPG-Management Network",
            "aviMgmtNetworkGatewayCidr": "192.168.3.1/24",
            "aviMgmtServiceIpStartRange": "192.168.3.60",
            "aviMgmtServiceIpEndRange": "192.168.3.69"
        },
        "aviComponents": {
            "aviPasswordBase64": "Vk13YXJlMSE=",
            "aviBackupPassphraseBase64": "Vk13YXJlMSE=",
            "enableAviHa": "false",
            "aviController01Ip": "192.168.3.40",
            "aviController01Fqdn": "avi.lab.local",
            "aviController02Ip": "",
            "aviController02Fqdn": "",
            "aviController03Ip": "",
            "aviController03Fqdn": "",
            "aviClusterIp": "",
            "aviClusterFqdn": "",
            "aviSize": "small",
            "aviCertPath": "",
            "aviCertKeyPath": ""
        },
        "tkgsVipNetwork": {
            "tkgsVipNetworkName": "DVPG-Frontend Network",
            "tkgsVipNetworkGatewayCidr": "192.168.5.1/24",
            "tkgsVipIpStartRange": "192.168.5.60",
            "tkgsVipIpEndRange": "192.168.5.89"
        },
        "tkgsMgmtNetworkSpec": {
            "tkgsMgmtNetworkName": "DVPG-Management Network",
            "tkgsMgmtNetworkGatewayCidr": "192.168.3.1/24",
            "tkgsMgmtNetworkStartingIp": "192.168.3.70",
            "tkgsMgmtNetworkDnsServers": "10.197.79.7",
            "tkgsMgmtNetworkSearchDomains": "lab.local",
            "tkgsMgmtNetworkNtpServers": "10.128.152.81"
        },
        "tkgsStoragePolicySpec": {
            "masterStoragePolicy": "pacific-gold-storage-policy",
            "ephemeralStoragePolicy": "pacific-gold-storage-policy",
            "imageStoragePolicy": "pacific-gold-storage-policy"
        },
        "tkgsPrimaryWorkloadNetwork": {
            "tkgsPrimaryWorkloadPortgroupName": "DVPG-Workload Network",
            "tkgsPrimaryWorkloadNetworkName": "workload1",
            "tkgsPrimaryWorkloadNetworkGatewayCidr": "192.168.7.1/24",
            "tkgsPrimaryWorkloadNetworkStartRange": "192.168.7.100",
            "tkgsPrimaryWorkloadNetworkEndRange": "192.168.7.119",
            "tkgsWorkloadDnsServers": "10.197.79.7",
            "tkgsWorkloadNtpServers": "10.128.152.81",
            "tkgsWorkloadServiceCidr": "10.96.0.0/22"
        }
    }
}

TKGs YAML namespace and work load cluster enablement

cat  /opt/vmware/arcas/src/vsphere-dvs-tkgs-namespace.json 

TKGs YAML 2:

{
    "envSpec": {
        "envType": "tkgs-ns",
        "vcenterDetails": {
            "vcenterAddress": "192.168.3.50",
            "vcenterSsoUser": "[email protected]",
            "vcenterSsoPasswordBase64": "Vk13YXJlMSE=",
            "vcenterDatacenter": "avi-Datacenter",
            "vcenterCluster": "avi-Cluster"
        },
        "saasEndpoints": {
            "tmcDetails": {
                "tmcAvailability": "false",
                "tmcRefreshToken": "",
                "tmcSupervisorClusterName": ""
            },
            "tanzuObservabilityDetails": {
                "tanzuObservabilityAvailability": "false",
                "tanzuObservabilityUrl": "",
                "tanzuObservabilityRefreshToken": ""
            }
        }
    },
    "tkgsComponentSpec": {
        "tkgsWorkloadNetwork": {
            "tkgsWorkloadNetworkName": "workload1",
            "tkgsWorkloadPortgroupName": "",
            "tkgsWorkloadNetworkGatewayCidr": "",
            "tkgsWorkloadNetworkStartRange": "",
            "tkgsWorkloadNetworkEndRange": "",
            "tkgsWorkloadServiceCidr": ""
        },
        "tkgsVsphereNamespaceSpec": {
            "tkgsVsphereNamespaceName": "namespace1000",
            "tkgsVsphereNamespaceDescription": "",
            "tkgsVsphereNamespaceContentLibrary": "SubscribedAutomation-Lib",
            "tkgsVsphereNamespaceVmClasses": [
                "best-effort-medium",
                "best-effort-large",
                "best-effort-2xlarge",
                "best-effort-small"
            ],
            "tkgsVsphereNamespaceResourceSpec": {},
            "tkgsVsphereNamespaceStorageSpec": [
                {
                    "storagePolicy": "pacific-gold-storage-policy"
                }
            ],
            "tkgsVsphereWorkloadClusterSpec": {
                "tkgsVsphereNamespaceName": "namespace1000",
                "tkgsVsphereWorkloadClusterName": "workloadcluster1",
                "tkgsVsphereWorkloadClusterVersion": "v1.20.12+vmware.1-tkg.1.b9a42f3",
                "allowedStorageClasses": [
                    "pacific-gold-storage-policy"
                ],
                "defaultStorageClass": "pacific-gold-storage-policy",
                "nodeStorageClass": "pacific-gold-storage-policy",
                "serviceCidrBlocks": "10.96.0.0/12",
                "podCidrBlocks": "192.168.0.0/16",
                "controlPlaneVmClass": "best-effort-medium",
                "workerVmClass": "best-effort-medium",
                "workerNodeCount": "2",
                "enableControlPlaneHa": "false",
                "tkgWorkloadTsmIntegration": "false",
                "namespaceExclusions": {
                    "exactName": "",
                    "startsWith": ""
                }
            }
        }
    },
    "harborSpec": {
        "enableHarborExtension": "true",
        "harborFqdn": "harbor.lab.local",
        "harborPasswordBase64": "Vk13YXJlMSE=",
        "harborCertPath": "",
        "harborCertKeyPath": ""
    },
    "tanzuExtensions": {
        "enableExtensions": "false",
        "tkgClustersName": "",
        "logging": {
            "syslogEndpoint": {
                "enableSyslogEndpoint": "false",
                "syslogEndpointAddress": "",
                "syslogEndpointPort": "",
                "syslogEndpointMode": "",
                "syslogEndpointFormat": ""
            },
            "httpEndpoint": {
                "enableHttpEndpoint": "false",
                "httpEndpointAddress": "",
                "httpEndpointPort": "",
                "httpEndpointUri": "",
                "httpEndpointHeaderKeyValue": ""
            },
            "elasticSearchEndpoint": {
                "enableElasticSearchEndpoint": "false",
                "elasticSearchEndpointAddress": "",
                "elasticSearchEndpointPort": ""
            },
            "kafkaEndpoint": {
                "enableKafkaEndpoint": "false",
                "kafkaBrokerServiceName": "",
                "kafkaTopicName": ""
            },
            "splunkEndpoint": {
                "enableSplunkEndpoint": "false",
                "splunkEndpointAddress": "",
                "splunkEndpointPort": "",
                "splunkEndpointToken": ""
            }
        },
        "monitoring": {
            "enableLoggingExtension": "false",
            "prometheusFqdn": "",
            "prometheusCertPath": "",
            "prometheusCertKeyPath": "",
            "grafanaFqdn": "",
            "grafanaCertPath": "",
            "grafanaCertKeyPath": "",
            "grafanaPasswordBase64": ""
        }
    }
}

Service Installer for VMware Tanzu (Project Arcas 1.0)

This write up focuses at a TKGs install with AVI (NSX advanced loadbalancer) Further down is the TKGm install

TKGs

A nice network spread sheet is located here

https://github.com/ogelbric/Arcas/blob/main/Arcasdeploymentspreadsheet.xlsx

My vCenter set up (3 ESXi hosts with vSAN)

Version

Download the Tanzu Service Installer OVA

Send e-mail or [email protected] to get access

https://www.dropbox.com/sh/xxx/AADU_xxxxxxxxxxztl7ESHa?dl=0

Deploy the Tanzu Service Installer OVA

Version

Version

Version

Version

Power on once deployed

Version

DNS set up

Version

Setup the AVI OVA in the content library in vCenter

Version

Version

Use broswser and connect to port 8888 on the Tanzu Service Installer

(In my case http://192.168.1.39:8888)

Version

Here are the network settings for a 3 network setup

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

cd /opt/vmware/arcas/src
arcas --env vsphere --file vsphere.json --avi_configuration --avi_wcp_configuration --enable_wcp

Version

Please wait for about ~10-20 min for the WCp enablement to take place

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

Version

Outcome in WCP enable vCenter

Version

Outcome in vCenter with AVI service engines deployed

Version

Outcome loggin onto supervisor cluster

/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

Version

Deploying a namespace (a user needs to be added in the vCenter GUI!)

arcas --env vsphere --file vsphere.json --create_supervisor_namespace

Version

TKGs json file example

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"
            }
        }
    }
}

TKGm

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

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

Version

Deploy from JSON file:

arcas --env vsphere --file /opt/vmware/arcas/src/vsphere.json --avi_configuration --tkg_mgmt_configuration

Follow in the log:

journalctl -u arcas.service --follow

Deploy the rest of the clusters:

arcas --env vsphere --file /opt/vmware/arcas/src/vsphere.json --avi_configuration --tkg_mgmt_configuration --shared_service_configuration --workload_preconfig --workload_deploy

Result from Arcas deploy

Version

Commands for the below output and adding the harbor IP to DNS

kubectl config get-contexts
kubectl config use-context sharedtkg1-admin@sharedtkg1
kubectl get svc -A
kubectl get httpproxy -A

Version

DNS

Version

TKGm json file example

{
    "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": ""
        }
    }
}

arcas's People

Contributors

ogelbric avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.