-
Notifications
You must be signed in to change notification settings - Fork 202
Add SSL support to local mirrored registry #856
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,12 +19,16 @@ rm -f assets/templates/99_local-registry.yaml $OPENSHIFT_INSTALL_PATH/data/data/ | |
| export REGISTRY_AUTH_FILE=$(mktemp "pullsecret--XXXXXXXXXX") | ||
| { echo "${PULL_SECRET}" ; } 2> /dev/null > $REGISTRY_AUTH_FILE | ||
|
|
||
| # Combine pull-secret with registry's password | ||
| COMBINED_AUTH_FILE=$(mktemp "combined-pullsecret--XXXXXXXXXX") | ||
| jq -s '.[0] * .[1]' ${REGISTRY_AUTH_FILE} ${REGISTRY_CREDS} | tee ${COMBINED_AUTH_FILE} | ||
|
|
||
| DOCKERFILE=$(mktemp "release-update--XXXXXXXXXX") | ||
| echo "FROM $OPENSHIFT_RELEASE_IMAGE" > $DOCKERFILE | ||
| for IMAGE_VAR in $(env | grep "_LOCAL_IMAGE=" | grep -o "^[^=]*") ; do | ||
| IMAGE=${!IMAGE_VAR} | ||
|
|
||
| sudo -E podman pull $OPENSHIFT_RELEASE_IMAGE | ||
| sudo -E podman pull --authfile $COMBINED_AUTH_FILE $OPENSHIFT_RELEASE_IMAGE | ||
|
|
||
| # Is it a git repo? | ||
| if [[ "$IMAGE" =~ "://" ]] ; then | ||
|
|
@@ -33,26 +37,56 @@ for IMAGE_VAR in $(env | grep "_LOCAL_IMAGE=" | grep -o "^[^=]*") ; do | |
| [ -e "$REPOPATH" ] || git clone $IMAGE $REPOPATH | ||
| cd $REPOPATH | ||
| export $IMAGE_VAR=${IMAGE##*/}:latest | ||
| export $IMAGE_VAR=$LOCAL_REGISTRY_ADDRESS/localimages/${!IMAGE_VAR} | ||
| sudo podman build -t ${!IMAGE_VAR} . | ||
| export $IMAGE_VAR=$LOCAL_REGISTRY_ADDRESS:$LOCAL_REGISTRY_PORT/localimages/${!IMAGE_VAR} | ||
| sudo podman build --authfile $COMBINED_AUTH_FILE -t ${!IMAGE_VAR} . | ||
| cd - | ||
| sudo podman push --tls-verify=false ${!IMAGE_VAR} ${!IMAGE_VAR} | ||
| sudo podman push --tls-verify=false --authfile $COMBINED_AUTH_FILE ${!IMAGE_VAR} ${!IMAGE_VAR} | ||
| fi | ||
|
|
||
| # Update the bootstrap and master nodes to treat LOCAL_REGISTRY_ADDRESS as insecure | ||
| mkdir -p $OPENSHIFT_INSTALL_PATH/data/data/bootstrap/baremetal/files/etc/containers | ||
| echo -e "[registries.insecure]\nregistries = ['${LOCAL_REGISTRY_ADDRESS}']" > $OPENSHIFT_INSTALL_PATH/data/data/bootstrap/baremetal/files/etc/containers/registries.conf | ||
| echo -e "[registries.insecure]\nregistries = ['${LOCAL_REGISTRY_ADDRESS}:${LOCAL_REGISTRY_PORT}']" > $OPENSHIFT_INSTALL_PATH/data/data/bootstrap/baremetal/files/etc/containers/registries.conf | ||
| cp assets/templates/99_local-registry.yaml.optional assets/templates/99_local-registry.yaml | ||
|
Comment on lines
46
to
49
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can probably remove this now as your using "imageContentSources".
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @derekhiggins , if U could help testing this it would be much appreciated
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We set imageContentSources just when MIRROR_IMAGES is set to true, so iiuc it's still needed |
||
|
|
||
| IMAGE_NAME=$(echo ${IMAGE_VAR/_LOCAL_IMAGE} | tr '[:upper:]_' '[:lower:]-') | ||
| OLDIMAGE=$(sudo podman run --rm $OPENSHIFT_RELEASE_IMAGE image $IMAGE_NAME) | ||
| echo "RUN sed -i 's%$OLDIMAGE%${!IMAGE_VAR}%g' /release-manifests/*" >> $DOCKERFILE | ||
| done | ||
|
|
||
| if [ ! -z "${MIRROR_IMAGES}" ]; then | ||
|
|
||
| # combine global and local secrets | ||
| # pull from one registry and push to local one | ||
| # hence credentials are different | ||
|
|
||
| EXTRACT_DIR=$(mktemp -d "mirror-installer--XXXXXXXXXX") | ||
|
|
||
| TAG=$( echo $OPENSHIFT_RELEASE_IMAGE | sed -e 's/[[:alnum:]/.]*release://' ) | ||
| MIRROR_LOG_FILE=/tmp/tmp_image_mirror-${TAG}.log | ||
|
|
||
| oc adm release mirror \ | ||
| --insecure=true \ | ||
| -a ${COMBINED_AUTH_FILE} \ | ||
| --from ${OPENSHIFT_RELEASE_IMAGE} \ | ||
| --to-release-image ${LOCAL_REGISTRY_ADDRESS}:${LOCAL_REGISTRY_PORT}/localimages/local-release-image:${TAG} \ | ||
| --to ${LOCAL_REGISTRY_ADDRESS}:${LOCAL_REGISTRY_PORT}/localimages/local-release-image 2>&1 | tee ${MIRROR_LOG_FILE} | ||
|
|
||
| #To ensure that you use the correct images for the version of OpenShift Container Platform that you selected, | ||
| #you must extract the installation program from the mirrored content: | ||
|
|
||
| oc adm release extract --registry-config "${COMBINED_AUTH_FILE}" \ | ||
| --command=openshift-baremetal-install --to "${EXTRACT_DIR}" \ | ||
| "${LOCAL_REGISTRY_ADDRESS}:${LOCAL_REGISTRY_PORT}/localimages/local-release-image:${TAG}" | ||
|
|
||
| mv -f "${EXTRACT_DIR}/openshift-baremetal-install" ocp/ | ||
|
|
||
| rm -rf "${EXTRACT_DIR}" | ||
| fi | ||
|
|
||
| if [ -f assets/templates/99_local-registry.yaml ] ; then | ||
| build_installer | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No longer needed (It was there do build a custom installer because we had added $OPENSHIFT_INSTALL_PATH/data/data/bootstrap/baremetal/files/etc/containers/registries.conf above) |
||
| sudo podman image build -t $OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE -f $DOCKERFILE | ||
| sudo podman push --tls-verify=false $OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE $OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE | ||
| sudo podman image build --authfile $COMBINED_AUTH_FILE -t $OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE -f $DOCKERFILE | ||
| sudo podman push --tls-verify=false --authfile $COMBINED_AUTH_FILE $OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE $OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE | ||
| fi | ||
| rm -f $DOCKERFILE | ||
|
|
||
|
|
@@ -62,12 +96,12 @@ for name in ironic ironic-api ironic-conductor ironic-inspector dnsmasq httpd ma | |
| done | ||
|
|
||
| # Remove existing pod | ||
| if sudo podman pod exists ironic-pod ; then | ||
| if sudo podman pod exists ironic-pod ; then | ||
| sudo podman pod rm ironic-pod -f | ||
| fi | ||
|
|
||
| # Create pod | ||
| sudo podman pod create -n ironic-pod | ||
| sudo podman pod create -n ironic-pod | ||
|
|
||
| IRONIC_IMAGE=${IRONIC_LOCAL_IMAGE:-$IRONIC_IMAGE} | ||
| IRONIC_IPA_DOWNLOADER_IMAGE=${IRONIC_IPA_DOWNLOADER_LOCAL_IMAGE:-$IRONIC_IPA_DOWNLOADER_IMAGE} | ||
|
|
@@ -76,7 +110,8 @@ for IMAGE in ${IRONIC_IMAGE} ${IRONIC_IPA_DOWNLOADER_IMAGE} ${VBMC_IMAGE} ${SUSH | |
| sudo -E podman pull $([[ $IMAGE =~ $LOCAL_REGISTRY_ADDRESS.* ]] && echo "--tls-verify=false" ) $IMAGE | ||
| done | ||
|
|
||
| rm -rf $REGISTRY_AUTH_FILE | ||
| rm -rf ${REGISTRY_AUTH_FILE} | ||
| rm -rf ${COMBINED_AUTH_FILE} | ||
|
|
||
| CACHED_MACHINE_OS_IMAGE="${IRONIC_DATA_DIR}/html/images/${MACHINE_OS_IMAGE_NAME}" | ||
| if [ ! -f "${CACHED_MACHINE_OS_IMAGE}" ]; then | ||
|
|
@@ -102,7 +137,7 @@ if [ "$NODES_PLATFORM" = "libvirt" ]; then | |
| sudo podman run -d --net host --privileged --name vbmc --pod ironic-pod \ | ||
| -v "$WORKING_DIR/virtualbmc/vbmc":/root/.vbmc -v "/root/.ssh":/root/ssh \ | ||
| "${VBMC_IMAGE}" | ||
|
|
||
| sudo podman run -d --net host --privileged --name sushy-tools --pod ironic-pod \ | ||
| -v "$WORKING_DIR/virtualbmc/sushy-tools":/root/sushy -v "/root/.ssh":/root/ssh \ | ||
| "${SUSHY_TOOLS_IMAGE}" | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.