mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-02-05 08:17:59 +00:00
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package controller
|
|
|
|
import (
|
|
"context"
|
|
|
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
|
"k8s.io/apimachinery/pkg/runtime"
|
|
ctrl "sigs.k8s.io/controller-runtime"
|
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
|
"sigs.k8s.io/controller-runtime/pkg/log"
|
|
|
|
cozyv1alpha1 "github.com/cozystack/cozystack/api/v1alpha1"
|
|
)
|
|
|
|
type CozystackReconciler struct {
|
|
client.Client
|
|
Scheme *runtime.Scheme
|
|
}
|
|
|
|
func (r *CozystackReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
|
|
l := log.FromContext(ctx)
|
|
c := &cozyv1alpha1.Cozystack{}
|
|
|
|
if err := r.Get(ctx, req.NamespacedName, c); err != nil {
|
|
if apierrors.IsNotFound(err) {
|
|
return ctrl.Result{}, nil
|
|
}
|
|
l.Error(err, "Unable to fetch Cozystack")
|
|
return ctrl.Result{}, err
|
|
}
|
|
|
|
if !c.DeletionTimestamp.IsZero() {
|
|
return ctrl.Result{}, nil
|
|
}
|
|
|
|
if c.Name != "cozystack" || c.Namespace != "cozy-system" {
|
|
l.Info("only cozy-system/cozystack Cozystack is allowed in a cluster")
|
|
err := r.Delete(ctx, c)
|
|
if err != nil {
|
|
l.Error(err, "Unable to delete invalid Cozystack")
|
|
}
|
|
return ctrl.Result{}, err
|
|
}
|
|
|
|
panic("not implemented")
|
|
}
|
|
|
|
func (r *CozystackReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
|
return ctrl.NewControllerManagedBy(mgr).
|
|
For(&cozyv1alpha1.Cozystack{}).
|
|
Complete(r)
|
|
}
|