From e930d0bec5f24389f00f380199cefce8bb0d80cb Mon Sep 17 00:00:00 2001 From: Peter Braun Date: Tue, 23 Apr 2019 14:03:40 +0200 Subject: [PATCH 1/2] add flags for grafana image and tag --- cmd/manager/main.go | 8 ++++ pkg/controller/grafana/controller_config.go | 42 +++++++++++++++++++++ pkg/controller/grafana/templateHelper.go | 6 ++- 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 pkg/controller/grafana/controller_config.go diff --git a/cmd/manager/main.go b/cmd/manager/main.go index aba5174fb..4ddfffa68 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -4,6 +4,7 @@ import ( "context" "flag" "fmt" + "github.com/integr8ly/grafana-operator/pkg/controller/grafana" "os" "runtime" @@ -29,6 +30,8 @@ func printVersion() { } func main() { + flagImage := flag.String("grafana-image", "", "Overrides the default Grafana image") + flagImageTag := flag.String("grafana-image-tag", "", "Overrides the default Grafana image tag") flag.Parse() // The logger instantiated here can be changed to any logger @@ -39,6 +42,11 @@ func main() { printVersion() + // Controller configuration + controllerConfig := grafana.GetControllerConfig() + controllerConfig.AddConfigItem(grafana.ConfigGrafanaImage, *flagImage) + controllerConfig.AddConfigItem(grafana.ConfigGrafanaImageTag, *flagImageTag) + namespace, err := k8sutil.GetWatchNamespace() if err != nil { log.Error(err, "failed to get watch namespace") diff --git a/pkg/controller/grafana/controller_config.go b/pkg/controller/grafana/controller_config.go new file mode 100644 index 000000000..1233c9563 --- /dev/null +++ b/pkg/controller/grafana/controller_config.go @@ -0,0 +1,42 @@ +package grafana + +import "sync" + +const ( + ConfigGrafanaImage = "grafana.image.url" + ConfigGrafanaImageTag = "grafana.image.tag" +) + +type ControllerConfig struct { + Values map[string]string +} + +var instance *ControllerConfig +var once sync.Once + +func GetControllerConfig() *ControllerConfig { + once.Do(func() { + instance = &ControllerConfig{ + Values: map[string]string{}, + } + }) + return instance +} + +func (c *ControllerConfig) AddConfigItem(key, value string) { + if key != "" && value != "" { + c.Values[key] = value + } +} + +func (c *ControllerConfig) GetConfigItem(key, defaultValue string) string { + if c.HasConfigItem(key) { + return c.Values[key] + } + return defaultValue +} + +func (c *ControllerConfig) HasConfigItem(key string) bool { + _, ok := c.Values[key] + return ok +} diff --git a/pkg/controller/grafana/templateHelper.go b/pkg/controller/grafana/templateHelper.go index dda2fa096..92de02c69 100644 --- a/pkg/controller/grafana/templateHelper.go +++ b/pkg/controller/grafana/templateHelper.go @@ -51,9 +51,11 @@ type GrafanaTemplateHelper struct { // templates properties. Some of them (like the hostname) are set // by the user in the custom resource func newTemplateHelper(cr *integreatly.Grafana) *GrafanaTemplateHelper { + controllerConfig := GetControllerConfig() + param := GrafanaParamaeters{ - GrafanaImage: GrafanaImage, - GrafanaVersion: GrafanaVersion, + GrafanaImage: controllerConfig.GetConfigItem(ConfigGrafanaImage, GrafanaImage), + GrafanaVersion: controllerConfig.GetConfigItem(ConfigGrafanaImageTag, GrafanaVersion), Namespace: cr.Namespace, GrafanaConfigMapName: GrafanaConfigMapName, GrafanaProvidersConfigMapName: GrafanaProvidersConfigMapName, From ef2107160a8e0f237b9344c1e3098851612dacc3 Mon Sep 17 00:00:00 2001 From: Peter Braun Date: Wed, 24 Apr 2019 12:43:03 +0200 Subject: [PATCH 2/2] update image repo name --- Makefile | 4 ++-- cmd/manager/main.go | 17 +++++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 83251dc31..5d1cd80ed 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -ORG=integr8ly -NAMESPACE=application-monitoring +ORG=integreatly +NAMESPACE=middleware-monitoring PROJECT=grafana-operator REG=quay.io SHELL=/bin/bash diff --git a/cmd/manager/main.go b/cmd/manager/main.go index 4ddfffa68..503348f5d 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -22,6 +22,8 @@ import ( ) var log = logf.Log.WithName("cmd") +var flagImage string +var flagImageTag string func printVersion() { log.Info(fmt.Sprintf("Go Version: %s", runtime.Version())) @@ -29,11 +31,14 @@ func printVersion() { log.Info(fmt.Sprintf("operator-sdk Version: %v", sdkVersion.Version)) } -func main() { - flagImage := flag.String("grafana-image", "", "Overrides the default Grafana image") - flagImageTag := flag.String("grafana-image-tag", "", "Overrides the default Grafana image tag") - flag.Parse() +func init() { + flagset := flag.CommandLine + flagset.StringVar(&flagImage, "grafana-image", "", "Overrides the default Grafana image") + flagset.StringVar(&flagImageTag, "grafana-image-tag", "", "Overrides the default Grafana image tag") + flagset.Parse(os.Args[1:]) +} +func main() { // The logger instantiated here can be changed to any logger // implementing the logr.Logger interface. This logger will // be propagated through the whole operator, generating @@ -44,8 +49,8 @@ func main() { // Controller configuration controllerConfig := grafana.GetControllerConfig() - controllerConfig.AddConfigItem(grafana.ConfigGrafanaImage, *flagImage) - controllerConfig.AddConfigItem(grafana.ConfigGrafanaImageTag, *flagImageTag) + controllerConfig.AddConfigItem(grafana.ConfigGrafanaImage, flagImage) + controllerConfig.AddConfigItem(grafana.ConfigGrafanaImageTag, flagImageTag) namespace, err := k8sutil.GetWatchNamespace() if err != nil {