:_mod-docs-content-type: ASSEMBLY
:context: machine-configs-configure
[id="machine-configs-configure"]
= Using machine config objects to configure nodes
include::_attributes/common-attributes.adoc[]

toc::[]

[role="_abstract"]
You can create `MachineConfig` custom resources (CR) that modify files, systemd unit files, and other operating system features running on {product-title} nodes. By using `MachineConfig` objects, you can perform tasks such as disabling chronyd, adding kernel arguments, enabling multipathing, and adding {op-system} extensions.

For more ideas on working with machine configs, see "How to update ssh keys after installation in OpenShift 4?", "Container image signatures", "Enabling SCTP in Openshift Container Platform 4", and "How to provide custom iSCSI initiatornames for nodes".

{product-title} supports Ignition specification version 3.5. For more information, see "Configuration Specification v3.5.0 (Ignition documentation)". You should base all new machine configs you create going forward on Ignition specification version 3.5. If you are upgrading your {product-title} cluster, any existing machine configs with a previous Ignition specification will be translated automatically to specification version 3.5.

There might be situations where the configuration on a node does not fully match what the currently-applied machine config specifies. This state is called _configuration drift_. The Machine Config Daemon (MCD) regularly checks the nodes for configuration drift. If the MCD detects configuration drift, the MCO marks the node `degraded` until an administrator corrects the node configuration. A degraded node is online and operational, but, it cannot be updated. For more information on configuration drift, see "Understanding configuration drift detection".

[TIP]
====
Use the following "Configuring chrony time service" procedure as a model for how to go about adding other configuration files to {product-title} nodes.
====

include::modules/installation-special-config-chrony.adoc[leveloffset=+1]

include::modules/cnf-disable-chronyd.adoc[leveloffset=+1]

include::modules/nodes-nodes-kernel-arguments.adoc[leveloffset=+1]

include::modules/rhcos-enabling-multipath-day-2.adoc[leveloffset=+1]

include::modules/nodes-nodes-rtkernel-arguments.adoc[leveloffset=+1]

include::modules/machineconfig-modify-journald.adoc[leveloffset=+1]

include::modules/rhcos-add-extensions.adoc[leveloffset=+1]

include::modules/rhcos-load-firmware-blobs.adoc[leveloffset=+1]

include::modules/core-user-password.adoc[leveloffset=+1]

include::modules/machine-config-install-time-configs.adoc[leveloffset=+1]

[role="_additional-resources"]
[id="additional-resources_{context}"]
== Additional resources

* link:https://access.redhat.com/solutions/3868301[How to update ssh keys after installation in OpenShift 4? (Red{nbsp}Hat Knowledgebase article)]
* xref:../security/container_security/security-container-signature.adoc#security-container-signature[Container image signatures]
* link:https://access.redhat.com/solutions/4727321[Enabling SCTP in {product-title} 4 (Red{nbsp}Hat Knowledgebase article)]
* link:https://access.redhat.com/solutions/5170251[How to provide custom iSCSI initiatornames for nodes in {product-title} 4.x (Red{nbsp}Hat Knowledgebase article)]
* link:https://coreos.github.io/ignition/configuration-v3_5/[Configuration Specification v3.5.0 (Ignition documentation)]
* xref:../machine_configuration/index.adoc#machine-config-drift-detection_machine-config-overview[Understanding configuration drift detection]
* xref:../installing/install_config/installing-customizing.adoc#installation-special-config-butane_installing-customizing[Creating machine configs with Butane]
* xref:../installing/installing_bare_metal/upi/installing-bare-metal.adoc#rhcos-enabling-multipath_installing-bare-metal[Enabling multipathing with kernel arguments on RHCOS]
* xref:../installing/install_config/installing-customizing.adoc#installation-special-config-butane_installing-customizing[Creating machine configs with Butane]
* xref:../nodes/clusters/nodes-cluster-enabling-features.adoc#nodes-cluster-enabling-features[Enabling features using feature gates]

