diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index deff90ef..30857810 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -319,6 +319,8 @@ rules: - clusterrolebindings/finalizers - clusterroles - clusterroles/finalizers + - roles + - rolebindings verbs: - get - list diff --git a/controllers/factory/psp/psp.go b/controllers/factory/psp/psp.go index 958159d4..5448c5a9 100644 --- a/controllers/factory/psp/psp.go +++ b/controllers/factory/psp/psp.go @@ -5,7 +5,6 @@ import ( "fmt" v1beta12 "github.com/VictoriaMetrics/operator/api/v1beta1" - "github.com/VictoriaMetrics/operator/controllers/factory/k8stools" v1 "k8s.io/api/core/v1" "k8s.io/api/policy/v1beta1" @@ -58,11 +57,12 @@ func CreateServiceAccountForCRD(ctx context.Context, cr CRDObject, rclient clien } return fmt.Errorf("cannot get ServiceAccount for given CRD Object=%q, err=%w", cr.PrefixedName(), err) } - newSA.Finalizers = v1beta12.MergeFinalizers(&existSA, v1beta12.FinalizerName) - newSA.Annotations = labels.Merge(newSA.Annotations, existSA.Annotations) - newSA.Labels = labels.Merge(existSA.Labels, newSA.Labels) - newSA.Secrets = existSA.Secrets - return rclient.Update(ctx, newSA) + + existSA.OwnerReferences = newSA.OwnerReferences + existSA.Finalizers = v1beta12.MergeFinalizers(&existSA, v1beta12.FinalizerName) + existSA.Annotations = labels.Merge(newSA.Annotations, existSA.Annotations) + existSA.Labels = labels.Merge(existSA.Labels, newSA.Labels) + return rclient.Update(ctx, &existSA) } func ensurePSPExists(ctx context.Context, cr CRDObject, rclient client.Client) error { diff --git a/internal/manager/manager.go b/internal/manager/manager.go index 7ed17f2c..a8763f9d 100644 --- a/internal/manager/manager.go +++ b/internal/manager/manager.go @@ -3,8 +3,10 @@ package manager import ( "context" "flag" + "net/http" "github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo" + "github.com/VictoriaMetrics/VictoriaMetrics/lib/httpserver" victoriametricsv1beta1 "github.com/VictoriaMetrics/operator/api/v1beta1" "github.com/VictoriaMetrics/operator/controllers" "github.com/VictoriaMetrics/operator/controllers/factory/crd" @@ -34,6 +36,7 @@ var ( webhookCertName = flag.String("webhook.certName", "tls.crt", "name of webhook server Tls certificate inside tls.certDir") webhookKeyName = flag.String("webhook.keyName", "tls.key", "name of webhook server Tls key inside tls.certDir") metricsAddr = flag.String("metrics-addr", ":8080", "The address the metric endpoint binds to.") + listenAddr = flag.String("http.listenAddr", ":8435", "http server listen addr - serves victoria-metrics http server + metrics.") ) func init() { @@ -59,6 +62,7 @@ func RunManager(ctx context.Context) error { pflag.CommandLine.AddGoFlagSet(flag.CommandLine) pflag.Parse() + buildinfo.Init() // Use a zap logr.Logger implementation. If none of the zap @@ -85,7 +89,6 @@ func RunManager(ctx context.Context) error { setupLog.Error(err, "unable to start manager") return err } - initC, err := client.New(mgr.GetConfig(), client.Options{Scheme: scheme}) if err != nil { return err @@ -100,6 +103,7 @@ func RunManager(ctx context.Context) error { return err } } + if err = (&controllers.VMAgentReconciler{ Client: mgr.GetClient(), Log: ctrl.Log.WithName("controllers").WithName("VMAgent"), @@ -234,6 +238,7 @@ func RunManager(ctx context.Context) error { setupLog.Error(err, "cannot add runnable") return err } + go httpserver.Serve(*listenAddr, requestHandler) if err := controllers.StartWatchForVMUserSecretRefs(ctx, mgr.GetClient(), mgr.GetConfig()); err != nil { return err } @@ -242,6 +247,7 @@ func RunManager(ctx context.Context) error { setupLog.Error(err, "problem running manager") return err } + httpserver.Stop(*listenAddr) //nolint:errcheck setupLog.Info("gracefully stopped") return nil @@ -273,3 +279,7 @@ func addWebhooks(mgr ctrl.Manager) error { }) } + +func requestHandler(w http.ResponseWriter, r *http.Request) bool { + return false +}