MicroShift is Technology Preview software only.
For more information about the support scope of Red Hat Technology Preview software, see Technology Preview Support Scope.Chapter 1. How configuration tools work
A YAML file customizes Red Hat build of MicroShift instances with your preferences, settings, and parameters.
1.1. Using a YAML configuration file
Red Hat build of MicroShift searches for a configuration file in the user-specific directory, ~/.microshift/config.yaml
, then the system-wide /etc/microshift/config.yaml
directory. You must create the configuration file and specify any settings that should override the defaults before starting Red Hat build of MicroShift.
1.1.1. Default settings
If you do not create a config.yaml
file, the default values are used. The following example configuration contains the default settings. You must change any settings that should override the defaults before starting Red Hat build of MicroShift.
Default YAML file example
dns: baseDomain: microshift.example.com 1 network: clusterNetwork: - cidr: 10.42.0.0/16 2 serviceNetwork: - 10.43.0.0/16 3 serviceNodePortRange: 30000-32767 4 node: hostnameOverride: "" 5 nodeIP: "" 6 apiServer: subjectAltNames: [] 7 debugging: logLevel: "Normal" 8
- 1
- Base domain of the cluster. All managed DNS records will be subdomains of this base.
- 2
- A block of IP addresses from which Pod IP addresses are allocated.
- 3
- A block of virtual IP addresses for Kubernetes services.
- 4
- The port range allowed for Kubernetes services of type NodePort.
- 5
- The name of the node. The default value is the hostname.
- 6
- The IP address of the node. The default value is the IP address of the default route.
- 7
- Subject Alternative Names for API server certificates.
- 8
- Log verbosity. Valid values for this field are
Normal
,Debug
,Trace
, orTraceAll
.
Restart Red Hat build of MicroShift after changing any configuration settings to have them take effect. Red Hat build of MicroShift reads the configuration file only on start.
1.2. Extending the port range for NodePort services
The serviceNodePortRange
setting extends the port range available to NodePort services. This option is useful when specific standard ports under the 30000-32767
range need to be exposed. For example, if your device needs to expose the 1883/tcp
MQ Telemetry Transport (MQTT) port on the network because client devices cannot use a different port.
NodePorts can overlap with system ports, causing a malfunction of the system or Red Hat build of MicroShift.
Consider the following when configuring the NodePort service ranges:
-
Do not create any NodePort service without an explicit
nodePort
selection. When an explicitnodePort
is not specified, the port is assigned randomly by thekube-apiserver
and cannot be predicted. -
Do not create any NodePort service for any system service port, Red Hat build of MicroShift port, or other services you expose on your device
HostNetwork
. Table one specifies ports to avoid when extending the port range:
Table 1.1. Ports to avoid. Port Description 22/tcp
SSH port
80/tcp
OpenShift Router HTTP endpoint
443/tcp
OpenShift Router HTTPS endpoint
1936/tcp
Metrics service for the openshift-router, not exposed today
2379/tcp
etcd port
2380/tcp
etcd port
6443
kubernetes API
8445/tcp
openshift-route-controller-manager
9537/tcp
cri-o metrics
10250/tcp
kubelet
10248/tcp
kubelet healthz port
10259/tcp
kube scheduler