openshift / ibm-roks-toolkit

Tooling and controllers to enable hosted control plane OpenShift clusters running on IBM Cloud.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IBM-ROKS Toolkit

Overview

The IBM-ROKS toolkit is a set of tools and files that enables running OpenShift x on IBM Public Cloud in a hyperscale manner with many control planes hosted on a central management cluster. This tool was jointly developed by RedHat and IBM.

Getting Started

Install on standalone environment

  • Run make build to build the binary
  • Construct a "cluster.yaml" to define custom parameters for the cluster. Example found here: cluster.yaml.example
  • Construct a "pull-secret.txt" to provide authentication to pull from desired docker registries. Example found here: pull-secret.txt.example
  • Construct and run the render command, with optional fields below: ./bin/ibm-roks render
    • output-dir: Specify the directory where manifest files should be output (default ./manifests)
    • config: Specify the config file for this cluster (default ./cluster.yaml)
    • pull-secret: Specify the pull secret used to pull from desired docker registries (default ./pull-secret.txt)
    • pki-dir: Specify the directory where the input PKI files have been placed (default ./pki)
    • include-secrets: If true, PKI secrets will be included in rendered manifests (default false)
    • include-etcd: If true, Etcd manifests will be included in rendered manifests (default false)
    • include-autoapprover: If true, includes a simple autoapprover pod in manifests (default false)
    • include-vpn: If true, includes a VPN server, sidecar and client (default false)
    • include-registry: If true, includes a default registry config to deploy into the user cluster (default false)
  • Apply all the generated resources to the cluster kubectl apply -f output-dir/

Release Process

Creating a new release

New releases for the toolkit are created via pull requests.

  1. Run hack/bump-release.sh. This will increment the date in the release-date file.
  2. Submit a pull request with this change.
  3. Once the PR is merged, a post submit job will automatically be kicked off to publish the release.
    • You can track the status of the post release jobs for all branches here.
  4. (optional) Cherry-pick the change to other branches.

Changing the base image

The base images specified in the Dockerfiles are for testing only. When releases are created and images published, the base images are substituted. Master branch substitution definitions can be found here, with the other release branches located in the same directory. There is a golang base, which is used for the first stage of the Dockerfiles, and a roks-toolkit-base, which is used for the second stage. The roks-toolkit-base image is further defined here. To bump the base image for all toolkit images, submit a PR to update the image in that file. Once merged, follow the steps for Creating a new release.

About

Tooling and controllers to enable hosted control plane OpenShift clusters running on IBM Cloud.

License:Apache License 2.0


Languages

Language:Go 91.0%Language:Shell 6.8%Language:Makefile 1.1%Language:Dockerfile 1.0%