machine-api-operator
by
openshift

Description: Machine API operator

View on GitHub ↗

Summary Information

Updated 13 minutes ago
Added to GitGenius on March 9th, 2026
Created on July 19th, 2018
Open Issues & Pull Requests: 19 (+0)
Number of forks: 250
Total Stargazers: 187 (+0)
Total Subscribers: 17 (+0)

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 0 days
Stale 30+ days: 1
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • lifecycle/rotten (4)
  • tide/merge-blocker (4)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 64.0 days
Mean response time: 68.6 days
90th percentile: 120.9 days
Tracked items: 6

Most active contributors

Detailed Description

The Machine API Operator is a Kubernetes operator written in Go that manages the lifecycle of custom resource definitions, controllers, and RBAC objects for machine management in OpenShift clusters. It enables declarative specification of desired machine state through Kubernetes-native APIs, extending the platform's infrastructure automation capabilities.

The operator deploys and manages platform-specific machine controllers across multiple cloud providers and infrastructure platforms. Its architecture separates core machine lifecycle logic from provider-specific implementations. The core logic resides in the main repository and is imported by external provider repositories such as machine-api-provider-aws, machine-api-provider-gcp, machine-api-provider-azure, cluster-api-provider-openstack, cluster-api-provider-baremetal, and cluster-api-provider-ibmcloud. These external providers implement their own actuators and build container images that the Machine API Operator then deploys. The VSphere provider is an exception, with its actuator implemented directly within the main repository.

The operator manages three primary custom resource definitions: MachineSet, Machine, and MachineHealthCheck. The MachineSet controller ensures the presence of an expected number of machine replicas with specified provider configurations. The Machine controller creates provider instances corresponding to Machine objects. The Nodelink controller establishes machine-to-node associations based on IP addresses or provider IDs and annotates nodes with machine name labels. The MachineHealthCheck controller monitors machines against healthiness criteria and triggers remediation when necessary.

Activity tracking shows median issue and pull request response latency of approximately 1537 hours with a mean of 1646 hours. The most active issue labels include lifecycle/rotten and tide/merge-blocker, indicating ongoing maintenance concerns. Primary contributors tracked include gojeaqui with five events, sebrandon1 with three events, and elmiko with two events. The repository shares contributors with portainer/portainer, openshift/installer, and openshift/coredns, reflecting its integration within the broader OpenShift ecosystem.

The operator is designed to work with the Cluster Version Operator and functions within OpenShift clusters deployed by the Installer. It can also run on vanilla Kubernetes clusters with prerequisite assets including the openshift-machine-api namespace and appropriate CRD definitions. Development and testing support includes a Kubemark provider configuration for testing purposes over Kubernetes clusters.

Testing infrastructure relies on the Prow CI system with configurations stored in the openshift/release repository. Unit tests and end-to-end AWS operator tests are available, with the latter requiring a running cluster and KUBECONFIG environment variable. Bug tracking occurs through the OpenShift Bugzilla system under the Cloud Compute product category. The repository is classified across multiple domains including Kubernetes, OpenShift, Machine Management, Infrastructure Automation, Cloud Provisioning, Node Scaling, Cluster Operations, Compute Resources, Lifecycle Automation, and Platform Operator functionality.

machine-api-operator
by
openshiftopenshift/machine-api-operator

Repository Details

Fetching additional details & charts...