README
¶
Openshift Installer
Supported Platforms
- AWS
- Libvirt with KVM
- OpenStack (Experimental)
Quick Start
First, install all build dependencies.
Clone this repository to src/github.com/openshift/installer
in your GOPATH. Then build the openshift-install
binary with:
hack/build.sh
This will create bin/openshift-install
. This binary can then be invoked to create an OpenShift cluster, like so:
bin/openshift-install create cluster
The installer requires the terraform binary either alongside openshift-install or in $PATH
.
If you don't have terraform, run the following to create bin/terraform
:
hack/get-terraform.sh
The installer will show a series of prompts for user-specific information (e.g. admin password) and use reasonable defaults for everything else. In non-interactive contexts, prompts can be bypassed by providing appropriately-named environment variables. Refer to the user documentation for more information.
Connect to the cluster
Console
Shortly after the cluster
command completes, the OpenShift console will come up at https://${OPENSHIFT_INSTALL_CLUSTER_NAME}-api.${OPENSHIFT_INSTALL_BASE_DOMAIN}:6443/console/
.
You may need to ignore a certificate warning if you did not configure a certificate authority known to your browser.
Log in using the admin credentials you configured when creating the cluster.
Kubeconfig
You can also use the admin kubeconfig which openshift-install create cluster
placed under --dir
(which defaults to .
) in auth/kubeconfig
.
If you launched the cluster with openshift-install --dir "${DIR}" create cluster
, you can use:
export KUBECONFIG="${DIR}/auth/kubeconfig"
Cleanup
Destroy the cluster and release associated resources with:
openshift-install destroy cluster
Note that you almost certainly also want to clean up the installer state files too, including auth/
, terraform.tfstate
, etc.
The best thing to do is always pass the --dir
argument to install
and destroy
.
And if you want to reinstall from scratch, rm -rf
the asset directory beforehand.
Directories
¶
Path | Synopsis |
---|---|
cmd
|
|
pkg
|
|
asset
Package asset defines the asset dependencies and implements the graph engine.
|
Package asset defines the asset dependencies and implements the graph engine. |
asset/cluster
Package cluster contains asset targets that generates the terraform file, prepare the infra, and bootstrap the cluster.
|
Package cluster contains asset targets that generates the terraform file, prepare the infra, and bootstrap the cluster. |
asset/cluster/aws
Package aws extracts AWS metadata from install configurations.
|
Package aws extracts AWS metadata from install configurations. |
asset/cluster/libvirt
Package libvirt extracts libvirt metadata from install configurations.
|
Package libvirt extracts libvirt metadata from install configurations. |
asset/cluster/openstack
Package openstack extracts OpenStack metadata from install configurations.
|
Package openstack extracts OpenStack metadata from install configurations. |
asset/installconfig
Package installconfig generates the install config assets based on its dependencies.
|
Package installconfig generates the install config assets based on its dependencies. |
asset/installconfig/aws
Package aws collects AWS-specific configuration.
|
Package aws collects AWS-specific configuration. |
asset/installconfig/libvirt
Package libvirt collects libvirt-specific configuration.
|
Package libvirt collects libvirt-specific configuration. |
asset/installconfig/openstack
Package openstack collects OpenStack-specific configuration.
|
Package openstack collects OpenStack-specific configuration. |
asset/kubeconfig
Package kubeconfig defines and generates the kubeconfig assets.
|
Package kubeconfig defines and generates the kubeconfig assets. |
asset/machines
Package machines is responsible for creating Machine objects for machinepools.
|
Package machines is responsible for creating Machine objects for machinepools. |
asset/machines/aws
Package aws generates Machine objects for aws.
|
Package aws generates Machine objects for aws. |
asset/machines/libvirt
Package libvirt generates Machine objects for libvirt.
|
Package libvirt generates Machine objects for libvirt. |
asset/machines/openstack
Package openstack generates Machine objects for openstack.
|
Package openstack generates Machine objects for openstack. |
asset/manifests
Package manifests deals with creating manifests for all manifests to be installed for the cluster
|
Package manifests deals with creating manifests for all manifests to be installed for the cluster |
asset/templates
Package templates deals with creating template assets that will be used by other assets
|
Package templates deals with creating template assets that will be used by other assets |
asset/tls
Package tls defines and generates the tls assets based on its dependencies.
|
Package tls defines and generates the tls assets based on its dependencies. |
destroy
Package destroy contains tools for destroying clusters based on their metadata.
|
Package destroy contains tools for destroying clusters based on their metadata. |
destroy/bootstrap
Package bootstrap uses Terraform to remove bootstrap resources.
|
Package bootstrap uses Terraform to remove bootstrap resources. |
destroy/libvirt
Package libvirt provides a cluster-destroyer for libvirt clusters.
|
Package libvirt provides a cluster-destroyer for libvirt clusters. |
destroy/openstack
Package openstack provides a cluster-destroyer for openstack clusters.
|
Package openstack provides a cluster-destroyer for openstack clusters. |
ipnet
Package ipnet wraps net.IPNet to get CIDR serialization.
|
Package ipnet wraps net.IPNet to get CIDR serialization. |
rhcos
Package rhcos contains helpers for RHCOS related operations.
|
Package rhcos contains helpers for RHCOS related operations. |
terraform
Package terraform contains the utilities that's used for invoking terraform executable under the given directory with the given templates.
|
Package terraform contains the utilities that's used for invoking terraform executable under the given directory with the given templates. |
tfvars
Package tfvars converts an InstallConfig to Terraform variables.
|
Package tfvars converts an InstallConfig to Terraform variables. |
types
Package types defines structures for installer configuration and management.
|
Package types defines structures for installer configuration and management. |
types/aws
Package aws contains AWS-specific structures for installer configuration and management.
|
Package aws contains AWS-specific structures for installer configuration and management. |
types/libvirt
Package libvirt contains libvirt-specific structures for installer configuration and management.
|
Package libvirt contains libvirt-specific structures for installer configuration and management. |
types/openstack
Package openstack contains OpenStack-specific structures for installer configuration and management.
|
Package openstack contains OpenStack-specific structures for installer configuration and management. |
validate
Package validate contains validation utilities for installer types.
|
Package validate contains validation utilities for installer types. |