README
¶
OpenShift Installer
Supported Platforms
- AWS
- Libvirt with KVM (development only)
- 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 will show a series of prompts for user-specific information and use reasonable defaults for everything else.
In non-interactive contexts, prompts can be bypassed by providing an install-config.yaml
.
If you have trouble, refer to the troubleshooting guide.
Connect to the cluster
Details for connecting to your new cluster are printed by the openshift-install
binary upon completion, and are also available in the .openshift_install.log
file.
Example output:
INFO Waiting 10m0s for the openshift-console route to be created...
INFO Install complete!
INFO Run 'export KUBECONFIG=/path/to/auth/kubeconfig' to manage the cluster with 'oc', the OpenShift CLI.
INFO The cluster is ready when 'oc login -u kubeadmin -p 5char-5char-5char-5char' succeeds (wait a few minutes).
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.${CLUSTER_NAME}.${BASE_DOMAIN}:6443
INFO Login to the console with user: kubeadmin, password: 5char-5char-5char-5char
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/installconfig/vsphere
Package vsphere collects vSphere-specific configuration.
|
Package vsphere collects vSphere-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/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
asset/rhcos
Package rhcos contains assets for RHCOS.
|
Package rhcos contains assets for RHCOS. |
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. |
lineprinter
Package lineprinter wraps a Print implementation to provide an io.WriteCloser.
|
Package lineprinter wraps a Print implementation to provide an io.WriteCloser. |
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. |
terraform/exec
Package exec is glue between the vendored terraform codebase and installer.
|
Package exec is glue between the vendored terraform codebase and installer. |
terraform/exec/plugins
Package plugins is collection of all the terraform plugins that are used/required by installer.
|
Package plugins is collection of all the terraform plugins that are used/required by installer. |
tfvars
Package tfvars generates Terraform variables for launching the cluster.
|
Package tfvars generates Terraform variables for launching the cluster. |
tfvars/aws
Package aws contains AWS-specific Terraform-variable logic.
|
Package aws contains AWS-specific Terraform-variable logic. |
tfvars/libvirt
Package libvirt contains libvirt-specific Terraform-variable logic.
|
Package libvirt contains libvirt-specific Terraform-variable logic. |
tfvars/openstack
Package openstack contains OpenStack-specific Terraform-variable logic.
|
Package openstack contains OpenStack-specific Terraform-variable logic. |
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/none
Package none contains generic structures for installer configuration and management.
|
Package none contains generic 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. |
types/openstack/validation/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
types/vsphere
Package vsphere contains vSphere-specific structures for installer configuration and management.
|
Package vsphere contains vSphere-specific structures for installer configuration and management. |
validate
Package validate contains validation utilities for installer types.
|
Package validate contains validation utilities for installer types. |
version
Package version includes the version information for installer.
|
Package version includes the version information for installer. |
tests
|
|