Doc Fix: OpenStack Terraform Contrib README - added missing group_vars_path, updated instructions for cloud_provider, and added links to useful resources (#12889)

- Added setting the $CLUSTER bash variable as part of initial setup
- Add group_vars_path to inventory variables
- Update cloud_provider instructions
- Added relevant links to relevant 3rd party tutorials
This commit is contained in:
Joshua N Haupt
2026-04-17 06:51:04 -05:00
committed by GitHub
parent d564e4e77d
commit c693c73d29

View File

@@ -134,6 +134,7 @@ Terraform will be used to provision all of the OpenStack resources with base sof
Create an inventory directory for your cluster by copying the existing sample and linking the `hosts` script (used to build the inventory based on Terraform state):
```ShellSession
CLUSTER=your-cluster-name
cp -LRp contrib/terraform/openstack/sample-inventory inventory/$CLUSTER
cd inventory/$CLUSTER
ln -s ../../contrib/terraform/openstack/hosts
@@ -267,6 +268,7 @@ For your cluster, edit `inventory/$CLUSTER/cluster.tfvars`.
|`image_uuid`,`image_gfs_uuid`, `image_master_uuid` | UUID of the image to use in provisioning the compute resources. Should already be loaded into glance. |
|`ssh_user`,`ssh_user_gfs` | The username to ssh into the image with. This usually depends on the image you have selected |
|`public_key_path` | Path on your local workstation to the public key file you wish to use in creating the key pairs |
|`group_vars_path` | path to the inventory group vars directory, `./group_vars` by default |
|`number_of_k8s_masters`, `number_of_k8s_masters_no_floating_ip` | Number of nodes that serve as both master and etcd. These can be provisioned with or without floating IP addresses|
|`number_of_k8s_masters_no_etcd`, `number_of_k8s_masters_no_floating_ip_no_etcd` | Number of nodes that serve as just master with no etcd. These can be provisioned with or without floating IP addresses |
|`number_of_etcd` | Number of pure etcd nodes |
@@ -616,7 +618,13 @@ Edit `inventory/$CLUSTER/group_vars/all/all.yml`:
bin_dir: /opt/bin
```
- and **cloud_provider**:
- **external_cloud_provider**:
```yml
external_cloud_provider: openstack
```
- **Only if K8s < v1.31 - cloud_provider**:
```yml
cloud_provider: openstack
@@ -722,6 +730,12 @@ Basically you will install Gluster as
ansible-playbook --become -i inventory/$CLUSTER/hosts ./contrib/network-storage/glusterfs/glusterfs.yml
```
## Relevant Resources
- [HauptJ - Example cluster.tfvars using floating IPs for all Master and Nodes](https://gist.github.com/HauptJ/d72e2a8fe0698d448283a51e847a5dfa)
- [openmetal - Deploying a Kubespray cluster to OpenStack using Terraform](https://openmetal.io/docs/manuals/kubernetes-guides/deploying-a-kubespray-cluster-to-openstack-using-terraform/)
- [Guoqiang Lan - Deploy Kubernetes with Kubespray on OpenStack](https://guoqianglan.github.io/tutorial/cloud/deploy-kubernetes-with-kubespray-on-openstack/)
## What's next
Try out your new Kubernetes cluster with the [Hello Kubernetes service](https://kubernetes.io/docs/tasks/access-application-cluster/service-access-application-cluster/).