-
Story
-
Resolution: Done
-
Major
-
None
-
None
-
8
-
False
-
False
-
OCPPLAN-2389 - Drive Workload and Consumption
-
Undefined
-
-
WinC - Sprint 201, WinC - Sprint 202
As an OpenShift cluster administrator I would like to add an existing Windows instance to the cluster as a worker node.
Description
The cluster admin will create a ConfigMap called windows-instances in the openshift-windows-machine-config-operator namespace. WMCO will be configured to watch for this special ConfigMap, whose data section will have the following layout:
kind: ConfigMap apiVersion: v1 metadata: name: windows-instances namespace: openshift-windows-machine-config-operator data: 10.1.42.1: |- username=Administrator instance.dns.com: |- username=core
WMCO will configure instances based on the contents of the data section and will use the cloud-private-key to communicate with them. The key value above can either be the IP address of the instance or it's DNS name. The IP or DNS entries act as unique keys. If a specified IP and DNS entry resolve to the same instance then it will get prepped twice but will result in only one Windows worker.
Engineering details
WMCO will include a ConfigMap controller that watches for changes to the windows-instances ConfigMap and node objects. Any change will cause WMCO to compare the list of instances with the set of existing Windows nodes. The comparison will be based on the instance and node's IP addresses. WMCO will then react in the following manner:
- If a new entry is found i.e. the list of nodes does not contain one that map to the instances' IP address, the instance will be configured by WMCO. The configuration process will be identical to configuring instances added using a MachineSet in an IPI cluster.
Not required
Handling of CSR approvals. This can be tackled in a separate story
Acceptance criteria
- ConfigMap controller that watches for openshift-windows-machine-config-operators/windows-instances and configures instances referenced there
- e2e test that exercises the addition of a Windows instance added to the windows-instances
- This can be achieved by creating a Windows Machine that does not have the machine.openshift.io/os-id: Windows label. Once this Machine has been created the Machine API and cluster provider controllers should be disabled to prevent them from reacting. Then the created Machine's IP can then be added to the windows-instances ConfigMap which will cause WMCO to react.
- Update the docs reflecting how to add a BYOH instance.