diff --git a/docs/vsphere.md b/docs/vsphere.md index 5374304c1..8f91cf078 100644 --- a/docs/vsphere.md +++ b/docs/vsphere.md @@ -34,10 +34,12 @@ Then, in the same file, you need to declare your vCenter credential following th | vsphere_datastore | TRUE | string | | | Datastore name to use | | vsphere_working_dir | TRUE | string | | | Working directory from the view "VMs and template" in the vCenter where VM are placed | | vsphere_scsi_controller_type | TRUE | string | buslogic, pvscsi, parallel | pvscsi | SCSI controller name. Commonly "pvscsi". | -| vsphere_vm_uuid | FALSE | string | | | VM Instance UUID of virtual machine that host K8s master. Can be retrieved from instanceUuid property in VmConfigInfo, or as vc.uuid in VMX file or in `/sys/class/dmi/id/product_serial` | +| vsphere_vm_uuid | FALSE | string | | | VM Instance UUID of virtual machine that host K8s master. Can be retrieved from instanceUuid property in VmConfigInfo, or as vc.uuid in VMX file or in `/sys/class/dmi/id/product_serial` (Optional, only used for Kubernetes <= 1.9.2) | | vsphere_public_network | FALSE | string | | Blank | Name of the network the VMs are joined to | +| vsphere_resource_pool | FALSE | string | | Blank | Name of the Resource pool where the VMs are located (Optional, only used for Kubernetes >= 1.9.2) | Example configuration + ```yml vsphere_vcenter_ip: "myvcenter.domain.com" vsphere_vcenter_port: 443 @@ -48,6 +50,7 @@ vsphere_datacenter: "DATACENTER_name" vsphere_datastore: "DATASTORE_name" vsphere_working_dir: "Docker_hosts" vsphere_scsi_controller_type: "pvscsi" +vsphere_resource_pool: "K8s-Pool" ``` ## Deployment diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml index e81a2a148..4199d4c7f 100644 --- a/roles/kubernetes/preinstall/defaults/main.yml +++ b/roles/kubernetes/preinstall/defaults/main.yml @@ -47,6 +47,8 @@ vsphere_datacenter: "{{ lookup('env', 'VSPHERE_DATACENTER') }}" vsphere_datastore: "{{ lookup('env', 'VSPHERE_DATASTORE') }}" vsphere_working_dir: "{{ lookup('env', 'VSPHERE_WORKING_DIR') }}" vsphere_insecure: "{{ lookup('env', 'VSPHERE_INSECURE') }}" +vsphere_resource_pool: "{{ lookup('env', 'VSPHERE_RESOURCE_POOL') }}" + vsphere_scsi_controller_type: pvscsi # vsphere_public_network is name of the network the VMs are joined to vsphere_public_network: "{{ lookup('env', 'VSPHERE_PUBLIC_NETWORK')|default('') }}" diff --git a/roles/kubernetes/preinstall/templates/vsphere-cloud-config.j2 b/roles/kubernetes/preinstall/templates/vsphere-cloud-config.j2 index ab58f7485..d82d72bf8 100644 --- a/roles/kubernetes/preinstall/templates/vsphere-cloud-config.j2 +++ b/roles/kubernetes/preinstall/templates/vsphere-cloud-config.j2 @@ -1,15 +1,36 @@ [Global] -datacenter = "{{ vsphere_datacenter }}" -datastore = "{{ vsphere_datastore }}" -insecure-flag = {{ vsphere_insecure }} +user = "{{ vsphere_user }}" password = "{{ vsphere_password }}" port = {{ vsphere_vcenter_port }} -server = "{{ vsphere_vcenter_ip }}" -user = "{{ vsphere_user }}" +insecure-flag = {{ vsphere_insecure }} + +{% if kube_version | version_compare('v1.9.2', '>=') %} +datacenters = "{{ vsphere_datacenter }}" +{% else %} +datastore = "{{ vsphere_datastore }}" +datacenter = "{{ vsphere_datacenter }}" working-dir = "{{ vsphere_working_dir }}" -{% if vsphere_vm_uuid is defined %} -vm-uuid = {{ vsphere_vm_uuid }} +server = "{{ vsphere_vcenter_ip }}" +{% if vsphere_vm_uuid is defined and vsphere_vm_uuid != "" %} +vm-uuid = "{{ vsphere_vm_uuid }}" {% endif %} +{% endif %} + +{% if kube_version | version_compare('v1.9.2', '>=') %} + +[VirtualCenter "{{ vsphere_vcenter_ip }}"] + + +[Workspace] +server = "{{ vsphere_vcenter_ip }}" +datacenter = "{{ vsphere_datacenter }}" +folder = "{{ vsphere_working_dir }}" +default-datastore = "{{ vsphere_datastore }}" +{% if vsphere_resource_pool is defined and vsphere_resource_pool != "" %} +resourcepool-path = "{{ vsphere_resource_pool }}" +{% endif %} +{% endif %} + [Disk] scsicontrollertype = {{ vsphere_scsi_controller_type }} @@ -17,4 +38,4 @@ scsicontrollertype = {{ vsphere_scsi_controller_type }} {% if vsphere_public_network is defined and vsphere_public_network != "" %} [Network] public-network = {{ vsphere_public_network }} -{% endif %} +{% endif %} \ No newline at end of file