Skip to content

Commit

Permalink
ensure crs and set secret owner
Browse files Browse the repository at this point in the history
  • Loading branch information
Dan Molik committed Dec 29, 2023
1 parent a6d6e11 commit f2c4af1
Showing 1 changed file with 23 additions and 7 deletions.
30 changes: 23 additions & 7 deletions controllers/cluster_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,16 +91,16 @@ func (r *ClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
if err != nil {
return ctrl.Result{}, err
}
if _, err = r.ensureSecret(ctx, kcfg); err != nil {
if _, err = r.ensureSecret(ctx, kcfg, cluster); err != nil {
return ctrl.Result{}, err
}
if err = r.addToProject(ctx, kcfg); err != nil {
return ctrl.Result{}, err
}
if cluster.Status.Phase != "Deleting" {
if _, err := r.createCNI(ctx, req, cluster); err != nil {
return ctrl.Result{}, err
}
}
if cluster.Status.Phase != "Deleting" && cluster.Status.ControlPlaneReady {
if _, err := r.ensureCNI(ctx, req, cluster); err != nil {
return ctrl.Result{}, err
}
}

Expand All @@ -111,7 +111,7 @@ func (r *ClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
return ctrl.Result{RequeueAfter: oneMinute}, nil
}

func (r *ClusterReconciler) createCNI(ctx context.Context, req ctrl.Request, cluster capiv1.Cluster) (ctrl.Result, error) {
func (r *ClusterReconciler) ensureCNI(ctx context.Context, req ctrl.Request, cluster capiv1.Cluster) (ctrl.Result, error) {

resourceSet := &addonsv1.ClusterResourceSet{
TypeMeta: metav1.TypeMeta{
Expand Down Expand Up @@ -146,6 +146,10 @@ func (r *ClusterReconciler) createCNI(ctx context.Context, req ctrl.Request, clu
},
}
if err := r.Create(ctx, resourceSet); err != nil {
if errors.IsAlreadyExists(err) {
err = r.Update(ctx, resourceSet)
return ctrl.Result{}, err
}
return ctrl.Result{}, err
}

Expand Down Expand Up @@ -179,6 +183,10 @@ func (r *ClusterReconciler) createCNI(ctx context.Context, req ctrl.Request, clu
},
}
if err := r.Create(ctx, cm); err != nil {
if errors.IsAlreadyExists(err) {
err = r.Update(ctx, cm)
return ctrl.Result{}, err
}
return ctrl.Result{}, err
}

Expand Down Expand Up @@ -228,7 +236,7 @@ func (r *ClusterReconciler) deleteSecret(ctx context.Context, kubeconfig *client
return ctrl.Result{}, nil
}

func (r *ClusterReconciler) ensureSecret(ctx context.Context, kubeconfig *clientcmdapi.Config) (ctrl.Result, error) {
func (r *ClusterReconciler) ensureSecret(ctx context.Context, kubeconfig *clientcmdapi.Config, cluster capiv1.Cluster) (ctrl.Result, error) {
clusterName := kubeconfig.Contexts[kubeconfig.CurrentContext].Cluster
authName := kubeconfig.Contexts[kubeconfig.CurrentContext].AuthInfo
server := kubeconfig.Clusters[clusterName].Server
Expand Down Expand Up @@ -263,6 +271,14 @@ func (r *ClusterReconciler) ensureSecret(ctx context.Context, kubeconfig *client
"argocd.argoproj.io/secret-type": "cluster",
"cluster.x-k8s.io/cluster-name": clusterName,
},
OwnerReferences: []metav1.OwnerReference{
{
APIVersion: cluster.APIVersion,
Kind: cluster.Kind,
Name: cluster.Name,
UID: cluster.UID,
},
},
},
StringData: map[string]string{
"name": clusterName,
Expand Down

0 comments on commit f2c4af1

Please sign in to comment.