Skip to content

Instantly share code, notes, and snippets.

@dav1x
Created November 1, 2017 18:34
Show Gist options
  • Save dav1x/1b71578bc7cfc96d9846f5f76e300af5 to your computer and use it in GitHub Desktop.
Save dav1x/1b71578bc7cfc96d9846f5f76e300af5 to your computer and use it in GitHub Desktop.
Using Satellite 6 Server for a disconnect Openshift Container Platform install
OpenShift uses the following containers for its base installation:
openshift3/ose-haproxy-router
openshift3/registry-console
openshift3/ose-deployer
openshift3/ose-pod
openshift3/ose-docker-registry
There containers must be located on the internal satellite server that the disconnected installation will be based off of. Also, the ose repos must be available on the satellite 6 server as well.
Preparing Satellite 6 for a disconnected installation
To prepare the Satellite 6.2 installation for deploying OpenShift packages and OpenShift container images start by running
the following python script:
./ocp36-sat6.py --password admin_pass
This will query the Red Hat container registry for all openshift3 images then create a product and then repositories for the images.
Next, the script will supply the appropriate installation vars to insert into the OCP install playbooks:
oreg_url: sat6.e2e.bos.redhat.com:5000/default_organization-ocp36-openshift3_ose-${component}:${version}
openshift_disable_check: "docker_image_availability"
openshift_docker_insecure_registries: "sat6.e2e.bos.redhat.com:5000"
openshift_docker_additional_registries: "sat6.e2e.bos.redhat.com:5000"
openshift_examples_modify_imagestreams: True
Note the installation vars also bypass the image check availability. At the time of this writing, the skopeo check is appending the registry name twice.
Please see this bugzilla for details:
https://bugzilla.redhat.com/show_bug.cgi?id=1506267
Verifying the installation was successul
Also the default image stream location has been modified as well:
[root@master-0 ~]# oc get is -n openshift
NAME DOCKER REPO TAGS UPDATED
dotnet docker-registry.default.svc:5000/openshift/dotnet 2.0,1.1,1.0
dotnet-runtime docker-registry.default.svc:5000/openshift/dotnet-runtime 2.0
fis-java-openshift sat6.e2e.bos.redhat.com:5000/jboss-fuse-6/fis-java-openshift
fis-karaf-openshift sat6.e2e.bos.redhat.com:5000/jboss-fuse-6/fis-karaf-openshift
... content abbreviated ...
On the cluster's infra or app nodes, query the docker images to see the image tags pointing to the satellite 6 registry:
[root@infra-0 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sat6.e2e.bos.redhat.com:5000/default_organization-ocp36-openshift3_ose-haproxy-router v3.6.173.0.21 00e38cdddcde 8 weeks ago 988.8 MB
sat6.e2e.bos.redhat.com:5000/default_organization-ocp36-openshift3_ose-deployer v3.6.173.0.21 89fd398a337d 8 weeks ago 970.2 MB
sat6.e2e.bos.redhat.com:5000/default_organization-ocp36-openshift3_ose-docker-registry v3.6.173.0.21 6a83937f497f 8 weeks ago 1.058 GB
sat6.e2e.bos.redhat.com:5000/default_organization-ocp36-openshift3_ose-pod v3.6.173.0.21 63accd48a0d7 8 weeks ago 208.6 MB
Lastly, verify the installation took place properly by deploying a new application with the new image streams. Make sure the application deployed has had the applicable repositories set up inside Satellite server
Troubleshooting a failed installation
If the deployment is having issues, manually pull the docker images to test:
docker pull sat6.e2e.bos.redhat.com:5000/default_organization-ocp3_disconnected-openshift3_ose-deployer:v3.6.173.0.21
If the docker images pull successfully connectivity to satellite should be fine.
Manual steps to perform
The following steps can be issued manually to skip usage of the ocp36-sat6.py script:
# Create the product
hammer product create --name "OCP3D" --organization "e2e"
# Assign all the required docker images
hammer repository create --name "openshift3/ose-haproxy-router" --content-type "docker" --url "http://registry.access.redhat.com/" --docker-upstream-name "openshift3/ose-haproxy-router" --product "OCP3_Disconnected" --organization "e2e"
hammer repository create --name "openshift3/registry-console" --content-type "docker" --url "http://registry.access.redhat.com/" --docker-upstream-name "openshift3/registry-console" --product "OCP3_Disconnected" --organization "e2e"
hammer repository create --name "openshift3/ose-deployer" --content-type "docker" --url "http://registry.access.redhat.com/" --docker-upstream-name "openshift3/ose-deployer" --product "OCP3_Disconnected" --organization "e2e"
hammer repository create --name "openshift3/ose-pod" --content-type "docker" --url "http://registry.access.redhat.com/" --docker-upstream-name "openshift3/ose-pod" --product "OCP3_Disconnected" --organization "e2e"
hammer repository create --name "openshift3/ose-docker-registry" --content-type "docker" --url "http://registry.access.redhat.com/" --docker-upstream-name "openshift3/ose-docker-registry" --product "OCP3_Disconnected" --organization "e2e"
# Refresh the product
hammer product synchronize --name "OCP3_Disconnected" --organization "e2e"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment