Create an OpenShift 4.X cluster in a single GCP instance.
Images are built and maintained in openshift-gce-devel GCE project. If you are an OpenShift developer and have access to openshift-gce-devel GCE project, all you need to get started is the gcloud CLI tool
For developers not in OpenShift organization, see the centos8-okd4 branch.
For information on images, see IMAGES.md.
Note: This script uses scp to copy pull-secret to gcp instance. Alternative is to
add pull-secret to metadata when creating the instance. However, metadata is printed
in the gcp console. This is why this setup uses scp instead.
You'll need a network and firewall rules to connect to your instance. This is already set up for developers in
openshift-gce-devel
, it's ocp4-libvirt-dev
. The script create-gcp-instance.sh
will launch an instance using this network.
If you prefer, you can run create-network-subnet.sh
and then the commands from the create-gcp-instance.sh to create an instance
in a different network. To use the preconfigured network ocp4-libvirt-dev
, run the script like so:
$ export INSTANCE=mytest
$ export GCP_USER=<whatever name you login as to gcp instance>, used to scp pull-secret to $HOME/pull-secret in gcp instance
$ export PULL_SECRET=/path/to/pull-secret-one-liner.json
$ ./create-gcp-instance.sh
You need to provide a release payload that you have access to. This setup will extract the installer binary from the RELEASE_IMAGE you provide. For public images see ocp-dev-preview and quay.io/ocp-dev-preview or for internal images see CI release images
Connect to the instance using SSH and create a cluster named $CLUSTER_NAME
using latest payload built from CI.
Install directory will be populated at $HOME/clusters/$CLUSTER_NAME
.
$ gcloud beta compute ssh --zone "us-east1-c" $INSTANCE --project "openshift-gce-devel"
$ RELEASE_IMAGE=registry.svc.ci.openshift.org/ocp/release:whatever create-cluster $CLUSTER_NAME
You can tear down and relaunch easily within your gcp instance like so:
$ gcloud beta compute ssh --zone "us-east1-c" $INSTANCE --project "openshift-gce-devel"
$ openshift-install destroy cluster --dir ~/clusters/$ClUSTER_NAME && rm -rf ~/clusters/$CLUSTER_NAME
Clean up your GCP instance when you are done with your development cluster. To delete the instance:
$ gcloud compute instances delete INSTANCE_NAME
Interact with your cluster with oc
while connected via ssh to your gcp instance.
Tools can be updated right from the instance itself.
Update the OpenShift installer from https://github.com/openshift/installer.git
master
using:
$ gcloud beta compute ssh --zone "us-east1-c" $INSTANCE --project "openshift-gce-devel"
$ update-installer
Update the OpenShift installer from https://github.com/repo-owner/installer.git
branch
using:
$ gcloud beta compute ssh --zone "us-east1-c" $INSTANCE --project "openshift-gce-devel"
$ update-installer repo-owner branch
It's possible to ignore all the defaults and helpers and simply use the image as a stable base for libvirt installer development.
You can use openshift-install
binary without the create-cluster
if you prefer.