From dfef9d6fca50aef30fb5434719fe8f698551c655 Mon Sep 17 00:00:00 2001 From: Terence Yim Date: Fri, 5 Mar 2021 00:33:34 -0800 Subject: [PATCH] (CDAP-17721) Added support for extra Hadoop configuration --- controllers/cdapmaster_controller.go | 18 +++++++++++++----- templates/cdap-site.xml | 6 ++++-- templates/core-site.xml | 8 ++++++++ 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/controllers/cdapmaster_controller.go b/controllers/cdapmaster_controller.go index 75004b13..c47ac057 100644 --- a/controllers/cdapmaster_controller.go +++ b/controllers/cdapmaster_controller.go @@ -16,14 +16,15 @@ limitations under the License. package controllers import ( - "cdap.io/cdap-operator/controllers/cdapmaster" "fmt" - batchv1 "k8s.io/api/batch/v1" - "sigs.k8s.io/controller-reconciler/pkg/finalizer" "strconv" "strings" "text/template" + "cdap.io/cdap-operator/controllers/cdapmaster" + batchv1 "k8s.io/api/batch/v1" + "sigs.k8s.io/controller-reconciler/pkg/finalizer" + "github.com/go-logr/logr" "k8s.io/apimachinery/pkg/runtime" gr "sigs.k8s.io/controller-reconciler/pkg/genericreconciler" @@ -165,12 +166,19 @@ func (h *ConfigMapHandler) Objects(rsrc interface{}, rsrclabels map[string]strin } fillTemplate := func(templateFile string) (string, error) { - template, err := template.New(templateFile).ParseFiles(templateDir + templateFile) + tmpl, err := template.New(templateFile).Funcs(template.FuncMap{ + "hasPrefix": func(str, prefix string) bool { + return strings.HasPrefix(str, prefix) + }, + "trimPrefix": func(str, prefix string) string { + return strings.TrimPrefix(str, prefix) + }, + }).ParseFiles(templateDir + templateFile) if err != nil { return "", err } var output strings.Builder - if err := template.Execute(&output, templateData); err != nil { + if err := tmpl.Execute(&output, templateData); err != nil { return "", err } return output.String(), nil diff --git a/templates/cdap-site.xml b/templates/cdap-site.xml index e227da66..cfa82bf5 100644 --- a/templates/cdap-site.xml +++ b/templates/cdap-site.xml @@ -15,10 +15,12 @@ the License. --> -{{range $k,$v := .Master.Spec.Config}} +{{range $k,$v := .Master.Spec.Config -}} + {{if not (hasPrefix $k "hadoop:")}} {{html $k}} {{html $v}} -{{end}} + {{end}} +{{- end}} diff --git a/templates/core-site.xml b/templates/core-site.xml index 2d40e7c7..d576f180 100644 --- a/templates/core-site.xml +++ b/templates/core-site.xml @@ -19,4 +19,12 @@ fs.defaultFS {{html .Master.Spec.LocationURI}} +{{range $k,$v := .Master.Spec.Config -}} + {{if hasPrefix $k "hadoop:"}} + + {{html (trimPrefix $k "hadoop:")}} + {{html $v}} + + {{end}} +{{- end}}