Кластеры
Подготовка переменных для авторизации
export INGRESS="apps.ip-10-31-145-205.shturval.link"
export AUTHENDPOINT="http://auth.$INGRESS"
export BACKENDPOINT="http://back.$INGRESS"
export SHTURVAL_AUTH='{"login":"admin", "password":"ppppppppppppp"}'
export TOKEN=$(curl --request POST --silent --url $AUTHENDPOINT/auth/login --header 'Authorization: Bearer undefined'
--header 'Content-Type: application/json' --data "$SHTURVAL_AUTH" | jq -r '.token')
export AUTHHEADER="Authorization: Bearer $TOKEN"
Получить список кластеров
curl --silent --location --request GET $BACKENDPOINT/api/v1/clusters --header "Authorization: Bearer $TOKEN" | jq -r
В ответе ожидается json такого формата:
{
"items": [
{
"id": "capov",
"clusterName": "capov",
"ingress": "*.apps.ip-10-31-145-222.shturval.link",
"providerType": "capov",
"haType": "ha",
"status": "Provisioned",
"workerCount": 3,
"apiEndpoint": "10.31.145.221:6443",
"networks": [
{
"type": "Service CIDR",
"network": "10.96.0.0/12",
"netmask": ""
},
{
"type": "Pod CIDR",
"network": "172.16.0.0/16",
"netmask": ""
}
]
}
],
"count": 1
}
Создание кластера на провайдере vSphere
export CLUSTERNAME="capvs-new-cluster"
export PROVIDERTEMPLATENAME="capvs-template-name"
curl --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/clusters/capvs
--header "Authorization: Bearer $TOKEN" | jq -r
--data @<(cat <<EOF
{
"cluster": {
"apiEndpoint": "10.20.30.40",
"clusterName": "$CLUSTERNAME",
"disabledServices": [
"shturval-dashboards",
"shturval-rollouts",
"shturval-cd"
],
"enabledServices": [
"shturval-vip-provider",
"shturval-metrics",
"shturval-node-config-crds",
"shturval-update-crds",
"shturval-scanner-crds",
"shturval-backup-crds",
"shturval-cert-manager",
"shturval-policy-manager",
"shturval-cd-crds",
"shturval-cert-expiration",
"shturval-networking",
"shturval-caching-dns",
"shturval-descheduler",
"shturval-cluster-roles",
"shturval-services",
"shturval-services-crds",
"shturval-node-config",
"shturval-update",
"shturval-policies",
"shturval-cert-manager-crds",
"shturval-log-operator",
"shturval-log-operator-crds",
"shturval-ingress-controller",
"shturval-vip",
"shturval-monitoring-crds",
"shturval-local-csi",
"shturval-scanner",
"shturval-backup"
],
"externalKubeAPILB": false,
"externalingresslb": true,
"haType": "single",
"ingress": "",
"ingressvip": "10.20.30.41",
"kubernetesVersion": "v1.26.5",
"podSubnet": "172.16.0.0/16",
"secure": false,
"serviceSubnet": "10.96.0.0/12"
},
"createdByUser": "string",
"provider": {
"controlplaneNodeConfig": {
"diskGiB": 25,
"memoryMiB": 8192,
"numCPUs": 2
},
"enableCSI": false,
"identityName": "$PROVIDERTEMPLATENAME",
"workerNodeConfig": {
"diskGiB": 25,
"memoryMiB": 8192,
"numCPUs": 2
},
"workersCount": 0,
"workersScale": {
"maxmachines": 10,
"minmachines": 2
}
}
}
При успешном создании провайдера vSphere, в ответе ожидается json такого формата:
{
"apiEndpoint": "10.20.30.40",
"clusterName": "capvs-new-cluster",
"haType": "single",
"id": "XXXXX",
"ingress": "",
"networks": [
{
"netmask": "Service CIDR",
"network": "10.96.0.0/12",
"type": ""
}
],
"providerType": "capvs",
"status": "Provisioned",
"workerCount": 0,
"workerScale": {
"maxmachines": 10,
"minmachines": 2
}
}
Удаление кластера
export CLUSTERNAME=“capvs-new-cluster”
curl –location –request DELETE $BACKENDPOINT/api/v1/clusters/$CLUSTERNAME –header “Authorization: Bearer $TOKEN”