Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSDOCS2164: Alibaba install #41083

Merged
merged 1 commit into from Mar 7, 2022

Conversation

mburke5678
Copy link
Contributor

@mburke5678 mburke5678 commented Jan 26, 2022

https://issues.redhat.com/browse/OSDOCS-2164

Carrying on work started in #40651

Previews:
Installing on Alibaba

Authentication -> Managing cloud provider credentials -> Using manual mode Modified to add Alibaba

Selecting a cluster installation method:

About the Cloud Credential Operator -> Modes -> Table 1: CCO mode support matrix Modified to add Alibaba

Installation -> Overview -> Supported platforms Modified to add Alibaba

@openshift-ci openshift-ci bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jan 26, 2022
@netlify
Copy link

netlify bot commented Jan 26, 2022

✔️ Deploy Preview for osdocs ready!

🔨 Explore the source changes: 220fee8

🔍 Inspect the deploy log: https://app.netlify.com/sites/osdocs/deploys/62261d487c1848000760e70a

😎 Browse the preview: https://deploy-preview-41083--osdocs.netlify.app

@openshift-ci openshift-ci bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jan 29, 2022
@openshift-ci openshift-ci bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 31, 2022
|====
|Parameter|Description|Values

|`platform.alibabacloud.defaultMachinePlatform.description`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mburke5678 It seems no the field "description" from "openshift-install explain" outputs.

$ openshift-install explain installconfig.platform.alibabacloud.defaultMachinePlatform
KIND: InstallConfig
VERSION: v1

RESOURCE:
DefaultMachinePlatform is the default configuration used when installing on Alibaba Cloud for machine pools which do not define their own platform configuration.

FIELDS:
imageID
ImageID is the Image ID that should be used to create ECS instance. If set, the ImageID should belong to the same region as the cluster.

instanceType <string>
  InstanceType defines the ECS instance type. eg. ecs.g6.large

systemDiskCategory <string>
  Valid Values: "","cloud_efficiency","cloud_essd"
  SystemDiskCategory defines the category of the system disk.

systemDiskSize <integer>
  SystemDiskSize defines the size of the system disk in gibibytes (GiB).

zones <[]string>
  Zones is list of availability zones that can be used. eg. ["cn-hangzhou-i", "cn-hangzhou-h", "cn-hangzhou-j"]

$

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jianli-wei @kwoodson I updated the list to match the parameters in the install.openshift.io_installconfigs.yaml as Jianli indicated.

@openshift-ci openshift-ci bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Feb 1, 2022
Copy link
Contributor

@jeana-redhat jeana-redhat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some first notes

@mburke5678 mburke5678 added this to the Future Release milestone Feb 7, 2022
@openshift-ci openshift-ci bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 7, 2022
@ahardin-rh
Copy link
Contributor

To run the Alibaba installer, you must have these permissions per discussion with Gaurav Singh.

AliyunBSSFullAccess for full access or at least these permissions:

    {
        "Action": [
            "bss:CreateInstance",
            "bss:Query*",
            "bss:ModifyInstance"
        ],
        "Effect": "Allow",
        "Resource": [
            "*"
        ]
    }

Copy link
Contributor

@jeana-redhat jeana-redhat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments based on my understanding. This is looking good though :D

modules/cco-ccoctl-configuring.adoc Outdated Show resolved Hide resolved
modules/cco-ccoctl-configuring.adoc Outdated Show resolved Hide resolved
@mburke5678 mburke5678 reopened this Feb 28, 2022
@@ -208,6 +214,7 @@ endif::openshift-origin[]
|

|Existing virtual private networks
|

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4.10 does support IPI installation on alibabacloud, using an existing VPC. And in such case, the VPC is expected to have NAT gateway (and EIP) configured beforehand.

FYI
openshift/installer@4be9a0b
openshift/installer@14246b3

$ openshift-install explain installconfig.platform.alibabacloud
KIND:     InstallConfig
VERSION:  v1

RESOURCE: <object>
  AlibabaCloud is the configuration used when installing on Alibaba Cloud.

FIELDS:
......
    vpcID <string>
      VpcID is the ID of an already existing VPC where the cluster should be installed. If empty, the installer will create a new VPC for the cluster.

    vswitchIDs <[]string>
      VSwitchIDs is the ID list of already existing VSwitches where cluster resources will be created. The existing VSwitches can only be used when also using existing VPC. If empty, the installer will create new VSwitches for the cluster.

$ 

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jianli-wei We weren't asked to document the Alibaba VPC installation, as far as I know. I am not sure we want to indicate support for the VPC install if we don't document it.

@mjpytlak WDYT? Should we add an X to the table to show support?

Copy link
Contributor

@mjpytlak mjpytlak Mar 1, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mburke5678 @jianli-wei Thanks for raising this item. Myself and @sjstout had discussed this back in November with @gauravsingh85 . While Alibaba can be configured for a VPC workflow, the documentation was not in scope for 4.10. Given that it is not documented, we cannot declare support it. We will be sizing/scoping the 4.11 doc effort over the next few weeks. I will be sure to raise this item at that time to determine when this doc can be delivered.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it, thanks! @mburke5678 @mjpytlak

* You reviewed details about the xref:../../architecture/architecture-installation.adoc#architecture-installation[{product-title} installation and update] processes.
* You read the documentation on xref:../../installing/installing-preparing.adoc#installing-preparing[selecting a cluster installation method and preparing it for users].
* You xref:../../installing/installing_alibaba/preparing-to-install-on-alibaba.html#installation-alibaba-dns_preparing-to-install-on-alibaba[registered your domain].
* If you use a firewall, you xref:../../installing/install_config/configuring-firewall.adoc#configuring-firewall[configured it to allow the sites] that your cluster requires access to.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mburke5678 It seems I cannot get to the above commit. Anyway, suggest to update according to @kwoodson's suggestion, thanks!

@openshift-ci openshift-ci bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 1, 2022
@openshift-ci openshift-ci bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 1, 2022

|====

endif::alibaba[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The above fields belong to ".platform.alibabacloud.defaultMachinePlatform" instead, please see below:

$ openshift-install explain installconfig.platform.alibabacloud
KIND:     InstallConfig
VERSION:  v1

RESOURCE: <object>
  AlibabaCloud is the configuration used when installing on Alibaba Cloud.

FIELDS:
    defaultMachinePlatform <object>
      DefaultMachinePlatform is the default configuration used when installing on Alibaba Cloud for machine pools which do not define their own platform configuration.

    privateZoneID <string>
      PrivateZoneID is the ID of an existing private zone into which to add DNS records for the cluster's internal API. An existing private zone can only be used when also using existing VPC. The private zone must be associated with the VPC containing the subnets. Leave the private zone unset to have the installer create the private zone on your behalf.

    region <string> -required-
      Region specifies the Alibaba Cloud region where the cluster will be created.

    resourceGroupID <string>
      ResourceGroupID is the ID of an already existing resource group where the cluster should be installed. If empty, the installer will create a new resource group for the cluster.

    tags <object>
      Tags additional keys and values that the installer will add as tags to all resources that it creates. Resources created by the cluster itself may not include these tags.

    vpcID <string>
      VpcID is the ID of an already existing VPC where the cluster should be installed. If empty, the installer will create a new VPC for the cluster.

    vswitchIDs <[]string>
      VSwitchIDs is the ID list of already existing VSwitches where cluster resources will be created. The existing VSwitches can only be used when also using existing VPC. If empty, the installer will create new VSwitches for the cluster.

$ openshift-install explain installconfig.platform.alibabacloud.defaultMachinePlatform
KIND:     InstallConfig
VERSION:  v1

RESOURCE: <object>
  DefaultMachinePlatform is the default configuration used when installing on Alibaba Cloud for machine pools which do not define their own platform configuration.

FIELDS:
    imageID <string>
      ImageID is the Image ID that should be used to create ECS instance. If set, the ImageID should belong to the same region as the cluster.

    instanceType <string>
      InstanceType defines the ECS instance type. eg. ecs.g6.large

    systemDiskCategory <string>
      Valid Values: "","cloud_efficiency","cloud_essd"
      SystemDiskCategory defines the category of the system disk.

    systemDiskSize <integer>
      SystemDiskSize defines the size of the system disk in gibibytes (GiB).

    zones <[]string>
      Zones is list of availability zones that can be used. eg. ["cn-hangzhou-i", "cn-hangzhou-h", "cn-hangzhou-j"]

$ 

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mburke5678 Except the fields under platform.alibabacloud.defaultMachinePlatform, I would suggest to also list the fields under platform.alibabacloud, in the table "Additional Alibaba Cloud configuration parameters". WDYT?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


// https://github.com/openshift/cloud-credential-operator/pull/412/files#diff-2480a11ca4927139d6eaa9883946b6f4cb38358cd98def8c57dd73e9319dbc9cR232

You must have a Alibaba Cloud Resource Access Management (RAM) user for the installation that has sufficient privileges. You can use the Alibaba Cloud Resource Access Management console to create a new user or modify and existing user. Later, you create credentials in {product-title} based on this user's permissions.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"modify an existing user" instead?


. Copy the generated credential files to the target manifests directory:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think "Creating the required RAM user" belongs to prerequisites, and what's needed here is "manually creating alibaba ram" instead.

@mburke5678
Copy link
Contributor Author

@jianli-wei You are asking me to move the "manually creating alibaba ram". I'm not clear on which step this is. Is this where the user runs the ccoctl alibabacloud create-ram-users --name <name> --region=<alibaba-region> --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests --output-dir=<path_to_ccoctl_output_dir> command?


. Copy the generated credential files to the target manifests directory:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mburke5678 The existing section "Creating credentials for OpenShift Container Platform components with the ccoctl tool" can be taken as "Manually creating alibaba RAM users", which is better mentioned for the 2nd point ("Copy the generated credential files to the target manifests directory") of the section "Generating the required installation manifests". Alternatively, move the 2nd point to the end of the section "Creating credentials for OpenShift Container Platform components with the ccoctl tool".

For example,

the section "Generating the required installation manifests"
Procedure

  1. Generate the manifests...

the section "Creating credentials for OpenShift Container Platform components with the ccoctl tool"
Prerequisites
...
Procedure

  1. Extract the list of CredentialsRequest...
  2. Use the ccoctl tool...
  3. Copy the generated credential files to the target manifests directory...


|====

endif::alibaba[]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mburke5678 Except the fields under platform.alibabacloud.defaultMachinePlatform, I would suggest to also list the fields under platform.alibabacloud, in the table "Additional Alibaba Cloud configuration parameters". WDYT?

@mburke5678
Copy link
Contributor Author

@jianli-wei Here we go!

In Creating the installation configuration file:
Create the install-config.yaml file.
Set the credentialsMode parameter to Manual.

In Generating the required installation manifests
Generate the manifests

In Creating credentials for OpenShift Container Platform components with the ccoctl tool
Extract the list of CredentialsRequest objects
Use the ccoctl tool
Copy the generated credential files

We single-source the installation docs and re-use them throughout all of the different platforms. I first thought to combine Generating the required installation manifests and Creating credentials for OpenShift Container Platform components with the ccoctl tool into one file. But decided to honor that structure.

@openshift-ci openshift-ci bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 3, 2022
@openshift-ci openshift-ci bot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Mar 3, 2022
@openshift-ci openshift-ci bot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Mar 4, 2022
@jianli-wei
Copy link

LGTM, thanks!

@openshift-ci openshift-ci bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 7, 2022
@mburke5678 mburke5678 merged commit bd7127a into openshift:main Mar 7, 2022
@mburke5678
Copy link
Contributor Author

/cherrypick enterprise-4.10

@openshift-cherrypick-robot

@mburke5678: new pull request created: #42891

In response to this:

/cherrypick enterprise-4.10

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@mburke5678 mburke5678 deleted the OSDOCS2164_alibaba_install branch March 7, 2022 15:06
@bobfuru bobfuru modified the milestones: Future Release, OCP 4.10 GA Mar 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
branch/enterprise-4.10 peer-review-done Signifies that the peer review team has reviewed this PR size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet