From 3ca205446e82724380ed416a10ca94afe1607103 Mon Sep 17 00:00:00 2001 From: Fredrik Liv Date: Thu, 27 May 2021 21:02:30 +0200 Subject: [PATCH] Added possibility to specify vSphere credentials via env variables (#7646) * Added possibility to specify vSphere credentials via env variables * Removed excessive spacing --- docs/vsphere-csi.md | 40 +++++++++---------- docs/vsphere.md | 20 +++++----- inventory/sample/group_vars/all/vsphere.yml | 4 +- .../vsphere/defaults/main.yml | 3 ++ 4 files changed, 35 insertions(+), 32 deletions(-) diff --git a/docs/vsphere-csi.md b/docs/vsphere-csi.md index 1a7aa58cf..5c537795a 100644 --- a/docs/vsphere-csi.md +++ b/docs/vsphere-csi.md @@ -8,26 +8,26 @@ To set the number of replicas for the vSphere CSI controller, you can change `vs You need to source the vSphere credentials you use to deploy your machines that will host Kubernetes. -| Variable | Required | Type | Choices | Default | Comment | -|---------------------------------------------|----------|---------|----------------------------|---------------------------|----------------------------------------------------------------| -| external_vsphere_vcenter_ip | TRUE | string | | | IP/URL of the vCenter | -| external_vsphere_vcenter_port | TRUE | string | | "443" | Port of the vCenter API | -| external_vsphere_insecure | TRUE | string | "true", "false" | "true" | set to "true" if the host above uses a self-signed cert | -| external_vsphere_user | TRUE | string | | | User name for vCenter with required privileges | -| external_vsphere_password | TRUE | string | | | Password for vCenter | -| external_vsphere_datacenter | TRUE | string | | | Datacenter name to use | -| external_vsphere_kubernetes_cluster_id | TRUE | string | | "kubernetes-cluster-id" | Kubernetes cluster ID to use | -| external_vsphere_version | TRUE | string | | "6.7u3" | Vmware Vsphere version where located all VMs | -| vsphere_cloud_controller_image_tag | TRUE | string | | "latest" | Kubernetes cluster ID to use | -| vsphere_syncer_image_tag | TRUE | string | | "v1.0.2" | Syncer image tag to use | -| vsphere_csi_attacher_image_tag | TRUE | string | | "v1.1.1" | CSI attacher image tag to use | -| vsphere_csi_controller | TRUE | string | | "v1.0.2" | CSI controller image tag to use | -| vsphere_csi_controller_replicas | TRUE | integer | | 1 | Number of pods Kubernetes should deploy for the CSI controller | -| vsphere_csi_liveness_probe_image_tag | TRUE | string | | "v1.1.0" | CSI liveness probe image tag to use | -| vsphere_csi_provisioner_image_tag | TRUE | string | | "v1.2.2" | CSI provisioner image tag to use | -| vsphere_csi_node_driver_registrar_image_tag | TRUE | string | | "v1.1.0" | CSI node driver registrat image tag to use | -| vsphere_csi_driver_image_tag | TRUE | string | | "v1.0.2" | CSI driver image tag to use | -vsphere_csi_resizer_tag | TRUE | string | | "v1.0.0" | CSI resizer image tag to use +| Variable | Required | Type | Choices | Default | Comment | +|---------------------------------------------|----------|---------|----------------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------| +| external_vsphere_vcenter_ip | TRUE | string | | | IP/URL of the vCenter | +| external_vsphere_vcenter_port | TRUE | string | | "443" | Port of the vCenter API | +| external_vsphere_insecure | TRUE | string | "true", "false" | "true" | set to "true" if the host above uses a self-signed cert | +| external_vsphere_user | TRUE | string | | | User name for vCenter with required privileges (Can also be specified with the `VSPHERE_USER` environment variable) | +| external_vsphere_password | TRUE | string | | | Password for vCenter (Can also be specified with the `VSPHERE_PASSWORD` environment variable) | +| external_vsphere_datacenter | TRUE | string | | | Datacenter name to use | +| external_vsphere_kubernetes_cluster_id | TRUE | string | | "kubernetes-cluster-id" | Kubernetes cluster ID to use | +| external_vsphere_version | TRUE | string | | "6.7u3" | Vmware Vsphere version where located all VMs | +| vsphere_cloud_controller_image_tag | TRUE | string | | "latest" | Kubernetes cluster ID to use | +| vsphere_syncer_image_tag | TRUE | string | | "v1.0.2" | Syncer image tag to use | +| vsphere_csi_attacher_image_tag | TRUE | string | | "v1.1.1" | CSI attacher image tag to use | +| vsphere_csi_controller | TRUE | string | | "v1.0.2" | CSI controller image tag to use | +| vsphere_csi_controller_replicas | TRUE | integer | | 1 | Number of pods Kubernetes should deploy for the CSI controller | +| vsphere_csi_liveness_probe_image_tag | TRUE | string | | "v1.1.0" | CSI liveness probe image tag to use | +| vsphere_csi_provisioner_image_tag | TRUE | string | | "v1.2.2" | CSI provisioner image tag to use | +| vsphere_csi_node_driver_registrar_image_tag | TRUE | string | | "v1.1.0" | CSI node driver registrat image tag to use | +| vsphere_csi_driver_image_tag | TRUE | string | | "v1.0.2" | CSI driver image tag to use | +| vsphere_csi_resizer_tag | TRUE | string | | "v1.0.0" | CSI resizer image tag to use ## Usage example diff --git a/docs/vsphere.md b/docs/vsphere.md index 5881a38b3..e9834846c 100644 --- a/docs/vsphere.md +++ b/docs/vsphere.md @@ -30,16 +30,16 @@ external_cloud_provider: "vsphere" Then, `inventory/sample/group_vars/vsphere.yml`, you need to declare your vCenter credentials and enable the vSphere CSI following the description below. -| Variable | Required | Type | Choices | Default | Comment | -|----------------------------------------|----------|---------|----------------------------|---------|---------------------------------------------------------------------------| -| external_vsphere_vcenter_ip | TRUE | string | | | IP/URL of the vCenter | -| external_vsphere_vcenter_port | TRUE | string | | "443" | Port of the vCenter API | -| external_vsphere_insecure | TRUE | string | "true", "false" | "true" | set to "true" if the host above uses a self-signed cert | -| external_vsphere_user | TRUE | string | | | User name for vCenter with required privileges | -| external_vsphere_password | TRUE | string | | | Password for vCenter | -| external_vsphere_datacenter | TRUE | string | | | Datacenter name to use | -| external_vsphere_kubernetes_cluster_id | TRUE | string | | "kubernetes-cluster-id" | Kubernetes cluster ID to use | -| vsphere_csi_enabled | TRUE | boolean | | false | Enable vSphere CSI | +| Variable | Required | Type | Choices | Default | Comment | +|----------------------------------------|----------|---------|----------------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------| +| external_vsphere_vcenter_ip | TRUE | string | | | IP/URL of the vCenter | +| external_vsphere_vcenter_port | TRUE | string | | "443" | Port of the vCenter API | +| external_vsphere_insecure | TRUE | string | "true", "false" | "true" | set to "true" if the host above uses a self-signed cert | +| external_vsphere_user | TRUE | string | | | User name for vCenter with required privileges (Can also be specified with the `VSPHERE_USER` environment variable) | +| external_vsphere_password | TRUE | string | | | Password for vCenter (Can also be specified with the `VSPHERE_PASSWORD` environment variable) | +| external_vsphere_datacenter | TRUE | string | | | Datacenter name to use | +| external_vsphere_kubernetes_cluster_id | TRUE | string | | "kubernetes-cluster-id" | Kubernetes cluster ID to use | +| vsphere_csi_enabled | TRUE | boolean | | false | Enable vSphere CSI | Example configuration: diff --git a/inventory/sample/group_vars/all/vsphere.yml b/inventory/sample/group_vars/all/vsphere.yml index e6033d455..b3eb2b060 100644 --- a/inventory/sample/group_vars/all/vsphere.yml +++ b/inventory/sample/group_vars/all/vsphere.yml @@ -2,8 +2,8 @@ # external_vsphere_vcenter_ip: "myvcenter.domain.com" # external_vsphere_vcenter_port: "443" # external_vsphere_insecure: "true" -# external_vsphere_user: "administrator@vsphere.local" -# external_vsphere_password: "K8s_admin" +# external_vsphere_user: "administrator@vsphere.local" # Can also be set via the `VSPHERE_USER` environment variable +# external_vsphere_password: "K8s_admin" # Can also be set via the `VSPHERE_PASSWORD` environment variable # external_vsphere_datacenter: "DATACENTER_name" # external_vsphere_kubernetes_cluster_id: "kubernetes-cluster-id" diff --git a/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml b/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml index 4691e324a..91b126ed9 100644 --- a/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml +++ b/roles/kubernetes-apps/external_cloud_controller/vsphere/defaults/main.yml @@ -9,3 +9,6 @@ external_vsphere_insecure: "true" ## arg2: "value2" external_vsphere_cloud_controller_extra_args: {} external_vsphere_cloud_controller_image_tag: "latest" + +external_vsphere_user: "{{ lookup('env','VSPHERE_USER') }}" +external_vsphere_password: "{{ lookup('env','VSPHERE_PASSWORD') }}"