Commit 7a055a9f authored by Mike Roy's avatar Mike Roy
Browse files

added user config override

parent d8adc3e8
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ repo:
        bin: bin/meep-mon-engine
        # location of deployment chart
        chart: charts/meep-mon-engine
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-mon-engine.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
@@ -94,6 +96,8 @@ repo:
        bin: bin/meep-platform-ctrl
        # location of deployment chart
        chart: charts/meep-platform-ctrl
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-platform-ctrl.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
@@ -119,6 +123,8 @@ repo:
        bin: bin/meep-virt-engine
        # location of deployment chart
        chart: charts/meep-virt-engine
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-virt-engine.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
@@ -158,6 +164,8 @@ repo:
        bin: bin/meep-webhook
        # location of deployment chart
        chart: charts/meep-webhook
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-webhook.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
@@ -252,6 +260,8 @@ repo:
        bin: bin/meep-gis-engine
        # location of deployment chart
        chart: charts/meep-gis-engine
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-gis-engine.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
@@ -271,6 +281,8 @@ repo:
        bin: bin/meep-loc-serv
        # location of deployment chart
        chart: charts/meep-loc-serv
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-loc-serv.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
@@ -293,6 +305,8 @@ repo:
        bin: bin/meep-metrics-engine
        # location of deployment chart
        chart: charts/meep-metrics-engine
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-metrics-engine.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
@@ -315,6 +329,8 @@ repo:
        bin: bin/meep-mg-manager
        # location of deployment chart
        chart: charts/meep-mg-manager
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-mg-manager.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
@@ -334,6 +350,8 @@ repo:
        bin: bin/meep-rnis
        # location of deployment chart
        chart: charts/meep-rnis
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-rnis.yaml
        # extra build flags
        build-flags:
          - -mod=vendor
@@ -356,6 +374,8 @@ repo:
        bin: bin/meep-sandbox-ctrl
        # location of deployment chart
        chart: charts/meep-sandbox-ctrl
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-sandbox-ctrl.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
@@ -378,6 +398,8 @@ repo:
        bin: bin/meep-tc-engine
        # location of deployment chart
        chart: charts/meep-tc-engine
        # user supplied value file located @ .meep/user/values
        chart-user-values: meep-tc-engine.yaml
        # enable meepctl build
        build: true
        # enable meepctl dockerize
@@ -417,6 +439,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/couchdb
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-couchdb.yaml
    meep-docker-registry:
      # enable meepctl build -> deps are never built
      build: false
@@ -426,6 +450,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/docker-registry
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-docker-registry.yaml
    meep-grafana:
      # enable meepctl build -> deps are never built
      build: false
@@ -435,6 +461,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/grafana
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-grafana.yaml
    meep-influxdb:
      # enable meepctl build -> deps are never built
      build: false
@@ -444,6 +472,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/influxdb
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-influxdb.yaml
    meep-kube-state-metrics:
      # enable meepctl build -> deps are never built
      build: false
@@ -453,6 +483,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/kube-state-metrics
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-kube-state-metrics.yaml
    meep-ingress:
      # enable meepctl build -> deps are never built
      build: false
@@ -462,6 +494,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/nginx-ingress
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-ingress.yaml
    meep-alt-ingress:
      # enable meepctl build -> deps are never built
      build: false
@@ -471,7 +505,10 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/nginx-ingress
      # uses different default values
      values: charts/nginx-ingress/alt-values.yaml
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-alt-ingress.yaml
    meep-redis:
      # enable meepctl build -> deps are never built
      build: false
@@ -481,6 +518,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/redis
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-redis.yaml
    meep-open-map-tiles:
      # enable meepctl build -> deps are never built
      build: false
@@ -490,6 +529,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/open-map-tiles
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-open-map-tiles.yaml
    meep-postgis:
      # enable meepctl build -> deps are never built
      build: false
@@ -499,6 +540,8 @@ repo:
      deploy: true
      # location of deployment chart
      chart: charts/postgis
      # user supplied value file located @ .meep/user/values
      chart-user-values: meep-postgis.yaml

  #------------------------------
  #  Packages
+39 −9
Original line number Diff line number Diff line
@@ -169,8 +169,15 @@ func deployCore(cobraCmd *cobra.Command) {
	// Code coverage storage
	deployCodeCovStorage(cobraCmd)

	userValueDir := deployData.workdir+"/user/values"
	for _, app := range deployData.coreApps {
		chart := deployData.gitdir + "/" + utils.RepoCfg.GetString("repo.core.go-apps."+app+".chart")
		userValues := false
		userValueFile := userValueDir + "/" + app + ".yaml"
		if _, err := os.Stat(userValueFile); err == nil {
			// path/to/file exists
			userValues = true
		}
		codecov := utils.RepoCfg.GetBool("repo.core.go-apps." + app + ".codecov")
		userFe := utils.RepoCfg.GetBool("repo.deployment.user.frontend")
		userSwagger := utils.RepoCfg.GetBool("repo.deployment.user.swagger")
@@ -193,6 +200,15 @@ func deployCore(cobraCmd *cobra.Command) {
			coreFlags = utils.HelmFlags(coreFlags, "--set", "user.swagger.enabled=true")
			coreFlags = utils.HelmFlags(coreFlags, "--set", "user.swagger.location="+deployData.workdir+"/user/swagger")
		}
		if userValues {
			// user provided overriding values
			// Note: according to https://helm.sh/docs/chart_template_guide/values_files/
			//       the order of precedence is: (lowest) default values.yaml
			//                                            then user value file
			//                                            then individual --set params (highest)
			//       Therefore, the --set flags inserted by meepctl may interfere with user overrides
			coreFlags = utils.HelmFlags(coreFlags, "-f", userValueFile)
		}
		if altServer {
			// deployment level flag - not all apps use it
			coreFlags = utils.HelmFlags(coreFlags, "--set", "altService.enabled=true")
@@ -220,28 +236,42 @@ func deployDep(cobraCmd *cobra.Command) {

func deployRunScriptsAndGetFlags(targetName string, chart string, cobraCmd *cobra.Command) [][]string {
	var flags [][]string
	flags := make([][]string, 0)

	nodeIp := viper.GetString("node.ip")
	userValueDir := deployData.workdir+"/user/values"

	userValueFile := userValueDir + "/" + targetName + ".yaml"
	if _, err := os.Stat(userValueFile); err == nil {
		// path/to/file exists
		// Note: according to https://helm.sh/docs/chart_template_guide/values_files/
		//       the order of precedence is: (lowest) default values.yaml
		//                                            then user value file
		//                                            then individual --set params (highest)
		//       Therefore, the --set flags inserted by meepctl may interfere with user overrides
		flags = utils.HelmFlags(flags, "-f", userValueFile)
	}

	switch targetName {
	case "meep-couchdb":
		flags = utils.HelmFlags(nil, "--set", "persistentVolume.location="+deployData.workdir+"/couchdb/")
		flags = utils.HelmFlags(flags, "--set", "persistentVolume.location="+deployData.workdir+"/couchdb/")
	case "meep-open-map-tiles":
		flags = utils.HelmFlags(nil, "--set", "persistentVolume.location="+deployData.workdir+"/omt/")
		flags = utils.HelmFlags(flags, "--set", "persistentVolume.location="+deployData.workdir+"/omt/")
		altServer := utils.RepoCfg.GetBool("repo.deployment.alt-server")
		flags = utils.HelmFlags(flags, "--set", "altIngress.enabled="+strconv.FormatBool(altServer))
	case "meep-postgis":
		flags = utils.HelmFlags(nil, "--set", "persistence.location="+deployData.workdir+"/postgis/")
		flags = utils.HelmFlags(flags, "--set", "persistence.location="+deployData.workdir+"/postgis/")
	case "meep-docker-registry":
		deployCreateRegistryCerts(chart, cobraCmd)
		flags = utils.HelmFlags(nil, "--set", "persistence.location="+deployData.workdir+"/docker-registry/")
		flags = utils.HelmFlags(flags, "--set", "persistence.location="+deployData.workdir+"/docker-registry/")
	case "meep-grafana":
		deploySetGrafanaValues(chart, cobraCmd)
		flags = utils.HelmFlags(nil, "--set", "persistentVolume.location="+deployData.workdir+"/grafana/")
		flags = utils.HelmFlags(flags, "--set", "persistentVolume.location="+deployData.workdir+"/grafana/")
		flags = utils.HelmFlags(flags, "--values", deployData.workdir+"/tmp/grafana-values.yaml")
		altServer := utils.RepoCfg.GetBool("repo.deployment.alt-server")
		flags = utils.HelmFlags(flags, "--set", "altIngress.enabled="+strconv.FormatBool(altServer))
	case "meep-influxdb":
		flags = utils.HelmFlags(nil, "--set", "persistence.location="+deployData.workdir+"/influxdb/")
		flags = utils.HelmFlags(flags, "--set", "persistence.location="+deployData.workdir+"/influxdb/")
	case "meep-ingress":
		deployCreateIngressCerts(chart, cobraCmd)
		httpPort, httpsPort := deployGetPorts()
@@ -260,19 +290,19 @@ func deployRunScriptsAndGetFlags(targetName string, chart string, cobraCmd *cobr
		flags = utils.HelmFlags(flags, "--values", values)
	case "meep-mon-engine":
		monEngineTarget := "repo.core.go-apps.meep-mon-engine"
		flags = utils.HelmFlags(nil, "--set", "image.env.MEEP_DEPENDENCY_PODS="+getPodList(monEngineTarget+".dependency-pods"))
		flags = utils.HelmFlags(flags, "--set", "image.env.MEEP_DEPENDENCY_PODS="+getPodList(monEngineTarget+".dependency-pods"))
		flags = utils.HelmFlags(flags, "--set", "image.env.MEEP_CORE_PODS="+getPodList(monEngineTarget+".core-pods"))
		flags = utils.HelmFlags(flags, "--set", "image.env.MEEP_SANDBOX_PODS="+getPodList(monEngineTarget+".sandbox-pods"))
	case "meep-virt-engine":
		virtEngineTarget := "repo.core.go-apps.meep-virt-engine"
		flags = utils.HelmFlags(nil, "--set", "persistence.location="+deployData.workdir+"/virt-engine")
		flags = utils.HelmFlags(flags, "--set", "persistence.location="+deployData.workdir+"/virt-engine")
		flags = utils.HelmFlags(flags, "--set", "image.env.MEEP_SANDBOX_PODS="+getPodList(virtEngineTarget+".sandbox-pods"))
		flags = utils.HelmFlags(flags, "--set", "image.env.MEEP_HOST_URL=http://"+nodeIp)
		altServer := utils.RepoCfg.GetBool("repo.deployment.alt-server")
		flags = utils.HelmFlags(flags, "--set", "image.env.MEEP_ALT_SERVER=\""+strconv.FormatBool(altServer)+"\"")
	case "meep-webhook":
		cert, key, cabundle := deployCreateWebhookCerts(chart, cobraCmd)
		flags = utils.HelmFlags(nil, "--set", "sidecar.image.repository="+deployData.registry+"/meep-tc-sidecar")
		flags = utils.HelmFlags(flags, "--set", "sidecar.image.repository="+deployData.registry+"/meep-tc-sidecar")
		flags = utils.HelmFlags(flags, "--set", "sidecar.image.tag="+deployData.tag)
		flags = utils.HelmFlags(flags, "--set", "webhook.cert="+cert)
		flags = utils.HelmFlags(flags, "--set", "webhook.key="+key)