Skip to content

Commit aa4db94

Browse files
authored
MGMT-7780: Late Binding Kube API documentation (#2644)
Signed-off-by: Fred Rolland <[email protected]>
1 parent 77b3742 commit aa4db94

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

docs/hive-integration/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ The InfraEnv reflects the image creation status through Conditions.
6666
6767
More details on conditions is available [here](kube-api-conditions.md)
6868
69+
The InfraEnv can be created without a Cluster Deployment reference for late binding flow. More information is available [here](./late-binding.md).
70+
6971
7072
### [NMStateConfig](../../api/v1beta1/nmstate_config_types.go)
7173
The NMStateConfig contains network configuration that will applied on the hosts. See NMState repository [here](https://github.com/nmstate/nmstate).
@@ -169,6 +171,7 @@ Those examples are here for reference.
169171
You will likely need to adapt those for your own needs.
170172

171173
* [InfraEnv](crds/infraEnv.yaml)
174+
* [InfraEnv Late Binding](crds/infraEnvLateBinding.yaml)
172175
* [NMState Config](crds/nmstate.yaml)
173176
* [Hive PullSecret Secret](crds/pullsecret.yaml)
174177
* [Hive ClusterDeployment](crds/clusterDeployment.yaml)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: agent-install.openshift.io/v1beta1
2+
kind: InfraEnv
3+
metadata:
4+
name: myinfraenv
5+
namespace: spoke-cluster
6+
spec:
7+
pullSecretRef:
8+
name: pull-secret
9+
proxy:
10+
httpProxy: http://11.11.11.33
11+
httpsProxy: http://22.22.22.55
12+
#sshAuthorizedKey: 'your_pub_key_here' (optional)
13+
ignitionConfigOverride: '{"ignition": {"version": "3.1.0"}, "storage": {"files": [{"path": "/etc/someconfig", "contents": {"source": "data:text/plain;base64,aGVscGltdHJhcHBlZGluYXN3YWdnZXJzcGVj"}}]}}'
14+
nmStateConfigLabelSelector:
15+
matchLabels:
16+
some-user-defined-label-name: some-user-defined-label-value

docs/hive-integration/late-binding.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Late Binding
2+
3+
With late binding, a discovery ISO can be created without the need of a reference to a Cluster Deployment.
4+
Hosts booted with such an ISO can be bound to different clusters at a later stage.
5+
6+
See full enhancement document [here](../enhancements/agent-late-binding.md).
7+
8+
## High Level Flow
9+
- The user creates an InfraEnv CR without a Cluster Reference. See example [here](crds/infraEnvLateBinding.yaml)
10+
- The version of the base RHCOS live ISO is selected automatically to the latest available.
11+
- The Agent CR created from an host booted from this ISO will not have a Cluster Deployment reference set in it. (`spec.clusterDeploymentName`)
12+
- The user creates a Cluster Deployment and Agent Cluster Install CR.
13+
- The user updates the Agent's Cluster Deployment reference to the CD name.
14+
- The process of the agent binding can be followed on the `Bound` condition available on the Agent CR. See [here](kube-api-conditions.md#agent-conditions))
15+
- Once the agent is bound, the flow for installation is as before.
16+
17+
An agent can be unbound from a Cluster Deployment as long as the installation did not start.
18+
19+
Note that the Pull Secret of the InfraEnv can be different from the one specified in the Cluster Deployment.
20+
21+
## Unsupported flows
22+
23+
The following operations are not supported:
24+
25+
- Update/Add/Delete a Cluster Deployment reference of an InfraEnv.
26+
- Update a Cluster Deployment reference of an Agent after installation started.

0 commit comments

Comments
 (0)