Table of Contents
- Purpose
- Requirements
- Dependencies
- Internet Connected Side
- Air Gap Side
- Miscellaneous
- License
- Contributors
This repository contains scripts, ansible roles, and other toosl for deploying an OpenShift 4 cluster in an air-gapped environment.
The repository has been tested to work for installs of OpenShift 4.3, 4.4, and 4.5.
The helper node in the internet connected environment, as well as the helper node in the air-gap environment have been tested on RHEL 8. Most things will still work on RHEL 7 but not all.
These tools can also be used in semi-disconnected environments which can be reached through a proxy host from the public internet.
This section covers getting started on the internet connected helper node. This is where all tools and images will be downloaded to
-
Mirror RPM Repositories(Optional)
-
Mirror Additional Container Images(Optional)
-
Mirror Helm and Helm Charts(Optional)
configure_repos.yaml filetranspiler.yaml govc.yaml helm_server.yaml icsp.yaml install_ansible_roles.yaml
install_helm.yaml
install_openvswitch.yaml install_operatorhub.yaml install_pip.yaml install_roles.yaml install_tools.yaml
mirror_helm.yaml mirror_ocp_images.yaml mirror_operatorhub.yaml mirror_rhcos.yaml mirror_rpms.yaml pull_additional_images.yaml pull_ansible_roles.yaml pull_pip.yaml pull_roles.yaml pull_tools.yaml push_additional_images.yaml
This section covers setting up the infrastructure in the air gap environment and install the OpenShift 4 cluster
Note that not all of these roles may be required for your air-gapped environment.
-
Note: If the "Internet Connected Host" is the same host as the "Air Gap Host", as in a jump host, you can reuse the main variable file.
baremetal_provisioner.yaml
-
Configure Hosts with yum mirror configure_repos.yaml
-
Install and Configure DHCP Server dhcp_server.yaml
-
Install and Configure DNS Server dns_server.yaml
-
Install and Configure Load Balancer load_balancer.yaml
-
httpd_server.yaml
-
ntp_server.yaml
-
pxe_server.yaml
-
registry_server.yaml
-
customize_iso.yaml
-
generate_ignition.yaml
-
govc.yaml
-
helm_server.yaml
-
icsp.yaml
-
install_ansible_roles.yaml
-
install_helm.yaml
-
install_pip.yaml
-
install_roles.yaml
-
install_tools.yaml
-
mirror_helm.yaml
-
mirror_ocp_images.yaml
-
mirror_operatorhub.yaml
-
mirror_rhcos.yaml
-
mirror_rpms.yaml
-
pull_additional_images.yaml
-
pull_ansible_roles.yaml
-
pull_pip.yaml
-
pull_roles.yaml
-
pull_tools.yaml
-
push_additional_images.yaml
-
Configure AWS Infrastructure Variable File (for AWS only)
-
Configure AWS Infrastructure Variable File (for VMWare only)
-
aws_ebs_csi.yaml
-
install_aws.yaml
- powerdown_esxi.yaml
- poweron_esxi.yaml
- install_esxi.yaml
- check_dns.yaml
- check_loadbalancer.yaml
When installing in an emulator you may require an SSH tunnel to reach the web console. The DNS names need to be configured because the cluster's pages will redirect so using IPs directly won't work.
ssh -L 127.0.0.2:8443:<IP Address of the https load balancer>:443 -L 127.0.0.2:8080:<IP Address of the https load balancer>:80 ec2-user@proxyhost
Inside your local /etc/hosts:
127.0.0.2 console-openshift-console.apps.<ocp_cluster_name>.<ocp_base_domain> oauth-openshift.apps.<ocp_cluster_name>.<ocp_base_domain>
Now browse to https://console-openshift-console.apps.<ocp_cluster_name>.<ocp_base_domain>
- Dan Clark (maintainer)