Skip to content

deas/vsphere-openshift

Repository files navigation

VSphere OpenShift - Reusable UPI Tooling

This repo aims at providing tools helping with terraform based UPI of OpenShift/OKD on VSphere.

It is based on ironicbadger/ocp4. You may want to check the writup on openshift.com.

Contrary to its parent, this repo focuses on reusability and primarily targets OKD. We aim at compatibility with Redhat OpenShift, but at the time of writing, we don't have such an environment.

Usage

The main terraform module is at the root of the repository. It covers a single cluster. An example how it may be used can be found in examples/demo.

Inputs

Name Description Type Default Required
bootstrap_complete n/a string "false" no
bootstrap_disk_size n/a number 40 no
bootstrap_ip n/a string n/a yes
bootstrap_memory n/a number 8192 no
bootstrap_num_cpu n/a number 4 no
cluster_domain n/a string n/a yes
cluster_slug n/a string n/a yes
cos_template n/a string n/a yes
dns n/a list(string) n/a yes
ignition_gen n/a list(string) [] no
ignition_vars n/a
object({
vc = string
vc_username = string
vc_password = string
vc_datacenter = string
# vc_defaultDatastore = var.vc_ds
pullSecret = optional(string) #, "") # file("${path.module}/pull-secret-fake.json"))
# data.local_file.pull_secret.content
sshKey = string
apiVIP = optional(string, "") # TODO: Check
ingressVIP = optional(string, "") # TODO: Check
httpsProxy = optional(string, "")
noProxy = optional(string, "")

})
n/a yes
master_nodes TODO: Might make sense to condense into single nodes list
object({
disk_size = number
memory = number
num_cpu = number
ips = list(string)
machine_cidr = string
netmask = string
gateway = string
network = string
})
null no
ntp_servers n/a list(string) [] no
vc_cluster n/a string n/a yes
vc_dc n/a string n/a yes
vc_ds n/a string n/a yes
vc_vm_folder n/a string n/a yes
worker_nodes n/a
list(object({
disk_size = number
memory = number
num_cpu = number
slug = string
network = string
ips = list(string)
machine_cidr = string
netmask = string
gateway = string
network = string
attachments = list(list(map(string)))
}))
null no

Outputs

Name Description
api_endpoint n/a
bootstrap_kubeconfig n/a
bu terraform output -json cluster | jq '.bu["99-master-chrony.bu"]' -r
ingress_domain n/a
kubeadmin_password n/a

TODO

  • Bits that should be worked on are marked with TODO tags.
  • VCSim does not support QueryVirtualDiskInfo_Task #3000
  • Error: error fetching DVS after creation: ServerFaultCode: The object has already been deleted or has not been completely created
  • Error: could not find DVS "50 2c 0e c6 65 64 60 98-43 b8 ff 56 1c 19 1d 56": ServerFaultCode: DistributedVirtualSwitchManager:DVSManager does not implement: QueryDvsByUuid

About

OpenShift for VSphere UPI Bootstrap and Day 2 Bits

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published