// Module included in the following assemblies:
//
// * operators/operator-reference.adoc
// * post_installation_configuration/machine-configuration-tasks.adoc

[id="machine-config-operator_{context}"]
= Machine Config Operator

[discrete]
== Purpose

The Machine Config Operator manages and applies configuration and updates of the
base operating system and container runtime, including everything between the
kernel and kubelet.

There are four components:

* machine-config-server: Provides Ignition configuration to new machines joining the cluster.
* machine-config-controller: Coordinates the upgrade of machines to the desired
configurations defined by a `MachineConfig` object. Options are provided to
control the upgrade for sets of machines individually.
* machine-config-daemon: Applies new machine configuration during update.
Validates and verifies the machine's state to the requested machine
configuration.
* machine-config: Provides a complete source of machine configuration at
installation, first start up, and updates for a machine.

[discrete]
== Project

link:https://github.com/openshift/machine-config-operator[openshift-machine-config-operator]
