metal3-io/baremetal-operator

Bare metal host provisioning integration for Kubernetes

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 36 minutes ago
Added to GitGenius on October 18th, 2024
Created on January 23rd, 2019
Open Issues & Pull Requests: 115 (+0)
Number of forks: 322
Total Stargazers: 759 (+0)
Total Subscribers: 28 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.1 days
Mean response time: 57.2 days
90th percentile: 93.6 days
Tracked items: 206

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 30% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Only 3% of issues opened in the past year have been closed. Three people close 54% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 63
New in 7 days: 1
Closed in 7 days: 2
Avg open age: 379 days
Stale 30+ days: 51
Stale 90+ days: 25

Recent activity

Opened in 7 days: 1
Closed in 7 days: 2
Comments in 7 days: 5
Events in 7 days: 14

Top labels

  • triage/accepted (205)
  • kind/feature (117)
  • kind/bug (104)
  • lifecycle/stale (74)
  • help wanted (72)
  • needs-triage (59)
  • lifecycle/frozen (39)
  • kind/ci (25)

Detailed Description

The Bare Metal Operator is a Kubernetes-native project that implements a comprehensive API for managing bare metal hosts within cloud-native infrastructure. Written in Go, it serves as a critical component of the Metal³ ecosystem, enabling organizations to treat physical servers as first-class Kubernetes resources through the BareMetalHost Custom Resource Definition.

The operator's core functionality centers on three primary capabilities. It inspects bare metal hardware and reports detailed inventory information including CPU specifications, RAM capacity, disk configurations, and network interface details directly on BareMetalHost resources. It provisions hosts with desired operating system images, automating the deployment process across physical infrastructure. It also handles disk cleaning operations before or after provisioning, ensuring hosts are in a known state for subsequent workloads.

The project maintains active development with regular feature additions.

Testing infrastructure plays a substantial role in the project's quality assurance strategy. The operator integrates with CAPM3 testing frameworks, running both e2e integration tests and ansible-based integration tests across multiple branches and operating systems. The project supports multiple release branches including release-0.13, release-0.12, and release-0.11, each with corresponding CentOS and Ubuntu integration test pipelines that validate compatibility with specific CAPM3 versions.

The repository's classification spans infrastructure, deployment, workload management, and cloud-native automation domains, reflecting its role as a bridge between Kubernetes orchestration and physical hardware provisioning.

Development workflow requires developers to run make manifests whenever changes occur in the config directory, as this command renders the config/render/capm3.yaml file which should not be manually edited. The project provides comprehensive documentation including API specifications, development environment setup guides, configuration instructions, testing procedures, and provisioner plugin documentation, supporting both operators and contributors seeking to extend functionality.