The purpose of this operator is to segregate OpenShift infrastructure workloads from normal tenant workloads.
The intention is to automate the structures around KCS Infrastructure Nodes in OpenShift 4
Scratch notes
createInfraPool validateInfraPool deleteInfraPool Managed by MachineSets? -> Yes, createInfraMachineSets with infra label Pick default AZ MachineSet definitions to copy: which AZs? (default all AZs with replica of one or more, up to three nodes) How many of each AZ ? Compute Profile ? Apply by T&T ? -> add Taints to MachineSets Scale up N replicas of N MachineSets in each AZ remove worker label on each node validate end state - reconcile on this. -> No, user pick nodes, assignNodeLabel infra, removeNodeLabel worker, Apply by T&T? -> setNodeTaint Managed by defaultnodeselector? -> setDefaultNodeSelectorOnScheduler for each infra workload: -> setWorkloadNodeSelector Apply by T&T ? -> setWorkloadToleration Managed: true/false Method: taints,defaultnodeselector MachineSetDefs: AvailabilityZones: by cloud provider; list Replicas: Nodes: list of nodes (either Nodes or MachineSetDefs to be defined) Isolate: true/false, determine whether to remove worker label workloads: - IngressController - Monitoring - Logging - Registry - ServiceMesh components - Operators also create a controller to modify inflight pod specs of any known infra workloads to apply at this particular point (prevents need for changing by using CRDs for each operator CRD)