Blog

  • odf: Disk type is not compatible with the selected backing storage

    Here is how I worked around Disk type is not compatible with the selected backing storage:

    1. Encoded the queue/rotational = 0
    cat << EOF | base64 -w0
    ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="dm-[1,3]",  ATTR{queue/rotational}="0"
    EOF
    

    Encoded

    QUNUSU9OPT0iYWRkfGNoYW5nZSIsIFNVQlNZU1RFTT09ImJsb2NrIiwgS0VSTkVMPT0iZG0tWzEsM10iLCAgQVRUUntxdWV1ZS9yb3RhdGlvbmFsfT0iMCIK
    
    1. Create the MachineConfig – 99-worker-udev-non-rotational
    cat << EOF > ./99-worker-udev-configuration.yaml
    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: 99-worker-udev-non-rotational
    spec:
      config:
        ignition:
          version: 3.2.0  
        storage:
          files:
          - contents:
              source: data:text/plain;charset=utf-8;base64,QUNUSU9OPT0iYWRkfGNoYW5nZSIsIFNVQlNZU1RFTT09ImJsb2NrIiwgS0VSTkVMPT0iZG0tWzEsM10iLCAgQVRUUntxdWV1ZS9yb3RhdGlvbmFsfT0iMCIK
              verification: {}
            filesystem: root
            mode: 420
            path: /etc/udev/rules.d/99-worker-udev-non-rotational.rules
    EOF
    oc apply -f 99-worker-udev-configuration.yaml
    

    Check the MachineConfigPool/worker, and then proceeded with the setup.

    Yamls

    Here are the YAMLs:

    apiVersion: local.storage.openshift.io/v1alpha1
    kind: LocalVolumeDiscovery
    metadata:
      name: auto-discover-devices
      namespace: openshift-local-storage
    spec:
      nodeSelector:
        nodeSelectorTerms:
          - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                  - worker1.removed
                  - worker2.removed
                  - worker3.removed
    
    apiVersion: local.storage.openshift.io/v1alpha1
    kind: LocalVolumeSet
    metadata:
      name: lvs-san-x
      namespace: openshift-local-storage
    spec:
      deviceInclusionSpec:
        deviceTypes:
          - disk
          - part
          - mpath
        minSize: 1Gi
      nodeSelector:
        nodeSelectorTerms:
          - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                  - worker1.removed
                  - worker2.removed
                  - worker3.removed
      storageClassName: lvs-san-x
      volumeMode: Block

    References

    1. Override device rotational flag in OCS/ODF environments https://access.redhat.com/articles/6547891

  • Introducing the Open Source Edge for IBM Power

    Learn more about what the IBM Power team is doing with OpenSource.

    The IBM Power team is excited to introduce Open Source Edge for IBM Power, an evolution of our previous tool, the Open Source Power Availability Tool (OSPAT) for finding open source packages for Power. While OSPAT provided a snapshot of available packages that are updated periodically, Open Source Edge takes things further by offering more details, more currency, real-time data access, and interactive features to help you explore the open source resources that are available on Power.


    Open Source Edge offers all Power developers and users a central location to keep on top of the latest packages and their versions available for Linux on Power. While designing solutions, it is often critical to compose a solution with a variety of components, and in the software world, those components and their versions change rapidly. Also, with an increasingly turbulent security environment, understanding not just which versions are available, but the composition of those individual components, the individual security profile of each component, and having transparency into the build process and environment becomes increasingly critical.

    Read more at https://open-source-edge.developerfirst.ibm.com/ and https://community.ibm.com/community/user/blogs/hiro-miyamoto/2025/06/26/introducing-the-open-source-edge-for-ibm-power

  • Setting up Local Storage Operator and OpenShift Data Foundation on IBM Power

    Here are my notes from LSO and ODF setup on Power

    Install Local Storage Operator

    1. Log in to the OpenShift Web Console.
    2. Click Operators OperatorHub.
    3. Type local storage in the Filter by keyword…​ box to find the Local Storage Operator from the list of operators and click on it.
    4. Set the following options on the Install Operator page:
      1. Update channel as stable.
      1. Installation Mode as A specific namespace on the cluster.
      1. Installed Namespace as Operator recommended namespace openshift-local-storage.
      1. Approval Strategy as Automatic.
    5. Click Install.

    Setup Labels for Storage Nodes

    1. Add label to the workers which are being used by ODF, this should be the workers where the storage are attached
    oc get nodes -l node-role.kubernetes.io/worker= -oname \
        | xargs -I {} oc label {} cluster.ocs.openshift.io/openshift-storage=
    
    1. Rescan the scsi bus so we get all of the devices added.
    oc get nodes -l node-role.kubernetes.io/worker= -oname \
        | xargs -I {} oc debug {} -- chroot /host rescan-scsi-bus.sh 
    
    1. Build the by-id paths
    oc get nodes -l node-role.kubernetes.io/worker= -oname \
        | xargs -I {} oc debug {} -- chroot /host udevadm trigger --settle
    

    note: don’t worry about Failed to write 'change' to '/sys/devices/vio/4004/uevent', ignoring: No such device events.

    1. Discover the local volumes using LocalVolumeDiscovery
    cat << EOF | oc apply -f -
    apiVersion: local.storage.openshift.io/v1alpha1
    kind: LocalVolumeDiscovery
    metadata:
      name: auto-discover-devices
      namespace: openshift-local-storage
    spec:
      nodeSelector:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cluster.ocs.openshift.io/openshift-storag
            operator: Exists
    EOF
    
    1. Check the LocalVolumeDiscovery is started and Discovering
    oc get LocalVolumeDiscovery -n openshift-local-storage -oyaml auto-discover-devices
    ...
    status:
      conditions:
      - lastTransitionTime: "2025-06-26T01:27:03Z"
        message: successfully running 3 out of 3 discovery daemons
        status: "True"
        type: Available
      observedGeneration: 2
      phase: Discovering
    
    1. Now that it’s ready, we’re going to find the disks:
    # oc get LocalVolumeDiscoveryResult -n openshift-local-storage -ojson | jq -r '.items[].status.discoveredDevices[] | select(.status.state == "Available" and .type == "disk").path' | sort -u
    /dev/sde
    /dev/sdf
    /dev/sdg
    /dev/sdh
    
    1. Create the Local Volume
    cat << EOF | oc apply -f -
    apiVersion: local.storage.openshift.io/v1
    kind: LocalVolume
    metadata:
      name: localblock
      namespace: openshift-local-storage
    spec:
      logLevel: Normal
      managementState: Managed
      nodeSelector:
        nodeSelectorTerms:
          - matchExpressions:
              - key: cluster.ocs.openshift.io/openshift-storage
                operator: Exists
      storageClassDevices:
        - devicePaths:
            - /dev/sde
            - /dev/sdf
            - /dev/sdg
            - /dev/sdh
          storageClassName: localblock
          volumeMode: Block
    EOF
    
    1. Check the LocalVolume is ready oc get LocalVolume -n openshift-local-storage -oyaml
      status:
        conditions:
        - lastTransitionTime: "2025-06-26T18:40:20Z"
          message: Ready
          status: "True"
          type: Available
        generations:
        - group: apps
          hash: ""
          lastGeneration: 2
          name: diskmaker-manager
          namespace: openshift-local-storage
          resource: DaemonSet
        managementState: Managed
        observedGeneration: 1
        readyReplicas: 0
    

    If ready, we can proceed.

    1. Navigate to ODF Operator.

    2. Click Create StorageSystem. Select localblock.

    You can rpoceed with setup from there.

    Thanks to T K Chasan

  • Kudos to the IBM Power team for enabling Maximo Application Suite on IBM Power.

    Kudos to the IBM Power team for enabling Maximo Application Suite on IBM Power.

    IBM has enabled Maximo Application Suite (MAS) 9.x on IBM Power (ppc64le), installable on Red Hat OpenShift 4.17+, offering a resilient, secure, and sustainable platform for enterprise asset management. MAS streamlines asset lifecycles, enhances reliability, and reduces operational costs. Running MAS on Power delivers 99.9999% availability, robust security, and lower energy consumption compared to competitive systems.

    References

    1. Blog https://community.ibm.com/community/user/blogs/julie-mathew/2025/06/24/enabling-maximo-application-suite-9x-on-ibm-power
    2. Availability of MAS 9.1 on IBM Power – Announcement letter
    3. MAS documentation What’s New in MAS 9.1
  • Expanding Open Source Access: GitHub Actions Now Available for IBM Power, IBM Z and IBM LinuxONE

    Exciting news from IBM… .IBM is bringing GitHub Actions runners to IBM Power, Z, and LinuxONE platforms—streamlining CI/CD for open-source projects across diverse architectures. This milestone empowers developers with seamless cross-platform automation, eliminating the need for multiple CI tools.

    IBM actively collaborating with open-source communities and offering personalized onboarding support. Join us in shaping the future of open development—explore our GitHub repo, contribute, and grow with us! 💻🌍

    For more information reach out at https://community.ibm.com/community/user/blogs/mick-tarsel/2025/06/23/github-actions-power-z

  • 🚀 What’s New in OpenShift Container Platform 4.19

    Red Hat OpenShift 4.19 is here! This release is based on Kubernetes 1.32, uses the CRI-O 1.32 runtime, and runs on RHEL CoreOS 9.6. It brings a lots of new features and enhancements across core platform capabilities and security.

    IBM Power users can deploy a highly performance cluster with excellent features and capabilities for their workload.

    Let’s take a look at what’s new:


    🔧 Core Platform Enhancements

    • Gateway API via OpenShift Service Mesh 3
      Now GA (Generally Available), this enables more flexible and powerful ingress management using the Gateway API.
    • OVN-Kubernetes BGP Support
      Coming soon in a 4.19.z update, this will enhance networking capabilities with BGP support.
    • On-cluster Image Mode
      This allows for more flexible image management directly within the OpenShift cluster.
    • cgroups v1 Removed
      OpenShift 4.19 fully transitions to cgroups v2, aligning with modern Linux standards.

    Security Improvements

    • Cert-manager Router Integration
      Now supports loading secrets directly into the router, simplifying certificate management.
    • Bring Your Own External OIDC
      Also in Tech Preview, this allows integration with external OpenID Connect providers for authentication.

    📺 Learn More

    Check out the official video overview:
    🎥 What’s New in OpenShift 4.19

    🔗 Key Resources


    Thanks for reading, and happy upgrading!

  • Outrigger: Rethinking Kubernetes Scheduling for a Smarter Future

    At DevConf.CZ 2025, a standout session from Alessandro Di Stefano and Prashanth Sundararaman introduced the Outrigger project, a forward-thinking initiative aimed at transforming Kubernetes scheduling into a dynamic, collaborative ecosystem. Building on the success of the Multiarch Tuning Operator for OpenShift, Outrigger leverages Kubernetes’ scheduling gates to go beyond traditional multi-architecture scheduling.

    👉 Watch the full session here:

    Excellent work by that team.

  • Reshare: Help Shape HashiCorp Integration for IBM Power

    For those integrating with Power, and interested in HashiCorp, you might be interested in this post.

    IBM Power is collecting insights on how you use HashiCorp products to manage infrastructure and security—including your specific use cases. Even if you’re not currently using these tools, we’d still love to hear from you. The survey takes just 10 minutes, and your feedback will help shape the future integration of HashiCorp into IBM Power.

    Click here to take the survey [ibm.biz/hashicorp_ibmpower]

    See https://community.ibm.com/community/user/question/help-shape-hashicorp-integration-for-ibm-power-2

  • CP4D 5.2 release – IBM Knowledge Catalog (IKC) and DataStage are both now available on OpenShift on Power through Cloud Pak for Data

    Per the CP4D Leader, with CP4D 5.2 release – IBM Knowledge Catalog (IKC) and DataStage are both now available on OpenShift on Power through Cloud Pak for Data!

    – IBM Knowledge Catalog provides the methods that your enterprise needs to automate data governance so you can ensure data accessibility, trust, protection, security, and compliance

    – With DataStage, you can design and run data flows that move and transform data. You’re able to compose data flows with speed and accuracy using an intuitive graphical design interface that lets you connect to a wide range of data sources, integrate and transform data, and deliver it to your target system in batch or real time

    Read more about it at:

    1. https://www.ibm.com/docs/en/software-hub/5.2.x?topic=requirements-ppc64le-hardware#services

    2. https://community.ibm.com/community/user/blogs/jay-carman/2025/06/12/introducing-ibm-knowledge-catalog-on-ibm-power

  • prometheus hack to reduce disk pressure in non-prod environments

    Here is a script to reduce monitoring disk pressure. It prunes the db.

    cat << EOF > cluster-monitoring-config.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
        prometheusK8s:
          retention: 1d
    EOF
    oc apply -f cluster-monitoring-config.yaml