Commit df10794c authored by Kevin Di Lallo's avatar Kevin Di Lallo
Browse files

added ingress to repocfg deployment config + fixed nginx-ingress ports +...

added ingress to repocfg deployment config + fixed nginx-ingress ports + removed configurable ports from meepctl config
parent 07225a0f
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -28,6 +28,23 @@ repo:
      # user supplied sandbox swagger UI located @ .meep/user/sandbox-swagger
      swagger: false

    # platform access configuration
    ingress:
      # bind to host ports (true) or node ports (false)
      host-ports: true
      # http config
      http:
        # http port number
        port: 80
      # https config
      https:
        # enable https
        enabled: true
        # https port number
        port: 443
        # certificate authority (self-signed|lets-encrypt) default: self-signed
        ca: self-signed

  #------------------------------
  #  Core Subsystem
  #------------------------------
+2 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ metadata:
    app.kubernetes.io/managed-by: {{ .Release.Service }}
    app.kubernetes.io/component: "controller"
    helm.sh/chart: {{ template "cert-manager.chart" . }}
    release: {{ .Release.Name }}
  {{- if .Values.deploymentAnnotations }}
  annotations:
{{ toYaml .Values.deploymentAnnotations | indent 4 }}
@@ -34,6 +35,7 @@ spec:
        app.kubernetes.io/component: "controller"
        app.kubernetes.io/managed-by: {{ .Release.Service }}
        helm.sh/chart: {{ template "cert-manager.chart" . }}
        release: {{ .Release.Name }}
{{- if .Values.podLabels }}
{{ toYaml .Values.podLabels | indent 8 }}
{{- end }}
+2 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@ spec:
          {{- end }}
          args:
            - /nginx-ingress-controller
            - --http-port={{ .Values.controller.containerPort.http }}
            - --https-port={{ .Values.controller.containerPort.https }}
          {{- if .Values.defaultBackend.enabled }}
            - --default-backend-service={{ .Release.Namespace }}/{{ template "nginx-ingress.defaultBackend.fullname" . }}
          {{- else }}
+0 −81
Original line number Diff line number Diff line
/*
 * Copyright (c) 2019  InterDigital Communications, Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package cmd

import (
	"fmt"
	"time"

	"github.com/InterDigitalInc/AdvantEDGE/go-apps/meepctl/utils"

	"github.com/roymx/viper"
	"github.com/spf13/cobra"
)

// configSet represents the set command
var configPorts = &cobra.Command{
	Use:     "ports [http port #/https port #]",
	Short:   "get/set HTTP/HTTPS ports in the meepctl config file",
	Long:    "Get/Set HTTP/HTTPS ports in the meepctl config file",
	Example: "  meepctl config ports 32080/32443",
	Args:    cobra.RangeArgs(0, 1),
	Run: func(cmd *cobra.Command, args []string) {
		key := "meep.ports"
		v, _ := cmd.Flags().GetBool("verbose")
		t, _ := cmd.Flags().GetBool("time")
		if v {
			fmt.Println("config ports called")
			fmt.Println("[flag] verbose:", v)
			fmt.Println("[flag] time:", t)
		}

		start := time.Now()
		value := viper.GetString(key)
		if len(args) == 0 {
			_ = cmd.Help()
			fmt.Println("")
		} else {
			ports := args[0]
			valid, reason := utils.ConfigPortsValid(ports)
			if valid {
				utils.Cfg.Meep.Ports = ports
				err := utils.ConfigWriteFile(utils.Cfg, viper.ConfigFileUsed())
				if err != nil {
					fmt.Println(err)
				}
				fmt.Println("Updated meep.ports with [" + ports + "]")
				value = ports
			} else {
				fmt.Println("Invalid Ports: " + reason)
				fmt.Println("")
				_ = cmd.Help()
			}
		}
		fmt.Println("========================================")
		fmt.Println(key, ":", value)
		fmt.Println("========================================")

		elapsed := time.Since(start)
		if t {
			fmt.Println("Took ", elapsed.Round(time.Millisecond).String())
		}
	},
}

func init() {
	configCmd.AddCommand(configPorts)
}
+26 −12
Original line number Diff line number Diff line
@@ -241,18 +241,38 @@ func deployRunScriptsAndGetFlags(targetName string, chart string, cobraCmd *cobr
	case "meep-influxdb":
		flags = utils.HelmFlags(flags, "--set", "persistence.location="+deployData.workdir+"/influxdb/")
	case "meep-ingress":
		deployCreateIngressCerts(chart, cobraCmd)
		httpPort, httpsPort := deployGetPorts()
		// NOTE: here port!=80 means that NodePort is used
		// TODO: make the condition clearer & don't rely on port 80 value
		if httpPort != "80" {
		// Port configuration
		hostPorts := utils.RepoCfg.GetBool("repo.deployment.ingress.host-ports")
		httpPort := utils.RepoCfg.GetString("repo.deployment.ingress.http.port")
		httpsPort := utils.RepoCfg.GetString("repo.deployment.ingress.https.port")
		if hostPorts {
			flags = utils.HelmFlags(flags, "--set", "controller.service.ports.http="+httpPort)
			flags = utils.HelmFlags(flags, "--set", "controller.daemonset.hostPorts.http="+httpPort)
			flags = utils.HelmFlags(flags, "--set", "controller.containerPort.http="+httpPort)
			flags = utils.HelmFlags(flags, "--set", "controller.service.ports.https="+httpsPort)
			flags = utils.HelmFlags(flags, "--set", "controller.daemonset.hostPorts.https="+httpsPort)
			flags = utils.HelmFlags(flags, "--set", "controller.containerPort.https="+httpsPort)
		} else {
			flags = utils.HelmFlags(flags, "--set", "controller.daemonset.useHostPort=false")
			flags = utils.HelmFlags(flags, "--set", "controller.hostNetwork=false")
			flags = utils.HelmFlags(flags, "--set", "controller.dnsPolicy=ClusterFirst")
			flags = utils.HelmFlags(flags, "--set", "controller.daemonset.useHostPort=false")
			flags = utils.HelmFlags(flags, "--set", "controller.service.type=NodePort")
			flags = utils.HelmFlags(flags, "--set", "controller.service.nodePorts.http="+httpPort)
			flags = utils.HelmFlags(flags, "--set", "controller.service.nodePorts.https="+httpsPort)
		}
		// HTTPS configuration
		httpsEnabled := utils.RepoCfg.GetBool("repo.deployment.ingress.https.enabled")
		flags = utils.HelmFlags(flags, "--set", "controller.service.enableHttps="+strconv.FormatBool(httpsEnabled))
		if httpsEnabled {
			ca := utils.RepoCfg.GetString("repo.deployment.ingress.https.ca")
			switch ca {
			case "lets-encrypt":
				flags = utils.HelmFlags(flags, "--set", "controller.extraArgs.default-ssl-certificate=default/meep-ingress-le")
			default: // self-signed
				deployCreateIngressCerts(chart, cobraCmd)
				flags = utils.HelmFlags(flags, "--set", "controller.extraArgs.default-ssl-certificate=default/meep-ingress")
			}
		}
	case "meep-mon-engine":
		monEngineTarget := "repo.core.go-apps.meep-mon-engine"
		flags = utils.HelmFlags(flags, "--set", "image.env.MEEP_DEPENDENCY_PODS="+getPodList(monEngineTarget+".dependency-pods"))
@@ -345,12 +365,6 @@ func deploySetOmtConfig(chart string, cobraCmd *cobra.Command) {
	_, _ = utils.ExecuteCmd(cmd, cobraCmd)
}

func deployGetPorts() (string, string) {
	ports := viper.GetString("meep.ports")
	p := strings.Split(ports, "/")
	return p[0], p[1]
}

func getPodList(target string) string {
	podListStr := ""
	podList := utils.RepoCfg.GetStringSlice(target)
Loading