Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/deas/vsphere-openshift
- Owner: deas
- License: apache-2.0
- Created: 2022-12-14T08:25:31.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-16T23:15:10.000Z (11 months ago)
- Last Synced: 2024-04-15T02:45:06.315Z (7 months ago)
- Topics: openshift, terraform, upi, vsphere
- Language: HCL
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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({| n/a | yes |
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, "")
})
| master\_nodes | TODO: Might make sense to condense into single nodes list |object({| `null` | no |
disk_size = number
memory = number
num_cpu = number
ips = list(string)
machine_cidr = string
netmask = string
gateway = string
network = string
})
| 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({| `null` | no |
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)))
}))## 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`