Провайдеры

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

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

Команда
curl -k -s -L --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 -s -L --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": "РЕД ОС-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": "РЕД ОС-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 -s -L --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 -s -L --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 -s -L --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 -s -L --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": ""
}

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

Команда
curl -k -s -L --request POST $BACKENDPOINT/api/v1/platform/providers/capyc
--header "Authorization: Bearer $token" 
--data @<(cat <<EOF
{ 
    "allowedPlatformIDs": [
    "standard"
  ],
  "connectInfo": {
    "folderId": "b1gcffn350amfsa9p4f1",
    "key": "{\n  \"id\": \"aj2u\",\n  \"service_account_id\": \"e49pbe\",\n  \"created_at\": \"2024-12-13T13:28:15.261795772Z\",\n  \"key_algorithm\": \"RSA_2048\",\n  \"public_key\": \"-----BEGIN PUBLIC KEY-----\\nMIIUEyYcDkOn\\nqTrn6lh52A\\nfQIDB\\n-----END PUBLIC KEY-----\\n\",\n  \"private_key\": \"PLEASE DO NOT REMOVE THIS LINE! Yandex.Cloud SA Key ID <aje76qbj2u>\\n-----BEGIN PRIVATE KEY-----\\nM58VMZ0=\\n-----END PRIVATE KEY-----\\n\"\n}"
  },
  "folderID": "b11",
  "identityName": "provideryandexname",
  "loadBalancerInternal": false,
  "loadBalancerType": "ALB",
  "networkID": "en5tl",
  "subnetID": "be2",
  "templates": [
    {
      "template": "fd82on1a0r7eca1pmmia",
      "kubeVersion": "v1.33.1"
    }
  ],
  "zoneID": "zone-c",
  "volumeTypes": [
    "network-ssd"
  ]
}
EOF
) | jq -r
Пример ответа в формате json при успешном создании провайдера Yandex Cloud
{ 
    "identityName": "provideryandexname",
    "connectInfo": {
        "key": ""
    },
    "templateNetInterface": "",
    "templates": [
        {
            "template": "fdia",
            "kubeVersion": "v1.33.1"
        }
    ],
    "folderID": "b11",
    "networkID": "en5tl",
    "subnetID": "be2",
    "zoneID": "zone-c",
    "volumeTypes": [
        "network-ssd"
    ],
    "loadBalancerType": "ALB",
    "loadBalancerInternal": false,
    "allowedPlatformIDs": [
        "standard"
    ]
}

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

Команда
curl -k -s -L --request POST $BACKENDPOINT/api/v1/platform/providers/capcd
--header "Authorization: Bearer $token"
--data @<(cat <<EOF
{
  "connectInfo": {
    "username": "username",
    "password": "mypassword",
    "refreshToken": "",
    "org": "Shturval-Client-Cluster",
    "connectType": "login",
    "site": "https://example.ru"
  },
  "name": "identityname",
  "catalog": "shturval",
  "templates": [
    {
      "template": "Ubuntu_sthurvalv2.11.0",
      "kubeVersion": "v1.33.1"
    }
  ],
  "sizingPolicies": [
    "TKG"
  ],
  "ovdc": "Shturval-Client-Cluster-v1cl4-vdc",
  "vipSubnetName": "",
  "network": "Network",
  "providerType": "vCloud Director"
}
EOF
) | jq -r
Пример ответа в формате json при успешном создании провайдера vCloud Director
 {
    "name": "identityname",
    "connectInfo": {
        "site": "https://example.ru",
        "org": "Shturval-Client-Cluster",
        "username": "username",
        "password": "mypassword",
        "refreshToken": ""
    },
    "ovdc": "Shturval-Client-Cluster-v1cl4-vdc",
    "network": "Network",
    "vipSubnet": "",
    "catalog": "shturval",
    "templates": [
        {
            "template": "Ubuntu_sthurvalv2.11.0",
            "kubeVersion": "v1.33.1"
        }
    ],
    "placementPolicy": "",
    "sizingPolicies": [
        "TKG"
    ],
    "allowEditCSI": false,
    "IPAddressPoolName": ""
}

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

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