コード例 #1
0
def aro_create(
        cmd,  # pylint: disable=too-many-locals
        client,
        resource_group_name,
        resource_name,
        master_subnet,
        worker_subnet,
        vnet=None,
        vnet_resource_group_name=None,  # pylint: disable=unused-argument
        location=None,
        domain=None,
        cluster_resource_group=None,
        client_id=None,
        client_secret=None,
        pod_cidr=None,
        service_cidr=None,
        master_vm_size=None,
        worker_vm_size=None,
        worker_vm_disk_size_gb=None,
        worker_count=None,
        apiserver_visibility=None,
        ingress_visibility=None,
        tags=None,
        no_wait=False):
    vnet = validate_subnets(master_subnet, worker_subnet)

    subscription_id = get_subscription_id(cmd.cli_ctx)

    random_id = ''.join(
        random.choice('abcdefghijklmnopqrstuvwxyz0123456789')
        for _ in range(8))

    aad = AADManager(cmd.cli_ctx)
    if client_id is None:
        app, client_secret = aad.create_application('aro-%s' % random_id)
        client_id = app.app_id

    client_sp = aad.get_service_principal(client_id)
    if not client_sp:
        client_sp = aad.create_service_principal(client_id)

    rp_client_id = FP_CLIENT_ID
    if rp_mode_development():
        rp_client_id = os.environ['AZURE_FP_CLIENT_ID']

    rp_client_sp = aad.get_service_principal(rp_client_id)

    assign_contributor_to_vnet(cmd.cli_ctx, vnet, client_sp.object_id)
    assign_contributor_to_vnet(cmd.cli_ctx, vnet, rp_client_sp.object_id)

    oc = v2019_12_31_preview.OpenShiftCluster(
        location=location,
        tags=tags,
        cluster_profile=v2019_12_31_preview.ClusterProfile(
            domain=domain or random_id,
            resource_group_id='/subscriptions/%s/resourceGroups/%s' %
            (subscription_id, cluster_resource_group or "aro-" + random_id),
        ),
        service_principal_profile=v2019_12_31_preview.ServicePrincipalProfile(
            client_id=client_id,
            client_secret=client_secret,
        ),
        network_profile=v2019_12_31_preview.NetworkProfile(
            pod_cidr=pod_cidr or '10.128.0.0/14',
            service_cidr=service_cidr or '172.30.0.0/16',
        ),
        master_profile=v2019_12_31_preview.MasterProfile(
            vm_size=master_vm_size or 'Standard_D8s_v3',
            subnet_id=master_subnet,
        ),
        worker_profiles=[
            v2019_12_31_preview.WorkerProfile(
                name='worker',  # TODO: 'worker' should not be hard-coded
                vm_size=worker_vm_size or 'Standard_D2s_v3',
                disk_size_gb=worker_vm_disk_size_gb or 128,
                subnet_id=worker_subnet,
                count=worker_count or 3,
            )
        ],
        apiserver_profile=v2019_12_31_preview.APIServerProfile(
            visibility=apiserver_visibility or 'Public', ),
        ingress_profiles=[
            v2019_12_31_preview.IngressProfile(
                name='default',  # TODO: 'default' should not be hard-coded
                visibility=ingress_visibility or 'Public',
            )
        ],
    )

    return sdk_no_wait(no_wait,
                       client.create_or_update,
                       resource_group_name=resource_group_name,
                       resource_name=resource_name,
                       parameters=oc)
コード例 #2
0
ファイル: custom.py プロジェクト: jim-minter/rp
def aro_create(
        cmd,  # pylint: disable=too-many-locals
        client,
        resource_group_name,
        resource_name,
        master_subnet,
        worker_subnet,
        vnet=None,
        vnet_resource_group_name=None,  # pylint: disable=unused-argument
        location=None,
        client_id=None,
        client_secret=None,
        pod_cidr=None,
        service_cidr=None,
        master_vm_size=None,
        worker_vm_size=None,
        worker_vm_disk_size_gb=None,
        worker_count=None,
        tags=None,
        no_wait=False):
    vnet = validate_subnets(master_subnet, worker_subnet)

    subscription_id = get_subscription_id(cmd.cli_ctx)

    aad = AADManager(cmd.cli_ctx)
    if client_id is None:
        app, client_secret = aad.createManagedApplication(
            "aro-%s-%s-%s" %
            (subscription_id, resource_group_name, resource_name))
        client_id = app.app_id

    client_sp = aad.getServicePrincipal(client_id)
    if not client_sp:
        client_sp = aad.createServicePrincipal(client_id)

    rp_client_id = FP_CLIENT_ID
    if rp_mode_development():
        rp_client_id = os.environ['AZURE_FP_CLIENT_ID']

    rp_client_sp = aad.getServicePrincipal(rp_client_id)

    assign_contributor_to_vnet(cmd.cli_ctx, vnet, client_sp.object_id)
    assign_contributor_to_vnet(cmd.cli_ctx, vnet, rp_client_sp.object_id)

    oc = v2019_12_31_preview.OpenShiftCluster(
        location=location,
        tags=tags,
        service_principal_profile=v2019_12_31_preview.ServicePrincipalProfile(
            client_id=client_id,
            client_secret=client_secret,
        ),
        network_profile=v2019_12_31_preview.NetworkProfile(
            pod_cidr=pod_cidr or "10.128.0.0/14",
            service_cidr=service_cidr or "172.30.0.0/16",
        ),
        master_profile=v2019_12_31_preview.MasterProfile(
            vm_size=master_vm_size or "Standard_D8s_v3",
            subnet_id=master_subnet,
        ),
        worker_profiles=[
            v2019_12_31_preview.WorkerProfile(
                name="worker",  # TODO: "worker" should not be hard-coded
                vm_size=worker_vm_size or "Standard_D2s_v3",
                disk_size_gb=worker_vm_disk_size_gb or 128,
                subnet_id=worker_subnet,
                count=worker_count or 3,
            )
        ])

    return sdk_no_wait(no_wait,
                       client.create_or_update,
                       resource_group_name=resource_group_name,
                       resource_name=resource_name,
                       parameters=oc)