{"id":16726245,"url":"https://github.com/deas/vsphere-openshift","last_synced_at":"2025-03-15T15:24:35.776Z","repository":{"id":142379237,"uuid":"578088640","full_name":"deas/vsphere-openshift","owner":"deas","description":"OpenShift for VSphere UPI Bootstrap and Day 2 Bits","archived":false,"fork":false,"pushed_at":"2023-12-16T23:15:10.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-22T05:28:27.182Z","etag":null,"topics":["openshift","terraform","upi","vsphere"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-12-14T08:25:31.000Z","updated_at":"2023-03-13T10:57:13.000Z","dependencies_parsed_at":"2023-12-17T00:24:29.510Z","dependency_job_id":null,"html_url":"https://github.com/deas/vsphere-openshift","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deas%2Fvsphere-openshift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deas%2Fvsphere-openshift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deas%2Fvsphere-openshift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deas%2Fvsphere-openshift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deas","download_url":"https://codeload.github.com/deas/vsphere-openshift/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243747662,"owners_count":20341538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openshift","terraform","upi","vsphere"],"created_at":"2024-10-12T22:52:35.444Z","updated_at":"2025-03-15T15:24:35.750Z","avatar_url":"https://github.com/deas.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VSphere OpenShift - Reusable UPI Tooling\n\nThis repo aims at providing tools helping with terraform based UPI of OpenShift/OKD on VSphere.\n\nIt 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).\n\nContrary 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.\n\n## Usage\nThe 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).\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| bootstrap\\_complete | n/a | `string` | `\"false\"` | no |\n| bootstrap\\_disk\\_size | n/a | `number` | `40` | no |\n| bootstrap\\_ip | n/a | `string` | n/a | yes |\n| bootstrap\\_memory | n/a | `number` | `8192` | no |\n| bootstrap\\_num\\_cpu | n/a | `number` | `4` | no |\n| cluster\\_domain | n/a | `string` | n/a | yes |\n| cluster\\_slug | n/a | `string` | n/a | yes |\n| cos\\_template | n/a | `string` | n/a | yes |\n| dns | n/a | `list(string)` | n/a | yes |\n| ignition\\_gen | n/a | `list(string)` | `[]` | no |\n| ignition\\_vars | n/a | \u003cpre\u003eobject({\u003cbr\u003e    vc            = string\u003cbr\u003e    vc_username   = string\u003cbr\u003e    vc_password   = string\u003cbr\u003e    vc_datacenter = string\u003cbr\u003e    # vc_defaultDatastore = var.vc_ds\u003cbr\u003e    pullSecret = optional(string) #, \"\") # file(\"${path.module}/pull-secret-fake.json\"))\u003cbr\u003e    # data.local_file.pull_secret.content\u003cbr\u003e    sshKey     = string\u003cbr\u003e    apiVIP     = optional(string, \"\") # TODO: Check\u003cbr\u003e    ingressVIP = optional(string, \"\") # TODO: Check\u003cbr\u003e    httpsProxy = optional(string, \"\")\u003cbr\u003e    noProxy    = optional(string, \"\")\u003cbr\u003e\u003cbr\u003e  })\u003c/pre\u003e | n/a | yes |\n| master\\_nodes | TODO: Might make sense to condense into single nodes list | \u003cpre\u003eobject({\u003cbr\u003e    disk_size    = number\u003cbr\u003e    memory       = number\u003cbr\u003e    num_cpu      = number\u003cbr\u003e    ips          = list(string)\u003cbr\u003e    machine_cidr = string\u003cbr\u003e    netmask      = string\u003cbr\u003e    gateway      = string\u003cbr\u003e    network      = string\u003cbr\u003e  })\u003c/pre\u003e | `null` | no |\n| ntp\\_servers | n/a | `list(string)` | `[]` | no |\n| vc\\_cluster | n/a | `string` | n/a | yes |\n| vc\\_dc | n/a | `string` | n/a | yes |\n| vc\\_ds | n/a | `string` | n/a | yes |\n| vc\\_vm\\_folder | n/a | `string` | n/a | yes |\n| worker\\_nodes | n/a | \u003cpre\u003elist(object({\u003cbr\u003e    disk_size    = number\u003cbr\u003e    memory       = number\u003cbr\u003e    num_cpu      = number\u003cbr\u003e    slug         = string\u003cbr\u003e    network      = string\u003cbr\u003e    ips          = list(string)\u003cbr\u003e    machine_cidr = string\u003cbr\u003e    netmask      = string\u003cbr\u003e    gateway      = string\u003cbr\u003e    network      = string\u003cbr\u003e    attachments  = list(list(map(string)))\u003cbr\u003e  }))\u003c/pre\u003e | `null` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| api\\_endpoint | n/a |\n| bootstrap\\_kubeconfig | n/a |\n| bu | terraform output -json cluster \\| jq '.bu[\"99-master-chrony.bu\"]' -r |\n| ingress\\_domain | n/a |\n| kubeadmin\\_password | n/a |\n\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n\n## TODO\n- Bits that should be worked on are marked with `TODO` tags.\n- [VCSim does not support QueryVirtualDiskInfo_Task #3000](https://github.com/vmware/govmomi/issues/3000)\n- `Error: error fetching DVS after creation: ServerFaultCode: The object has already been deleted or has not been completely created`\n- `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`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeas%2Fvsphere-openshift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeas%2Fvsphere-openshift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeas%2Fvsphere-openshift/lists"}