This project provides a containerized environment with all the necessary tools to run ansible-ibm-sterling automation scripts. The container images come pre-configured with essential CLI tools, Python packages, and dependencies required for IBM Sterling B2B Integrator deployment and management on Red Hat OpenShift and Kubernetes platforms.
Why use this container?
- Consistent Environment: Eliminates "works on my machine" issues by providing a standardized toolset
- Multi-Architecture Support: Available for both AMD64 and ARM64 architectures
- Pre-configured Tools: All required dependencies installed and ready to use
- Ansible Ready: Includes ansible-ibm-sterling collection and all prerequisites
This code is inspired by the IBM Maximo Application Suite CLI Utility.
The container includes the following tools and packages:
| Package | Version | AMD64 | ARM64 |
|---|---|---|---|
| python3 | 3.12 | ✔️ | ✔️ |
| helm | 3.16.3 | ✔️ | ✔️ |
| oc | latest | ✔️ | ✔️ |
| oc ibm-pak | 1.21.1 | ✔️ | ✔️ |
| rclone | latest | ✔️ | ✔️ |
| kubectl | latest | ✔️ | ✔️ |
| ibmcloud | 2.40.0 | ✔️ | ✔️ |
- Red Hat UBI9 Python 3.12 based image (default) - Available for AMD64 and ARM64
- Ubuntu 24.04 based image - See README-ubuntu.md
The automation engine that performs all tasks is written in Ansible. You can directly use the same automation outside of this CLI if you wish. The code is open source and available at ibm-sterling-devops/ansible-ibm-sterling.
Pre-built container images are available on Quay.io for immediate use. These images support both AMD64 and ARM64 architectures.
To pull a specific version:
# Using Podman
podman pull quay.io/ibm-sterling-devops/sterling-cli:1.0.0
# Using Docker
docker pull quay.io/ibm-sterling-devops/sterling-cli:1.0.0After pulling the image, you can run it interactively:
# Using Podman
podman run -it --rm quay.io/ibm-sterling-devops/sterling-cli:1.0.0
# Using Docker
docker run -it --rm quay.io/ibm-sterling-devops/sterling-cli:1.0.0To work with local files and configurations, mount your workspace directory:
# Using Podman
podman run -it --rm \
-v $(pwd):/workspace \
-w /workspace \
quay.io/ibm-sterling-devops/sterling-cli:latest
# Using Docker
docker run -it --rm \
-v $(pwd):/workspace \
-w /workspace \
quay.io/ibm-sterling-devops/sterling-cli:latestThe manifest list automatically selects the correct architecture for your system. If you need to explicitly pull a specific architecture:
# AMD64
podman pull quay.io/ibm-sterling-devops/sterling-cli:1.0.0-amd64
# ARM64
podman pull quay.io/ibm-sterling-devops/sterling-cli:1.0.0-arm64If you need to customize the container or build it yourself, follow these instructions.
- Podman or Docker installed on your system
- Access to Quay.io (for publishing images)
- Clone this repository:
git clone https://github.com/ibm-sterling-devops/cli.git
cd cli- Export variables and login to Quay.io (optional, only if publishing):
export QUAYIO_USERNAME=<your-quay-username>
export QUAYIO_PASSWORD=<your-quay-password>
export QUAYIO_REPO=quay.io/<your-quay-repository>
podman login quay.io -u "$QUAYIO_USERNAME" -p "$QUAYIO_PASSWORD"- Build your Red Hat UBI9 based image:
Move to the image directory:
cd imageFor AMD64 architecture:
podman build --build-arg ARCHITECTURE=amd64 -f Dockerfile.ubi9 -t sterling-cli:1.0.0 .For ARM64 architecture:
podman build --build-arg ARCHITECTURE=arm64 -f Dockerfile.ubi9 -t sterling-cli:1.0.0 .- Test the image:
To run your container and start a shell session:
podman run -it --rm localhost/sterling-cli:1.0.0You can build each architecture on its native machine and then create the manifest list from any machine.
This approach is recommended when:
- You have native hardware for each architecture (faster builds, no emulation overhead)
- Cross-platform builds fail or are too slow
- You want to ensure optimal performance for each architecture
Export variables and login to Quay.io:
export QUAYIO_USERNAME=<your-quay-username>
export QUAYIO_PASSWORD=<your-quay-password>
export QUAYIO_REPO=quay.io/ibm-sterling-devops
podman login quay.io -u "$QUAYIO_USERNAME" -p "$QUAYIO_PASSWORD"On AMD64 machine:
podman build --build-arg ARCHITECTURE=amd64 -f Dockerfile.ubi9 -t $QUAYIO_REPO/sterling-cli:1.0.0-amd64 .
podman push $QUAYIO_REPO/sterling-cli:1.0.0-amd64On ARM64 machine:
podman build --build-arg ARCHITECTURE=arm64 -f Dockerfile.ubi9 -t $QUAYIO_REPO/sterling-cli:1.0.0-arm64 .
podman push $QUAYIO_REPO/sterling-cli:1.0.0-arm64On any machine (create manifest list):
podman manifest create $QUAYIO_REPO/sterling-cli:1.0.0
podman manifest add $QUAYIO_REPO/sterling-cli:1.0.0 $QUAYIO_REPO/sterling-cli:1.0.0-amd64
podman manifest add $QUAYIO_REPO/sterling-cli:1.0.0 $QUAYIO_REPO/sterling-cli:1.0.0-arm64
podman manifest push $QUAYIO_REPO/sterling-cli:1.0.0We welcome IBM Sterling users, developers, and enthusiasts to contribute to the IBM Sterling Command Line Interface by fixing code issues and implementing new automated functionalities.
You can contribute to this project by raising a new issue with suggestions on how to make our Sterling automation engine even better.
See the list of contributors who participated in this project.
This project is licensed under the Eclipse Public License - v 2.0 - see the LICENSE file for details.
For common issues and solutions, see TROUBLESHOOTING.md.
This repository is a community-driven project and is not officially supported or endorsed by IBM. While members of the community may include IBM employees, this project is independent of IBM's official support channels. Please note that any contributions, issues, or inquiries regarding this repository should be directed to the community maintainers and not to IBM's support teams. We appreciate your understanding and participation in this community-driven initiative.
This code can be used as is, and any feedback will be welcome. We do not make any warranty about the completeness, reliability, and accuracy of this code. Any action you take by using this code is strictly at your own risk, and this project will not be liable for any losses and damages in connection with the use of this code.