Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/deas/vsphere-openshift

OpenShift for VSphere UPI Bootstrap and Day 2 Bits
https://github.com/deas/vsphere-openshift

openshift terraform upi vsphere

Last synced: 24 days ago
JSON representation

OpenShift for VSphere UPI Bootstrap and Day 2 Bits

Awesome Lists containing this project

README

        

# 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`](https://github.com/ironicbadger/ocp4). You may want to check the writup on [openshift.com](https://www.openshift.com/blog/how-to-install-openshift-4.6-on-vmware-with-upi).

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`](./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](https://github.com/vmware/govmomi/issues/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`