Chapter 3. Using MicroShift configuration snippets
If you want to configure one or two settings, use the /etc/microshift/config.d/
configuration directory to drop in configuration snippet YAML files.
3.1. How configuration snippets work Copy linkLink copied to clipboard!
If you want to configure one or two settings, such as adding subject alternative names (SANs), you can use the /etc/microshift/config.d/
configuration directory to drop in configuration snippet YAML files. You must restart MicroShift for new configurations to apply.
To return to previous values, you can delete a configuration snippet and restart MicroShift.
At runtime, the YAML files inside /etc/microshift/config.d
are merged into the existing MicroShift configuration, whether that configuration is a result of default values or a user-created config.yaml
file. You do not need to create a config.yaml
file to use a configuration snippet.
Files in the snippet directory are sorted in lexicographical order and run sequentially. You can use numerical prefixes for snippets so that each is read in the order you want. The last-read file takes precedence when there is more than one YAML for the same parameter.
Configuration snippets take precedence over both default values and a customized config.yaml
configuration file.
3.2. Examples of configuration snippet lists or arrays Copy linkLink copied to clipboard!
Lists, or arrays, are not merged, they are overwritten. For example, you can replace a SAN or list of SANs by creating an additional snippet for the same field that is read after the first:
MicroShift configuration directory contents
-
/etc/microshift/config.yaml.default
or/etc/microshift/config.yaml
Example MicroShift configuration snippet directory contents
-
/etc/microshift/config.d/10-san.yaml
/etc/microshift/config.d/20-san.yaml
Example
10-san.yaml
snippetapiServer: subjectAltNames: - host1 - host2
apiServer: subjectAltNames: - host1 - host2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
20-san.yaml
snippetapiServer: subjectAltNames: - hostZ
apiServer: subjectAltNames: - hostZ
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example configuration result
apiServer: subjectAltNames: - hostZ
apiServer: subjectAltNames: - hostZ
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
If you want to add a value to an existing list, you can add it to an existing snippet. For example, to add hostZ
to an existing list of SANs, edit the snippet you have instead of creating a new one:
Example 10-san.yaml
snippet
apiServer: subjectAltNames: - host1 - host2 - hostZ
apiServer:
subjectAltNames:
- host1
- host2
- hostZ
Example configuration result
apiServer: subjectAltNames: - host1 - host2 - hostZ
apiServer:
subjectAltNames:
- host1
- host2
- hostZ
3.3. Example configuration snippets that are objects Copy linkLink copied to clipboard!
Objects are merged together when you use a configuration snippet.
Example 10-advertiseAddress.yaml
snippet
apiServer: advertiseAddress: "microshift-example"
apiServer:
advertiseAddress: "microshift-example"
Example 20-audit-log.yaml
snippet
apiServer: auditLog: maxFileAge: 12
apiServer:
auditLog:
maxFileAge: 12
Example configuration result
apiServer: advertiseAddress: "microshift-example" auditLog: maxFileAge: 12
apiServer:
advertiseAddress: "microshift-example"
auditLog:
maxFileAge: 12
3.4. Examples of mixed configuration snippets Copy linkLink copied to clipboard!
In this example, the values of both advertiseAddress
and auditLog.maxFileAge
fields merge into the configuration, but only the c.com
and d.com
subjectAltNames
values are retained. This happens because the numbering in the filename indicates that the c.com
and d.com
values are higher priority.
Example 10-advertiseAddress.yaml
snippet
apiServer: advertiseAddress: "microshift-example"
apiServer:
advertiseAddress: "microshift-example"
Example 20-audit-log.yaml
snippet
apiServer: auditLog: maxFileAge: 12
apiServer:
auditLog:
maxFileAge: 12
Example 30-SAN.yaml
snippet
apiServer: subjectAltNames: - a.com - b.com
apiServer:
subjectAltNames:
- a.com
- b.com
Example 40-SAN.yaml
snippet
apiServer: subjectAltNames: - c.com - d.com
apiServer:
subjectAltNames:
- c.com
- d.com
Example configuration result