https://github.com/ctron/hcloud-okd-setup
Simple OKD setup for Hetzner Cloud
https://github.com/ctron/hcloud-okd-setup
cloud okd openshift
Last synced: 12 months ago
JSON representation
Simple OKD setup for Hetzner Cloud
- Host: GitHub
- URL: https://github.com/ctron/hcloud-okd-setup
- Owner: ctron
- License: epl-2.0
- Created: 2018-08-17T15:41:38.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-02-06T08:33:06.000Z (over 7 years ago)
- Last Synced: 2025-04-21T03:41:39.186Z (about 1 year ago)
- Topics: cloud, okd, openshift
- Language: Shell
- Homepage:
- Size: 104 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OKD setup for Hetzner Cloud
This folder takes care of setting up a new machine with OKD and performs all
the necessary configuration. The idea is to be able to create a bunch of
OKD clusters, with proper TLS and DNS support, running on a public infrastructure.
**Note:** This module uses Git submodules. Either clone with `--recursive` or run `git submodule update --init --recursive` after cloning.
## Prepare yourself
This setup requires a few things before you can start.
### Software
You will need CentOS/RHEL, and a few tools installed:
sudo yum install gettext
If you want to to use the Lexicon DNS API support:
sudo yum install python34 python34-pip
pip3 install --user dns-lexicon
### Hetzner Cloud
You will need an account at: https://console.hetzner.cloud
Additionally you will need the `hcloud` command line tool: https://github.com/hetznercloud/cli/releases
Register your account with `hcloud context create …`. Also see: https://github.com/hetznercloud/cli#getting-started
### Local configuration
You will need to create a file called `config` in this directory. You may use
the file `config.example` as a basis for this.
### DNS integeration
See: [dns/README.md](dns/README.md)
### TLS with Let's encrypt
See: [letsencrypt/README.md](letsencrypt/README.md)
## Creating a new instance
After you done all the preparations you can simple create a new instance by calling
./create foo-bar
And the setup will begin to create your new OKD instance. You can log in to the
machine using.
It takes around 10-15 minutes until the installation is ready. You can check
the progress in the file `/var/log/okd-setup.log`. The setup if complete if
the last line shows:
persistentvolume "pv-18" created
persistentvolume "pv-19" created
persistentvolume "pv-20" created
After that the machine will be rebooted one last time.
## Accessing OKD
Once the setup is complete you can access the instance using either the
Web Console or the `oc` command line tool on port 8443. Using the credentials
`developer` / `developer` (note: it might be wise to change them!)
## About the environment
By default a user `developer` will be created, which has the password `developer` set
as a default. You can change this in the configuration.
Optionally you can create an `admin` user, which has cluster admin privileges assigned.
By default this user will not be created, but you can enable the creating by specifying a
password for the admin user in the variable `ADMIN_PASSWORD`, in the configuration.
This setup will also create a few PVs, backed by the local storage and attached by using NFS.
The hostname will be printed out by the `create` command. You can access the
server using the Web UI or the API using the URL `https://:8443`
## The process
This is what will happen when you create a new machine:
* Create a new server instance, upload the `cloud-config.yaml` file in the process
* Register the newly assigned IP with the DNS
* When the machine boots:
* Run first boot cloud init
* Install a bunch of packages
* Set SElinux to "permissive"
* Create the "run-on-boot" service
* Reboot
* The machine will reboot, the "run-on-boot" service will be executed:
* SElinux will relabel the filesystem
* SElinux will be switched to enforcing
* Reboot
* Again the "run-on-boot" script will be called
* Disable the "run-on-boot" service
* Run `/okd/setup`
* Delete the "run-on-boot" service
* Reboot
The SElinux steps are necessary as Hetzner has SElinux disabled by default,
however SElinux is required by OKD. Also see [fix-selinux/README.md](fix-selinux/README.md).