Skip to content

openshift/cluster-config-operator

Repository files navigation

OpenShift Cluster Config Operator

The cluster-config-operator manages OpenShift cluster configuration with a minimal set of runtime controllers. It provides:

  1. A render command which creates initial bootstrap manifests
  2. Controllers for managing specific cluster configuration aspects

Note: This repo is not accepting new control loop contributions. It has a constrained scope and should not be expanded with additional logic — jointly owned repos like this end up having no owner to handle migration over time as dependencies move.

Building

To build the operator and test binary:

make build

This produces:

  • cluster-config-operator — the operator binary
  • cluster-config-operator-tests-ext — the test binary compatible with the OpenShift Tests Extension framework

Controllers

The operator runs the following controllers:

  • Feature Gates Controller — Manages feature gate configuration and version tracking for the cluster
  • Kube Cloud Config Controller — Synthesizes cloud provider configuration for Kubernetes components from Infrastructure and user-provided ConfigMaps
  • AWS Platform Service Location Controller — Configures AWS service endpoints for platform components
  • Platform Status Migration Controller — Handles migration of platform status fields in Infrastructure
  • Feature Upgradeable Controller — Controls cluster upgradeability based on feature gate configuration
  • Latency Sensitive Removal Controller — Manages removal of deprecated latency-sensitive workload class (temporary migration controller)
  • OKD Feature Set Migration Controller — Handles migration of Default featureset to OKD for OKD builds (temporary migration controller)

Testing

This repository uses the OpenShift Tests Extension (OTE) framework.

Running tests

# Run all tests in the suite
./cluster-config-operator-tests-ext run-suite openshift/cluster-config-operator/all

# Run a specific test
./cluster-config-operator-tests-ext run-test "test-name"

# Generate JUnit output
./cluster-config-operator-tests-ext run-suite openshift/cluster-config-operator/all --junit-path /tmp/junit.xml

Listing tests

# List all test suites
./cluster-config-operator-tests-ext list suites

# List tests in a specific suite
./cluster-config-operator-tests-ext list tests --suite=openshift/cluster-config-operator/all

For more information, see the OpenShift Tests Extension documentation.

Dependencies

Dependencies are managed through Go Modules.

When updating dependencies:

go mod tidy
go mod vendor

Key Dependencies

Repository Role
openshift/api OCP API type definitions including config.openshift.io
openshift/client-go Typed clients for OCP resources
openshift/library-go Shared OCP library code and controller framework
openshift/build-machinery-go Standard Makefile targets
k8s.io/client-go Kubernetes API client library

Security

If you've found a security issue that you'd like to disclose confidentially, please contact Red Hat's Product Security team. Details at https://access.redhat.com/security/team/contact

Do not file security issues as public GitHub issues.

License

cluster-config-operator is licensed under the Apache License, Version 2.0.

About

The canonical location for OpenShift cluster configuration

Resources

License

Security policy

Stars

32 stars

Watchers

147 watching

Forks

Packages

 
 
 

Contributors