Skip to main content

Generic framework for running health validation rules on OpenShift cluster nodes

Project description

In-Cluster Checks

CI License: 3-Clause BSD Python 3.12+

A generic framework for running health validation rules directly on OpenShift cluster nodes using oc debug.

Key Advantages

  • Direct node access - Rules run directly on cluster nodes via oc debug
  • Fast execution - Parallel rule execution across multiple nodes
  • Relevant rules execution - Only relevant rules run based on prerequisite checks
  • Easy debugging - Full visibility into commands executed for each rule

Originally developed as part of Red Hat's Pendrive project, this framework has been extracted as open-source to benefit the broader OpenShift community.

Rules are organized by topic into domains (hardware, network, linux, storage).

Installation

Prerequisites:

  • Python >= 3.12
  • pip (Python package installer)

Connected Environment

Install the framework:

pip install in-cluster-checks

Or if pip is not found, use:

python3 -m pip install in-cluster-checks

Disconnected Environment

For environments without internet access:

  1. Download the package on a connected machine:

    pip download in-cluster-checks --dest ./packages
    # Or: python3 -m pip download in-cluster-checks --dest ./packages
    
  2. Transfer the packages to the disconnected environment

    Copy the entire ./packages directory to the disconnected machine. You can place it anywhere, but note the location for the next step.

  3. Install from local packages:

    # If packages are in the current directory:
    pip install --no-index --find-links=./packages in-cluster-checks
    
    # Or specify the full path to where you copied them:
    pip install --no-index --find-links=/path/to/packages in-cluster-checks
    
    # Using python3 -m pip:
    # python3 -m pip install --no-index --find-links=./packages in-cluster-checks
    

Running in-cluster-checks

Cluster Login

Ensure you're logged into your OpenShift cluster.

You can login by one of the following options:

Login with Username and Password:

Use the cluster API URL and your credentials.

oc login https://api.your-cluster.com:6443

Login Using a Kubeconfig File:

If you already have a kubeconfig file with credentials:

export KUBECONFIG=/path/to/kubeconfig

Usage Examples

You can run in-cluster-checks with the following options:

# Run all checks. Use --output to save run results to ./cluster-checks.json
in-cluster-checks --output ./cluster-checks.json

# Run a specific rule (disables secret filtering)
in-cluster-checks --debug-rule "check_disk_usage"

# Run with debug logging
in-cluster-checks --log-level DEBUG

# Specify namespace for debug pods (default: default)
in-cluster-checks --namespace openshift-debug

To see all available options, run:

in-cluster-checks --help

Notes:

  • To control execution performance, use --max-workers to set the maximum number of parallel workers (default: 50).
  • When using --namespace, ensure you have permissions to create debug pods in the specified namespace.

Contributing

Contributions are welcome! Please see our CONTRIBUTING.md for detailed guidelines on how to:

  • Set up your development environment
  • Add new rules and domains
  • Write tests
  • Submit pull requests

Related Projects

  • Pendrive: Red Hat's on-premise Insights validation tool (internal)
  • OpenShift: Container orchestration platform

Acknowledgments

This framework was extracted from Red Hat's Pendrive project. The core validation infrastructure is generic and contains no confidential logic, making it suitable for open-source release to benefit the wider OpenShift community.

License

The 3-Clause BSD License

See LICENSE for full text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

in_cluster_checks-0.1.18.tar.gz (131.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

in_cluster_checks-0.1.18-py3-none-any.whl (159.6 kB view details)

Uploaded Python 3

File details

Details for the file in_cluster_checks-0.1.18.tar.gz.

File metadata

  • Download URL: in_cluster_checks-0.1.18.tar.gz
  • Upload date:
  • Size: 131.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for in_cluster_checks-0.1.18.tar.gz
Algorithm Hash digest
SHA256 ad4531bbc2d3ec32b8d194be87bc2ece83a0e7c938fe9e9db34f7b59c7d3eab8
MD5 9afb3bba98ef38c894c8554d1a4ca890
BLAKE2b-256 85448c430d95db4e2b3a9d4149c1fc45ffc9e8a27bc068e1ce596b12a6c865ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for in_cluster_checks-0.1.18.tar.gz:

Publisher: publish.yml on RedHatInsights/incluster-checks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file in_cluster_checks-0.1.18-py3-none-any.whl.

File metadata

File hashes

Hashes for in_cluster_checks-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 be7cfd63928c68f69452e7de3fc89167abd070aafeafdb6940e65fc2f6dc4bee
MD5 2187f7ea55295a0fea49d4d0627a747c
BLAKE2b-256 3625f56d513b2390fad23bba55a00a50313640a3688895f9e04b354f973a1927

See more details on using hashes here.

Provenance

The following attestation bundles were made for in_cluster_checks-0.1.18-py3-none-any.whl:

Publisher: publish.yml on RedHatInsights/incluster-checks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page