Провайдеры

Подготовка переменных для авторизации

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/platform/providers/capvs 
--header "Authorization: Bearer $TOKEN" | jq -r

В ответе ожидается json такого формата:

[
    {
        "providerType": "capsm",
        "configs": [
            {
                "name": "default",
                "kubeVers": [
                    "v1.26.5"
                ],
                "allowEditCSI": false
            }
        ]
    },
    {
        "providerType": "capvs",
        "configs": [
            {
                "name": "capvs",
                "kubeVers": [
                    "v1.25.9"
                ],
                "allowEditCSI": false
            }
]

Создание провайдера vSphere

curl --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capvs
--header "Authorization: Bearer $TOKEN" | jq -r
--data @<(cat <<EOF
{
  "allowEditCSI": false,
  "cloneMode": "linkedClone",
  "connectInfo": {
    "passwd": "string",
    "url": "string",
    "user": "string"
  },
  "datacenter": "string",
  "datastore": "string",
  "folder": "string",
  "identityName": "string",
  "network": "string",
  "resourcePool": "string",
  "storagePolicyName": "string",
  "template": [
    {
      "key": "string",
      "value": "string"
    }
  ],
  "templateNetInterface": "string"
}

Пример:

{
  "allowEditCSI": false,
  "cloneMode": "linkedClone",
  "connectInfo": {
    "passwd": "mypassword",
    "url": "stendcloud.aaaaaaa.bb:443",
    "user": "myusername"
  },
  "datacenter": "/StendCloud",
  "datastore": "StendCloud_Name",
  "folder": "/StendCloud/vm/StendCloud/Name/",
  "identityName": "ownername",
  "network": "/StendCloud/network/data",
  "resourcePool": "/StendCloud/host/StendCloud/Resources/Name",
  "storagePolicyName": "",
  "template": [
    {
      "key": "redos-7.3.2-shturval",
      "value": "v1.25.9"
    }
  ],
  "templateNetInterface": "enp1s0"
}

При успешном создании провайдера vsphere, в ответе ожидается json такого формата:

{
    "vCenterAddress": "stendcloud.aaaaaaa.aa:443",
    "user": "",
    "passwd": "",
    "thumbprint": "A1:F1:C8:9F:04:E8:13:7A:87:39:D0:EA:10:96:40:57:FE:D0:77:3E",
    "datacenter": "/StendCloud",
    "datastore": "StendCloud_Name",
    "storagePolicyName": "",
    "cloneMode": "",
    "folder": "/StendCloud/vm/StendCloud/Name/",
    "network": "/StendCloud/network/data",
    "template": [
        {
            "key": "redos-7.3.2-shturval",
            "value": "v1.25.9"
        }
    ],
    "templateNetInterface": "enp1s0",
    "resourcePool": "/StendCloud/host/StendCloud/Resources/Name",
    "allowEditCSI": false
}

Удаление провайдера

Удаление провайдера vSphere:

export PROVIDERNAME="provider-name"
curl --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capvs/$PROVIDERNAME
--header "Authorization: Bearer $TOKEN" | jq -r

Удаление провайдера oVirt:

export PROVIDERNAME="provider-name"
curl --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capov/$PROVIDERNAME
--header "Authorization: Bearer $TOKEN" | jq -r