github.com/SUSE/skuba@v1.4.17/ci/infra/vmware/README.md (about)

     1  ## Introduction
     2  
     3  These terraform definitions are going to create the CaaSP v4 cluster on top of VMWare vSphere cluster.
     4  
     5  This code was developed and tested on VMware vSphere cluster based on VMware ESXi 6.7.20000.
     6  
     7  ## Deployment
     8  
     9  Prepare a VM template machine in vSphere by following [vmware-deployment guide](https://susedoc.github.io/doc-caasp/master/caasp-deployment/single-html/#_vm_preparation_for_creating_a_template).
    10  
    11  It doesn't matter if you deploy the VM template for SLES15-SP1 manually by using ISO or you use pregenerated vmdk SLES15-SP1 JeOS image but in both cases you'll need `cloud-init-vmware-guestinfo` package (from SUSE CaaS Platform module), `cloud-init` package (from Public Cloud Module) and its dependent packages installed. The respective services must be enabled:
    12  
    13  ```sh
    14  systemctl enable cloud-init cloud-init-local cloud-config cloud-final
    15  ```
    16  
    17  Next you need to define following environment variables in your current shell with proper value:
    18  
    19  ```sh
    20  # HINT: Please enter just a hostname without specifing a protocol in VSPHERE_SERVER variable (using https by default).
    21  export VSPHERE_SERVER="vsphere.cluster.endpoint.hostname"
    22  export VSPHERE_USER="username"
    23  export VSPHERE_PASSWORD="password"
    24  export VSPHERE_ALLOW_UNVERIFIED_SSL="true"
    25  ```
    26  
    27  Once you perform a [Customization](#Customization) you can use `terraform` to deploy the cluster:
    28  
    29  ```sh
    30  terraform init
    31  terraform validate
    32  terraform apply
    33  ```
    34  
    35  ## Machine access
    36  
    37  It is important to have your public ssh key within the `authorized_keys`, this is done by `cloud-init` through a terraform variable called `authorized_keys`.
    38  
    39  All the instances have a `sles` user, password is not set. User can login only as `sles` user over SSH by using his private ssh key. The `sles` user can perform `sudo` without specifying a password.
    40  
    41  ## Load balancer
    42  
    43  VMWare vSPhere doesn't offer a load-balancer solution. Please expose port 6443 for the Kubernetes api-servers on the master nodes on a local load-balancer using round-robin 1:1 port forwarding.
    44  
    45  NOTE: Development version of these VMWare Terraform definitions will deploy preconfigured load-balancer VM node which is using haproxy software. Use its IP address in `skuba cluster init --control-plane <ip-load-balancer> <cluster-name>` command. For accessing haproxy statistics open http://ip-load-balancer:9000/stats in your browser.
    46  
    47  ## Customization
    48  
    49  IMPORTANT: Please define unique `stack_name` value in `terrafrom.tfvars` file to not interfere with other deployments.
    50  
    51  Copy the `terraform.tfvars.example` to `terraform.tfvars` and provide reasonable values.
    52  
    53  ## Variables
    54  
    55  `vsphere_datastore` - Provide the datastore to use in vSphere\
    56  `vsphere_datacenter` - Provide the datacenter to use in vSphere\
    57  `vsphere_datastore_cluster` - Provide the datastore cluster to use on the vSphere server\
    58  `vsphere_network` - Provide the network to use in vSphere - this network must be able to access the ntp servers and the nodes must be able to reach each other\
    59  `vsphere_resource_pool` - Provide the resource pool the machines will be running in\
    60  `template_name` - The template name the machines will be copied from\
    61  `firmware` - Replace the default "bios" value with "efi" in case your template was created by using EFI firmware\
    62  `stack_name` - Identifier to make all your resources unique and avoid clashes with other users of this terraform project\
    63  `authorized_keys` - A list of ssh public keys that will be installed on all nodes\
    64  `repositories` - Additional repositories that will be added on all nodes\
    65  `packages` - Additional packages that will be installed on all nodes
    66  
    67  ### Please use one of the following options:
    68  
    69  `caasp_registry_code` - Provide SUSE CaaSP Product Registration Code in `registration.auto.tfvars` file to register product against official SCC server\
    70  `rmt_server_name` - Provide SUSE Repository Mirroring Tool Server Name in `registration.auto.tfvars` file to use repositories stored on RMT server