
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
openshift-cli-installer
Advanced tools
Basic Openshift install CLI wrapper.
The tool allows deploying or deletion of one or more clusters.
The clusters can be deployed on different platforms; currently supported platforms: AWS IPI, AWS OSD, GCP OSD, ROSA and Hypershift.
Each cluster can be provided with different configuration options, such as worker type, number of workers etc.
quay.io/openshift-release-dev/ocp-release:<target version>
Image locate at openshift-cli-installer
To pull the image: podman pull quay.io/redhat_msi/openshift-cli-installer
uv install
uv run openshift_cli_installer/cli.py --help
pipx install .
For shell complition Add this to ~/.bashrc or ~/.zshrc:
eval "$(_OPENSHIFT_CLI_INSTALLER_COMPLETE=zsh_source openshift-cli-installer)"
User can create/destroy clusters by sending YAML file instead with CLI args
Example YAML file can be found here
pass --clusters-yaml-config-file=.local/clusters-example.yaml
to use YAML file.
Action also can be passed to the CLI as --action create/destroy
instead of specifying the action in the YAML file.
--action create --clusters-yaml-config-file=.local/clusters-example.yaml
--clusters-install-data-directory
: Clusters configurations are written to <clusters-install-data-directory><platform><cluster name>
; write permissions are needed.
<cluster directory>/auth
contains kubeconfig
and kubeadmin-password
files<cluster directory>/auth/api.login
contains the full login command to the cluster.<cluster directory>/auth/rosa-admin-password
contains the password for the rosa-admin
user.--parallel
: To create / destroy clusters in parallel
Pass --s3-bucket-name
(and optionally --s3-bucket-path
and --s3-bucket-object-name
) to back up in an S3 bucket.
--ocm-token
: OCM token, defaults to OCM_TOKEN
environment variable.
--must-gather-output-dir
: Path to must-gather output dir. must-gather
will try to collect data when cluster installation fails and cluster can be accessed.
AWS IPI clusters:
<cluster directory>
.platform=aws
: Must pass in cluster parametersbase-domain
: cluster parameter is mandatoryauto-region=True
: Optional cluster parameter for assigning region
param to a region which have the least number of VPCs.log_level
: Log level, defaults to error
for cluster config to hide the openshift-installer logs which contains kubeadmin password.--registry-config-file
: registry-config json file path, can be obtained from openshift local cluster--docker-config-file
: Path to Docker config.json file, defaults to ~/.docker/config.json
. File must include token for registry.ci.openshift.org
--ssh-key-file
: id_rsa file path, defaults to /openshift-cli-installer/ssh-key/id_rsa.pub
GCP IPI clusters:
<cluster directory>
.platform=gcp
: Must pass in cluster parametersbase-domain
: cluster parameter is mandatory--gcp-service-account-file
: Path to GCP service account json. The file will be copied to specific path ~/.gcp/osServiceAccount.json
for installer .
Follow these steps to get the ServiceAccount file.--registry-config-file
: registry-config json file path, can be obtained from openshift local cluster--docker-config-file
: Path to Docker config.json file, defaults to ~/.docker/config.json
. File must include token for registry.ci.openshift.org
--ssh-key-file
: id_rsa file path, defaults to /openshift-cli-installer/ssh-key/id_rsa.pub
ROSA / Hypershift clusters:
platform=rosa
: Must pass in cluster parameters--aws-account-id
: AWS account ID for Hypershift clustersAWS OSD clusters:
platform=aws-osd
: Must pass in cluster parametersauto-region=True
: Optional cluster parameter for assigning region
param to a region which have the least number of VPCs.--aws-access-key-id
: AWS access key ID--aws-secret-access-key
: AWS secret access key--aws-account-id
: AWS account IDGCP OSD clusters:
platform=gcp-osd
: Must pass in cluster parameters--gcp-service-account-file
: Path to GCP service account json.
Follow these steps to get the ServiceAccount file.Every call to the openshift installer cli must have at least one --cluster
option.
;
)--cluster ...timeout=1h'
; default is 60 minutes.timeout
and expiration-time
format examples: 1h
, 30m
, 3600s
ocm-env
: OCM environment to deploy the cluster; available options: stage
or production
(defaults to stage
). AWS-IPI clusters only use production
.{{ fips|default("false", true) }}
pass --cluster '...fips=true'
rosa create --help
for more details.--cluster ...fips=true'
to enable FIPS--cluster ...expiration-time=2h'
to have the cluster expiration time set to 2 hourscidr
, pass --cluster ...cidr=1.1.0.0/16'
private-subnets
, pass --cluster ...private-subnets=10.1.1.0/24,10.1.2.0/24'
public-subnets
, pass --cluster ...public-subnets=10.1.10.0/24,10.1.20.0/24'
To create the file, create a service account and download it:
JSON
and click CreateManaged clusters (Rosa, AWS and OSD) can be deployed with ACM and attached to ACM hub.
To deploy ACM on cluster pass --cluster ... acm=True
To enable observability on the ACM enabled cluster pass --cluster ... acm-observability=True
Attach clusters to ACM cluster hub:
--cluster ... acm-clusters=mycluser1,mycluster2
mycluser1,mycluster2
needs to be sent with --cluster ...
for the script to create them.--destroy-clusters-from-install-data-directory
, --destroy-clusters-from-s3-bucket
and --destroy-clusters-from-install-data-directory-using-s3-bucket
must have:
--ocm-token=$OCM_TOKEN \
--registry-config-file=${HOME}/docker-secrets.json \
--aws-access-key-id=${AWS_ACCESS_KEY_ID} \
--aws-secret-access-key=${AWS_SECRET_ACCESS_KEY}
To destroy all clusters locate in --clusters-install-data-directory
run:
podman run quay.io/redhat_msi/openshift-cli-installer \
--destroy-clusters-from-install-data-directory \
--clusters-install-data-directory=/openshift-cli-installer/clusters-install-data
podman run quay.io/redhat_msi/openshift-cli-installer \
--destroy-clusters-from-install-data-directory-using-s3-bucket \
--clusters-install-data-directory=/openshift-cli-installer/clusters-install-data
To destroy all clusters from uploaded zip files in S3 bucket run:
podman run quay.io/redhat_msi/openshift-cli-installer \
--destroy-clusters-from-s3-bucket \
--s3-bucket-name="openshift-cli-installer" \
--s3-bucket-path="openshift-ci"
To filter cluster pass --destroy-clusters-from-s3-bucket-query
query:
podman run quay.io/redhat_msi/openshift-cli-installer--destroy-clusters-from-s3-bucket \
--s3-bucket-name=openshift-cli-installer \
--s3-bucket-path=install-folders \
--destroy-clusters-from-s3-bucket-query="mycluster"
podman run quay.io/redhat_msi/openshift-cli-installer --help
Clone the repository
git clone https://github.com/RedHatQE/openshift-cli-installer.git
Install uv
Install regctl
Install Terraform how-to
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
sudo dnf install terraform
Use uv run openshift_cli_installer/cli.py
to execute the cli.
uv install
uv run openshift_cli_installer/cli.py --help
Each command can be run via container podman run quay.io/redhat_msi/openshift-cli-installer
or via uv command uv run openshift_cli_installer/cli.py
When using the container pass:
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
-v registry-config.json:/registry-config.json
-v ./clusters-install-data:/openshift-cli-installer/clusters-install-data
streams
are: stable
, nightly
, rc
, ci
and ec
, Supported architecture(s): X86_64
stream=nightly
and version 4.13, latest 4.13 nightly will be used.
--cluster
, --cluster ...... stream=stable
podman run quay.io/redhat_msi/openshift-cli-installer \
--action create \
--registry-config-file=registry-config.json \
--s3-bucket-name=openshift-cli-installer \
--s3-bucket-path=install-folders \
--s3-bucket-object-name=cluster-backup \
--cluster 'name=ipi1;base-domain=gcp.interop.ccitredhat.com;platform=gcp;region=us-east1;version=4.14.0-ec.2;worker-flavor=custom-4-16384;log_level=info'
podman run quay.io/redhat_msi/openshift-cli-installer \
--action create \
--registry-config-file=registry-config.json \
--s3-bucket-name=openshift-cli-installer \
--s3-bucket-path=install-folders \
--cluster 'name=ipi2;base-domain=aws.interop.ccitredhat.com;platform=aws;auto-region=True;version=4.14.0-ec.2;worker-flavor= m5.4xlarge'
[Same for Hypershift clusters]
channel-group
are: stable
, candidate
, and nightly
.channel-group=nightly
and version 4.13, latest 4.13 nightly will be used.
--cluster
, --cluster ...... channel-group=stable
podman run quay.io/redhat_msi/openshift-cli-installer \
--action create \
--ocm-token=$OCM_TOKEN \
--cluster 'name=rosa1;platform=rosa;region=us-east-2;version=4.13.4;compute-machine-type=m5.xlarge;replicas=2;channel-group=candidate;expiration-time=4h;timeout=1h;ocm-env=production
podman run quay.io/redhat_msi/openshift-cli-installer \
--action create \
--ocm-token=$OCM_TOKEN \
--cluster 'name=hyper;platform=hypershift;region=us-west-2;version=4.13.4;compute-machine-type=m5.4xlarge;replicas=6;channel-group=candidate;expiration-time=4h;timeout=1h'
To run multiple clusters deployments in parallel pass -p,--parallel.
podman run quay.io/redhat_msi/openshift-cli-installer \
--action create \
--registry-config-file=registry-config.json \
--s3-bucket-name=openshift-cli-installer \
--s3-bucket-path=install-folders \
--cluster 'name=hyper1;platform=hypershift;region=us-west-2;version=4.13.4;compute-machine-type=m5.4xlarge;replicas=6;channel-group=candidate;expiration-time=2h;timeout=1h' \
--ocm-token=$OCM_TOKEN \
--cluster 'name=ipi1;base-domain=aws.interop.ccitredhat.com;platform=aws;region=us-east-2;version=4.14.0-ec.2;worker-flavor=m5.xlarge' \
--cluster 'name=rosa1;platform=rosa;region=us-east-2;version=4.13.4;compute-machine-type=m5.xlarge;replicas=2;channel-group=candidate;expiration-time=4h;timeout=1h' \
--parallel
podman run quay.io/redhat_msi/openshift-cli-installer \
--action destroy \
--ocm-token=$OCM_TOKEN \
--cluster 'name=ipi1;region=us-east-2;version=4.14.0-ec.2;timeout=1h'
podman run quay.io/redhat_msi/openshift-cli-installer \
--action destroy \
--ocm-token=$OCM_TOKEN \
--cluster 'name=rosa1;platform=rosa;region=us-east-2;version=4.13.4;timeout=1h;ocm-env=production'
podman run quay.io/redhat_msi/openshift-cli-installer \
--action destroy \
--ocm-token=$OCM_TOKEN \
--cluster 'name=hyper1;platform=hypershift;region=us-east-2;version=4.13.4;timeout=1h'
To run multiple clusters deletion in parallel pass -p,--parallel.
podman run quay.io/redhat_msi/openshift-cli-installer \
--action destroy \
--ocm-token=$OCM_TOKEN \
--cluster 'name=rosa1;platform=rosa;region=us-east-2;version=4.13.4;timeout=1h' \
--cluster 'name=hyper1;platform=rosa;region=us-east-2;version=4.13.4;timeout=1h' \
--cluster 'name=ipi1;region=us-east-2;version=4.14.0-ec.2;timeout=1h'
FAQs
CLI to install/uninstall Openshift clusters.
We found that openshift-cli-installer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.