Posted in

OpenShift – imagesetconfig & catalogsource

This will come in handy for those working in disconnected airgapped environment. I’ve tested this to setup disconnected OpenShift 4.19.6.

ImageSetConfiguration – Basic installation

# oc-mirror -c isc.yaml file:///data/ocmirror419 --v2
# isc.yaml
kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
mirror:
  platform:
    channels:
      - name: stable-4.19
        type: ocp
        #minVersion: 4.19.6 # optional
        #maxVersion: 4.19.6 # optional
    graph: true
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
      packages:
        - name: cluster-logging
          channels:
            - name: stable-6.3
        - name: cluster-observability-operator
          channels:
            - name: stable
        - name: loki-operator
          channels:
            - name: stable-6.3
        - name: compliance-operator
          channels:
            - name: stable
        - name: local-storage-operator
          channels:
            - name: stable
        - name: nfd
          channels:
            - name: stable
        - name: servicemeshoperator
          channels:
            - name: stable
        - name: kialia-ossm-operator
          channels:
            - name: stable
        - name: rhods-operator
          channels:
            - name: stable
        - name: lvms-operator
          channels:
            - name: stable-4.19
        - name: odf-operator
          channels:
            - name: stable-4.19
        - name: authorino-operator
          channels:
            - name: stable
        - name: jaeger-product
          channels:
            - name: stable
        - name: metallb-operator
          channels:
            - name: stable
        - name: serverless-operator
          channels:
            - name: stable
        - name: openshift-gitops-operator
          channels:
            - name: latest
        - name: openshift-pipelines-operator
          channels:
            - name: latest
        - name: kernel-module-management
          channels:
            - name: stable
        - name: kubevirt-hyperconverged
          channels:
            - name: stable
        - name: rook-ceph-operator
          channels:
            - name: stable-4.19
        - name: kubernetes-nmstate-operator
          channels:
            - name: stable
        - name: quay-bridge-operator
          channels:
            - name: stable-3.15
        - name: quay-operator
          channels:
            - name: stable-3.15
        - name: servicemeshoperator
          channels:
            - name: stable
        - name: servicemeshoperator3
          channels:
            - name: stable
        - name: skupper-operator
          channels:
            - name: stable-2
        - name: sriov-network-operator
          channels:
            - name: stable
        - name: smb-csi-driver-operator
          channels:
            - name: stable
        - name: submariner
          channels:
            - name: stable-0.20
        - name: rhtpa-operator
          channels:
            - name: stable
        - name: rook-ceph-operator
          channels:
            - name: stable-4.19
        - name: web-terminal
          channels:
            - name: fast
    - catalog: registry.redhat.io/redhat/certified-operator-index:v4.19
      packages:
        - name: gpu-operator-certified
          channels:
            - name: v25.3
  additionalImages: # how you include additional images that you want to be part of the mirror download
    - name: registry.redhat.io/rhel9/support-tools:latest

Additional Operators

# oc-mirror -c isc-operators.yaml file:///data/ocmirror419-operators --v2
#isc-operators.yaml
kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
mirror:
  platform:
    channels:
      - name: stable-4.19
        type: ocp
        #minVersion: 4.18.9 # optional
        #maxVersion: 4.18.9 # optional
    graph: true
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
      packages:
        - name: rhbk-operator
          channels:
            - name: stable-v26.2
        - name: rhacs-operator
          channels:
            - name: stable
        - name: rhcl-operator
          channels:
            - name: stable
        - name: rhdh
          channels:
            - name: fast
        - name: rhods-operator
          channels:
            - name: stable
        - name: rhpam-kogito-operator
          channels:
            - name: 7.x
        - name: rhtas-operator
          channels:
            - name: stable
        - name: quay-operator
          channels:
            - name: stable-3.15
        - name: quay-bridge-operator
          channels:
            - name: stable-3.15
        - name: openshift-cert-manager-operator
          channels:
            - name: stable-v1
        - name: ocs-client-operator
          channels:
            - name: stable-4.19
        - name: ocs-operator
          channels:
            - name: stable-4.19
        - name: odf-csi-addons-operator
          channels:
            - name: stable-4.19
        - name: odf-dependencies
          channels:
            - name: stable-4.19
        - name: odf-multicluster-orchestrator
          channels:
            - name: stable-4.19
        - name: odf-operator
          channels:
            - name: stable-4.19
        - name: odf-prometheus-operator
          channels:
            - name: stable-4.19
        - name: odr-cluster-operator
          channels:
            - name: stable-4.19
        - name: odr-hub-operator
          channels:
            - name: stable-4.19
        - name: openshift-gitops-operator
          channels:
            - name: latest
        - name: openshift-pipelines-operator-rh
          channels:
            - name: latest
        - name: nfd
          channels:
            - name: stable
        - name: helloworld-operator
          channels:
            - name: stable
        - name: cephcsi-operator
          channels:
            - name: stable-4.19
        - name: compliance-operator
          channels:
            - name: stable
        - name: advanced-cluster-management
          channels:
            - name: release-2.14
        - name: cli-manager
          channels:
            - name: tech-preview
        - name: dns-operator
          channels:
            - name: stable
        - name: external-dns-operator
          channels:
            - name: stable-v1
        - name: ingress-node-firewall
          channels:
            - name: stable
        - name: kubevirt-hyperconverged
          channels:
            - name: stable
        - name: local-storage-operator
          channels:
            - name: stable
        - name: lvms-operator
          channels:
            - name: stable-4.19
        - name: loki-operator
          channels:
            - name: stable-6.3
        - name: mtv-operator
          channels:
            - name: release-v2.9
        - name: mtr-operator
          channels:
            - name: alpha
        - name: mtc-operator
          channels:
            - name: release-v1.8
        - name: mta-operator
          channels:
            - name: stable-v7.3
        - name: metallb-operator
          channels:
            - name: stable
        - name: mcg-operator
          channels:
            - name: stable-4.19
        - name: vertical-pod-autoscaler
          channels:
            - name: stable
        - name: lightspeed-operator
          channels:
            - name: stable
        - name: cluster-kube-descheduler-operator
          channels:
            - name: stable
        - name: cephcsi-operator
          channels:
            - name: stable-4.19
    - catalog: registry.redhat.io/redhat/certified-operator-index:v4.19
      packages:
        - name: gpu-operator-certified
          channels:
            - name: v25.3
        - name: hpe-csi-operator
          channels:
            - name: stable
        - name: hcp-terraform-operator
          channels:
            - name: alpha
        - name: dynatrace-operator
          channels:
            - name: alpha
        - name: amd-gpu-operator
          channels:
            - name: alpha
    - catalog: registry.redhat.io/redhat/community-operator-index:v4.19
      packages:
        - name: cert-manager
          channels:
            - name: stable
        - name: cert-utils-operator
          channels:
            - name: alpha
        - name: flux-operator
          channels:
            - name: stable
        - name: flux
          channels:
            - name: stable
        - name: keycloak-operator
          channels:
            - name: fast
    - catalog: registry.redhat.io/redhat/redhat-marketplace-index:v4.19
      packages:
        - name: dynatrace-operator-rhmp
          channels:
            - name: alpha
        - name: k10-kasten-operator-rhmp
          channels:
            - name: stable
        - name: k10-kasten-operator-term-rhmp
          channels:
            - name: stable
        - name: redis-enterprise-operator-cert-rhmp
          channels:
            - name: production

Also read more about OpenShift Day 2 post installation steps – especially for disconnected environment

For disconnected environment, disable the default OperatorHub sources to stop the marketplace-operator from trying to pull them.

# Disable all default external operator sources
oc patch OperatorHub cluster --type json -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'

# Verify the change
oc get OperatorHub cluster -o yaml

Then apply your offline catalogsource.yaml which you've mirrored to the container registry, so that your OperatorHub gets populated.

You’ll need to manually patch CatalogSource interval for offline airgap environment, and also disable external sources (see the subsequent code). Read more about Day 2

# oc patch catalogsource certified-operators-offline -n openshift-marketplace   --type merge -p '{"spec":{"updateStrategy":{"registryPoll":{"interval":"43200m"}}}}'

apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: redhat-operators-offline
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: registry.kubernetes.day/ocp418/redhat/redhat-operator-index:v4.19
  displayName: Red Hat Operators (Offline)
  publisher: Red Hat
  updateStrategy:
  registryPoll:
    interval: 43200m
---
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: community-operators-offline
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: registry.kubernetes.day/ocp418/redhat/community-operator-index:v4.19
  displayName: Red Hat Community Operators (Offline)
  publisher: Red Hat
  updateStrategy:
  registryPoll:
    interval: 10m
---
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: certified-operators-offline
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: registry.kubernetes.day/ocp418/redhat/certified-operator-index:v4.19
  displayName: Red Hat Certified Operators (Offline)
  publisher: Red Hat
  updateStrategy:
  registryPoll:
    interval: 43200m
---
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: marketplace-operators-offline
  namespace: openshift-marketplace
spec:
  sourceType: grpc
  image: registry.kubernetes.day/ocp418/redhat/redhat-marketplace-index:v4.19
  displayName: Red Hat Marketplace Operators (Offline)
  publisher: Red Hat
  updateStrategy:
  registryPoll:
    interval: 43200m

Leave a Reply

Your email address will not be published. Required fields are marked *