Coder Social home page Coder Social logo

cluster-api-provider-baremetal's Introduction

Cluster API Provider for Managed Bare Metal Hardware

This repository contains a Machine actuator implementation for the Kubernetes Cluster API.

For more information about this actuator and related repositories, see metal3.io.

Development Environment

API

See the API Documentation for details about the providerSpec API used with this cluster-api provider.

MachineSet Scaling

If you would like a MachineSet to be automatically scaled to the number of matching BareMetalHosts, annotate that MachineSet with key metal3.io/autoscale-to-hosts and any value.

When reconciling a MachineSet, the controller will count all of the BareMetalHosts that either:

  • match the MachineSet's Spec.Template.Spec.ProviderSpec.HostSelector and have a ConsumerRef that is nil
  • has a ConsumerRef that references a Machine that is part of the MachineSet

This ensures that in case a BareMetalHost has previously been consumed by a Machine, but either labels or selectors have since been changed, it will continue to get counted with the MachineSet that its Machine belongs to.

Machine Remediation

MachineHealthCheck Controller in Machine-API operator is checking Node's health. If you would like to remediate unhealthy Machines you should add the following to MachineHealthCheck CR:

annotations:
   machine.openshift.io/remediation-strategy: external-baremetal

Remediation is done by power-cycling the Host associated with the unhealthy Machine, using BMO reboot API

Remediation steps (triggered by the annotation mentioned above):

  1. Power off the host
  2. Add poweredOffForRemediation annotation to the unhealthy Machine
  3. Delete the node
  4. Power on the host
  5. Wait for the node the come up (by waiting for the node to be registered in the cluster)
  6. Remove poweredOffForRemediation annotation and the MAO's machine unhealthy annotation

cluster-api-provider-baremetal's People

Contributors

asalkeld avatar bcrochet avatar danil-grigorev avatar dhellmann avatar elmiko avatar joelspeed avatar jupierce avatar kirankt avatar longkb avatar mhrivnak avatar n1r1 avatar ondrejmular avatar openshift-bot avatar openshift-ci-robot avatar openshift-merge-robot avatar rdoxenham avatar russellb avatar rwsu avatar sadasu avatar stbenjam avatar vrutkovs avatar wking avatar zaneb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.