mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-05-04 15:25:00 -04:00
Deploy operator-lifecycle-manager (OLM), node-maintenance-operator (NMO) and constellation-node-operator
Signed-off-by: Malte Poll <mp@edgeless.systems>
This commit is contained in:
parent
18a89d2881
commit
2c7129987a
23 changed files with 8756 additions and 32 deletions
|
@ -207,6 +207,13 @@ func (k *KubeWrapper) InitCluster(
|
|||
return nil, fmt.Errorf("failed to setup verification service: %w", err)
|
||||
}
|
||||
|
||||
// TODO: enable operator deployment on kubernetes 1.24 once https://github.com/medik8s/node-maintenance-operator/issues/49 is fixed
|
||||
if k8sVersion != versions.V1_24 {
|
||||
if err := k.setupOperators(ctx); err != nil {
|
||||
return nil, fmt.Errorf("setting up operators: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
if k.cloudProvider == "gcp" {
|
||||
if err := k.clusterUtil.SetupGCPGuestAgent(k.client, resources.NewGCPGuestAgentDaemonset()); err != nil {
|
||||
return nil, fmt.Errorf("failed to setup gcp guest agent: %w", err)
|
||||
|
@ -387,6 +394,28 @@ func (k *KubeWrapper) setupK8sVersionConfigMap(ctx context.Context, k8sVersion v
|
|||
return nil
|
||||
}
|
||||
|
||||
// setupOperators deploys the operator lifecycle manager and subscriptions to operators.
|
||||
func (k *KubeWrapper) setupOperators(ctx context.Context) error {
|
||||
if err := k.clusterUtil.SetupOperatorLifecycleManager(ctx, k.client, &resources.OperatorLifecycleManagerCRDs{}, &resources.OperatorLifecycleManager{}, resources.OLMCRDNames); err != nil {
|
||||
return fmt.Errorf("setting up OLM: %w", err)
|
||||
}
|
||||
|
||||
if err := k.clusterUtil.SetupNodeMaintenanceOperator(k.client, resources.NewNodeMaintenanceOperatorDeployment()); err != nil {
|
||||
return fmt.Errorf("setting up node maintenance operator: %w", err)
|
||||
}
|
||||
|
||||
uid, err := k.providerMetadata.UID(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("retrieving constellation UID: %w", err)
|
||||
}
|
||||
|
||||
if err := k.clusterUtil.SetupNodeOperator(ctx, k.client, resources.NewNodeOperatorDeployment(k.cloudProvider, uid)); err != nil {
|
||||
return fmt.Errorf("setting up constellation node operator: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// manuallySetLoadbalancerIP sets the loadbalancer IP of the first control plane during init.
|
||||
// The GCP guest agent does this usually, but is deployed in the cluster that doesn't exist
|
||||
// at this point. This is a workaround to set the loadbalancer IP manually, so kubeadm and kubelet
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue