Configure the cluster and vSphere credentials

  1. Change the directory to the kaas-bootstrap folder created by the get_container_cloud.sh script.

  2. Configure vSphere credentials by modifying templates/vsphere/vsphere-config.yaml.template:

    Note

    Contact your vSphere administrator to provide you with the values for the below parameters.

    vSphere configuration data

    Parameter

    Description

    SET_VSPHERE_SERVER

    IP address or FQDN of the vCenter Server.

    SET_VSPHERE_SERVER_PORT

    Port of the vCenter Server. For example, port: "8443". Leave empty to use "443" by default.

    SET_VSPHERE_DATACENTER

    vSphere data center name.

    SET_VSPHERE_SERVER_INSECURE

    Flag that controls validation of the vSphere Server certificate. Must be true or false.

    SET_VSPHERE_CAPI_PROVIDER_USERNAME

    vSphere Cluster API provider user name that you added when preparing the deployment user setup and permissions.

    SET_VSPHERE_CAPI_PROVIDER_PASSWORD

    vSphere Cluster API provider user password.

    SET_VSPHERE_CLOUD_PROVIDER_USERNAME

    vSphere Cloud Provider deployment user name that you added when preparing the deployment user setup and permissions.

    SET_VSPHERE_CLOUD_PROVIDER_PASSWORD

    vSphere Cloud Provider deployment user password.

  3. Prepare other deployment templates:

    1. Configure MetalLB parameters:

      1. Open the required configuration file for editing:

        Open templates/vsphere/metallbconfig.yaml.template. For a detailed MetalLBConfig object description, see API Reference: MetalLBConfig resource.

        Open templates/vsphere/cluster.yaml.template.

      2. Add SET_VSPHERE_METALLB_RANGE that is the MetalLB range of IP addresses to assign to load balancers for Kubernetes Services.

        Note

        To obtain the VSPHERE_METALLB_RANGE parameter for the selected vSphere network, contact your vSphere administrator who provides you with the IP ranges dedicated to your environment.

    2. Modify templates/vsphere/cluster.yaml.template:

      vSphere cluster network parameters
      1. Modify the following required network parameters:

        Required parameters

        Parameter

        Description

        SET_LB_HOST

        IP address from the provided vSphere network for Kubernetes API load balancer (Keepalived VIP).

        SET_VSPHERE_DATASTORE

        Name of the vSphere datastore. You can use different datastores for vSphere Cluster API and vSphere Cloud Provider.

        SET_VSPHERE_MACHINES_FOLDER

        Path to a folder where the cluster machines metadata will be stored.

        SET_VSPHERE_NETWORK_PATH

        Path to a network for cluster machines.

        SET_VSPHERE_RESOURCE_POOL_PATH

        Path to a resource pool in which VMs will be created.

        Note

        To obtain the LB_HOST parameter for the selected vSphere network, contact your vSphere administrator who provides you with the IP ranges dedicated to your environment.

        Modify other parameters if required. For example, add the corresponding values for cidrBlocks in the spec::clusterNetwork::services section.

      2. For either DHCP or non-DHCP vSphere network:

        1. Determine the vSphere network parameters as described in VMware vSphere network objects and IPAM recommendations.

        2. Provide the following additional parameters for a proper network setup on machines using embedded IP address management (IPAM) in templates/vsphere/cluster.yaml.template:

          Note

          To obtain IPAM parameters for the selected vSphere network, contact your vSphere administrator who provides you with IP ranges dedicated to your environment only.

          vSphere configuration data

          Parameter

          Description

          ipamEnabled

          Enables IPAM. Recommended value is true for either DHCP or non-DHCP networks.

          SET_VSPHERE_NETWORK_CIDR

          CIDR of the provided vSphere network. For example, 10.20.0.0/16.

          SET_VSPHERE_NETWORK_GATEWAY

          Gateway of the provided vSphere network.

          SET_VSPHERE_CIDR_INCLUDE_RANGES

          IP range for the cluster machines. Specify the range of the provided CIDR. For example, 10.20.0.100-10.20.0.200. If the DHCP network is used, this range must not intersect with the DHCP range of the network.

          SET_VSPHERE_CIDR_EXCLUDE_RANGES

          Optional. IP ranges to be excluded from being assigned to the cluster machines. The MetalLB range and SET_LB_HOST should not intersect with the addresses for IPAM. For example, 10.20.0.150-10.20.0.170.

          SET_VSPHERE_NETWORK_NAMESERVERS

          List of nameservers for the provided vSphere network.

    3. For RHEL deployments, fill out templates/vsphere/rhellicenses.yaml.template.

      RHEL license configuration

      Use one of the following set of parameters for RHEL machines subscription:

      • The user name and password of your RedHat Customer Portal account associated with your RHEL license for Virtual Datacenters.

        Optionally, provide the subscription allocation pools to use for the RHEL subscription activation. If not needed, remove the poolIDs field for subscription-manager to automatically select the licenses for machines.

        For example:

        spec:
          username: <username>
          password:
            value: <password>
          poolIDs:
          - <pool1>
          - <pool2>
        
      • The activation key and organization ID associated with your RedHat account with RHEL license for Virtual Datacenters. The activation key can be created by the organization administrator on the RedHat Customer Portal.

        If you use the RedHat Satellite server for management of your RHEL infrastructure, you can provide a pre-generated activation key from that server. In this case:

        • Provide the URL to the RedHat Satellite RPM for installation of the CA certificate that belongs to that server.

        • Configure squid-proxy on the management cluster to allow access to your Satellite server. For details, see Configure squid-proxy.

        For example:

        spec:
          activationKey:
            value: <activation key>
          orgID: "<organization ID>"
          rpmUrl: <rpm url>
        

        Caution

        For RHEL, verify mirrors configuration for your activation key. For more details, see RHEL 8 mirrors configuration.

      Warning

      Provide only one set of parameters. Mixing the parameters from different activation methods will cause deployment failure.

      Warning

      The kubectl apply command automatically saves the applied data as plain text into the kubectl.kubernetes.io/last-applied-configuration annotation of the corresponding object. This may result in revealing sensitive data in this annotation when creating or modifying the object.

      Therefore, do not use kubectl apply on this object. Use kubectl create, kubectl patch, or kubectl edit instead.

      If you used kubectl apply on this object, you can remove the kubectl.kubernetes.io/last-applied-configuration annotation from the object using kubectl edit.

  4. In bootstrap.env, add the KAAS_VSPHERE_ENABLED=true environment variable that enables the vSphere provider deployment in Container Cloud.