Провайдеры

Прежде чем перейти к управлению провайдерами в платформе, авторизуйтесь в платформе. Инструкция по авторизации находится на странице Авторизация в платформе.

Получить список провайдеров

Команда
curl -k --silent --location --request GET $BACKENDPOINT/api/v1/platform/providers 
--header "Authorization: Bearer $token" | jq -r
Пример ответа в формате json
[
    {
        "providerType": "capov",
        "configs": [
            {
                "name": "capov-name",
                "kubeVers": [
                    "v1.29.6"
                ],
                "allowEditCSI": false,
                "IPAddressPoolName": "",
                "IPAddressPoolAvailableCount": 0
            }
        ]
    },
    {
        "providerType": "capvs",
        "configs": [
            {
                "name": "capvs",
                "kubeVers": [
                    "v1.29.6"
                ],
                "allowEditCSI": false,
                "IPAddressPoolName": "name-pool",
                "IPAddressPoolAvailableCount": 1
            }
        ]
    },
    {
        "providerType": "capbd",
        "configs": [
            {
                "name": "capbd-name",
                "kubeVers": [
                    "v1.29.6"
                ],
                "allowEditCSI": false,
                "IPAddressPoolName": "",
                "IPAddressPoolAvailableCount": 0
            }
        ]
    },
    {
        "providerType": "capos",
        "configs": [
            {
                "name": "capos-name",
                "kubeVers": [
                    "v1.29.6"
                ],
                "allowEditCSI": false,
                "IPAddressPoolName": "",
                "IPAddressPoolAvailableCount": 0
            }
        ]
    },
    {
        "providerType": "capsmv2",
        "configs": [
            {
                "name": "capsmv2-name",
                "kubeVers": [
                    "v1.29.6"
                ],
                "allowEditCSI": false,
                "IPAddressPoolName": "",
                "IPAddressPoolAvailableCount": 0
            }
        ]
    },
]

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

Команда
curl -k --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capvs
--header "Authorization: Bearer $token" 
--data @<(cat <<EOF
{
  "IPAddressPoolName": "name-pool",
  "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": "identityname",
  "network": "/StendCloud/network/data",
  "resourcePool": "/StendCloud/host/StendCloud/Resources/Name",
  "storagePolicyName": "",
  "template": [
    {
      "key": "redos-7.3.2-shturval",
      "value": "v1.29.6"
    }
  ],
  "templateNetInterface": "enp1s0"
}
EOF
) | jq -r
Пример ответа в формате json при успешном создании провайдера vSphere
{  "identityName": "identityname", 
    "provider": { 
        "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,
        "IPAddressPoolName": "name-pool"
    }, 
    "ready": false 
} 

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

Команда
curl -k --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capov
--header "Authorization: Bearer $token" 
--data @<(cat <<EOF
{
  "IPAddressPoolName": "",
  "VNICProfile": "VNI",
  "allowEditCSI": false,
  "cluster": "RHVLab",
  "connection": {
    "passwd": "password",
    "tls": {
      "cert": true,
      "certs": "",
      "insecure": true
    },
    "url": "https://rhv-mg.aaaaa.bbb.cc/ovirt-engine/api",
    "user": "name"
  },
  "name": "identityname",
  "datacenter": "datacenter",
  "templates": [
    {
      "template": "AstraLinux1.7.3uu2",
      "kubeVersion": "v1.29.6"
    }
  ],
  "templateNetInterface": "eth0",
  "csistorageDomainName": "hosted_storage"
}
EOF
) | jq -r
Пример ответа в формате json при успешном создании провайдера oVirt
{
    "name": "identityname",
    "cluster": "RHVLab",
    "VNICProfile": "VNI",
    "allowEditCSI": false,
    "VMType": "server",
    "templateNetInterface": "eth0",
    "connection": {
        "url": "https://rhv-mg.aaaaa.bbb.cc/ovirt-engine/api",
        "user": "name",
        "passwd": "password",
        "tls": {
            "cert": true,
            "insecure": true
        }
    },
    "templates": [
        {
            "template": "AstraLinux1.7.3uu2",
            "kubeVersion": "v1.29.6"
        }
    ],
    "datacenter": "datacenter",
    "csistorageDomainName": "hosted_storage",
    "IPAddressPoolName": "",
    "infraProviderName": ""
}

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

Команда
curl -k --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capbd
--header "Authorization: Bearer $token" 
--data @<(cat <<EOF
{ 
    "name": "name", 
    "accountName": "Shturval", 
    "rgName": "dev-2.6", 
    "templateNetInterface": "eth0", 
    "connection": { 
        "decordUrl": "https://mr4.digitalenergy.online/", 
        "ssoUrl": "https://sso.digitalenergy.online", 
        "appId": "хххххх", 
        "appSecret": "dddddd", 
        "skipSSLVerification": true 
    }, 
    "templates": [ 
        { 
            "template": "pfSASE", 
            "kubeVersion": "v1.29.6" 
        } 
    ], 
    "extNetName": "NAME", 
    "vinsName": "res_group_internal", 
    "haLoadBalancer": true 
}
EOF
) | jq -r
Пример ответа в формате json при успешном создании провайдера Basis Dynamix
{ 
    "name": "name", 
    "accountName": "Shturval", 
    "rgName": "dev-2.6", 
    "templateNetInterface": "eth0", 
    "connection": { 
        "decordUrl": "https://mr4.digitalenergy.online/", 
        "ssoUrl": "https://sso.digitalenergy.online", 
        "appId": "хххххх", 
        "appSecret": "dddddd", 
        "skipSSLVerification": true 
    }, 
    "templates": [ 
        { 
            "template": "pfSASE", 
            "kubeVersion": "v1.29.6" 
        } 
    ], 
    "extNetName": "NAME", 
    "vinsName": "res_group_internal", 
    "haLoadBalancer": true 
}

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

Команда
curl -k --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capos
--header "Authorization: Bearer $token"
--data @<(cat <<EOF
{ 
    "name": "identityname", 
    "cloudName": "хххххх", 
    "templateNetInterface": "eth0", 
    "cloudconfig": { 
        "config": { 
            "auth": { 
                "auth_url": "https://ххххх:1111/v1/", 
                "project_id": "gnfnh23233", 
                "user_domain_name": "users", 
                "project_domain_id": "af2c48d2" 
            }, 
            "auth_type": "password", 
            "region_name": "RegionOne", 
            "interface": "public", 
            "identity_api_version": "1", 
            "verify": false 
        } 
    }, 
    "templates": [ 
        { 
            "template": "shturval250", 
            "kubeVersion": "v1.29.6" 
        } 
    ], 
    "externalNetworkID": "fgb4577a2", 
    "sshKeyName": "sshkeyname", 
    "flavors": [ 
        "STD3-6-12", 
        "STD3-4-8" 
    ], 
    "volumeTypes": [ 
        "ceph-ssd" 
    ], 
    "nodeCIDR": "10.0.0.0/24", 
    "managedSecurityGroups": "true" 
}
EOF
) | jq -r
Пример ответа в формате json при успешном создании провайдера OpenStack
 {
    "name": "identityname", 
    "cloudName": "хххххх", 
    "templateNetInterface": "eth0", 
    "cloudconfig": { 
        "config": { 
            "auth": { 
                "auth_url": "https://ххххх:1111/v1/", 
                "project_id": "gnfnh23233", 
                "user_domain_name": "users", 
                "project_domain_id": "af2c48d2" 
            }, 
            "auth_type": "password", 
            "region_name": "RegionOne", 
            "interface": "public", 
            "identity_api_version": "1", 
            "verify": false 
        } 
    }, 
    "templates": [ 
        { 
            "template": "shturval250", 
            "kubeVersion": "v1.29.6" 
        } 
    ], 
    "externalNetworkID": "fgb4577a2", 
    "sshKeyName": "ssh_key", 
    "flavors": [ 
        "STD3-6-12", 
        "STD3-4-8" 
    ], 
    "volumeTypes": [ 
        "ceph-ssd" 
    ], 
    "nodeCIDR": "10.0.0.0/24", 
    "managedSecurityGroups": "true" 
}

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

Команда
curl -k --silent --location --request POST $BACKENDPOINT/api/v1/platform/providers/capsmv2
--header "Authorization: Bearer $token"
--data @<(cat <<EOF
{
  "name": "namecapsmv2",
  "IPAddressPoolName": "poolname",
  "credentials": {
    "SSH": {
      "privateKey": "privateKey",
      "userName": "userName"
    }
  },
  "hosts": [
      {
            "address": "10.10.10.10",
            "labelsSelector": {
                "provider_config_name": "provider"
            }, 
            "credentials": null
        },
    ]
}
EOF
) | jq -r
Пример ответа в формате json при успешном создании провайдера Shturval v2
{
    "name": "namecapsmv2",
    "hosts": [
      {
            "address": "10.10.10.10",
            "labelsSelector": {
                "provider_config_name": "provider"
            }, 
            "credentials": null
        },
    ],
    "credentials": {
        "SSH": {
            "userName": "userName",
            "privateKey": ""
        }
    },
    "IPAddressPoolName": "poolname",
    "infraProviderName": ""
}

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

Команда удаление провайдера vSphere
export PROVIDERNAME="provider-name"
curl -k --location --request DELETE $BACKENDPOINT/api/v1/platform/providers/capvs/$PROVIDERNAME
--header "Authorization: Bearer $token" 
Команда удаление провайдера oVirt
export PROVIDERNAME="provider-name"
curl -k --location --request DELETE $BACKENDPOINT/api/v1/platform/providers/capov/$PROVIDERNAME
--header "Authorization: Bearer $token"
Команда удаление провайдера Basis Dynamix
export PROVIDERNAME="provider-name"
curl -k --location --request DELETE $BACKENDPOINT/api/v1/platform/providers/capbd/$PROVIDERNAME
--header "Authorization: Bearer $token"
Команда удаление провайдера OpenStack
export PROVIDERNAME="provider-name"
curl -k --location --request DELETE $BACKENDPOINT/api/v1/platform/providers/capos/$PROVIDERNAME
--header "Authorization: Bearer $token"
Команда удаление провайдера Shturval v2
export PROVIDERNAME="provider-name"
curl -k --location --request DELETE $BACKENDPOINT/api/v1/platform/providers/capsmv2/$PROVIDERNAME
--header "Authorization: Bearer $token"