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