From c5df50c774bef169ade99874bdf422fa3ef58ddd Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Sat, 12 Oct 2019 17:41:21 +0300 Subject: [PATCH 1/5] Make UI logo URL configurable --- Makefile | 4 +++- cmd/podinfo/main.go | 4 +++- pkg/api/index.go | 2 ++ pkg/api/info.go | 2 ++ pkg/api/server.go | 1 + ui/vue.html | 5 +++-- 6 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 77f0482..21d1e22 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,9 @@ GIT_COMMIT:=$(shell git describe --dirty --always) VERSION:=$(shell grep 'VERSION' pkg/version/version.go | awk '{ print $$4 }' | tr -d '"') run: - GO111MODULE=on go run -ldflags "-s -w -X github.com/stefanprodan/podinfo/pkg/version.REVISION=$(GIT_COMMIT)" cmd/podinfo/* --level=debug --grpc-port=9999 --backend-url=https://httpbin.org/status/401 --backend-url=https://httpbin.org/status/500 + GO111MODULE=on go run -ldflags "-s -w -X github.com/stefanprodan/podinfo/pkg/version.REVISION=$(GIT_COMMIT)" cmd/podinfo/* \ + --level=debug --grpc-port=9999 --backend-url=https://httpbin.org/status/401 --backend-url=https://httpbin.org/status/500 \ + --ui-logo=https://media.giphy.com/media/l0ExbNdlJFGRphMR2/giphy.gif test: GO111MODULE=on go test -v -race ./... diff --git a/cmd/podinfo/main.go b/cmd/podinfo/main.go index 5418558..2f1aeff 100644 --- a/cmd/podinfo/main.go +++ b/cmd/podinfo/main.go @@ -36,7 +36,8 @@ func main() { fs.String("config-path", "", "config dir path") fs.String("config", "config.yaml", "config file name") fs.String("ui-path", "./ui", "UI local path") - fs.String("ui-color", "blue", "UI color") + fs.String("ui-logo", "", "UI logo") + fs.String("ui-color", "cyan", "UI color") fs.String("ui-message", fmt.Sprintf("greetings from podinfo v%v", version.VERSION), "UI message") fs.Bool("random-delay", false, "between 0 and 5 seconds random delay") fs.Bool("random-error", false, "1/3 chances of a random response error") @@ -64,6 +65,7 @@ func main() { viper.RegisterAlias("backendUrl", "backend-url") hostname, _ := os.Hostname() viper.SetDefault("jwt-secret", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9") + viper.SetDefault("ui-logo", "https://d33wubrfki0l68.cloudfront.net/33a12d8be0bc50be4738443101616e968c7afb8f/cba76/images/scalable.png") viper.Set("hostname", hostname) viper.Set("version", version.VERSION) viper.Set("revision", version.REVISION) diff --git a/pkg/api/index.go b/pkg/api/index.go index f7837ce..feb5243 100644 --- a/pkg/api/index.go +++ b/pkg/api/index.go @@ -23,8 +23,10 @@ func (s *Server) indexHandler(w http.ResponseWriter, r *http.Request) { data := struct { Title string + Logo string }{ Title: s.config.Hostname, + Logo: s.config.UILogo, } if err := tmpl.Execute(w, data); err != nil { diff --git a/pkg/api/info.go b/pkg/api/info.go index 90512cf..d3841f1 100644 --- a/pkg/api/info.go +++ b/pkg/api/info.go @@ -22,6 +22,7 @@ func (s *Server) infoHandler(w http.ResponseWriter, r *http.Request) { Hostname: s.config.Hostname, Version: version.VERSION, Revision: version.REVISION, + Logo: s.config.UILogo, Color: s.config.UIColor, Message: s.config.UIMessage, GOOS: runtime.GOOS, @@ -39,6 +40,7 @@ type RuntimeResponse struct { Version string `json:"version"` Revision string `json:"revision"` Color string `json:"color"` + Logo string `json:"logo"` Message string `json:"message"` GOOS string `json:"goos"` GOARCH string `json:"goarch"` diff --git a/pkg/api/server.go b/pkg/api/server.go index 9f76402..df71f6a 100644 --- a/pkg/api/server.go +++ b/pkg/api/server.go @@ -50,6 +50,7 @@ type Config struct { HttpServerTimeout time.Duration `mapstructure:"http-server-timeout"` HttpServerShutdownTimeout time.Duration `mapstructure:"http-server-shutdown-timeout"` BackendURL []string `mapstructure:"backend-url"` + UILogo string `mapstructure:"ui-logo"` UIMessage string `mapstructure:"ui-message"` UIColor string `mapstructure:"ui-color"` UIPath string `mapstructure:"ui-path"` diff --git a/ui/vue.html b/ui/vue.html index 0a42379..d012e99 100644 --- a/ui/vue.html +++ b/ui/vue.html @@ -26,7 +26,7 @@ justify-center class="white--text" > - kubernetes + kubernetes

${ info.message }

Served by ${ info.hostname }
Date: Sat, 12 Oct 2019 17:44:37 +0300 Subject: [PATCH 2/5] Add UI settings to Helm chart --- charts/podinfo/templates/deployment.yaml | 12 ++++++++++-- charts/podinfo/values.yaml | 6 +++++- kustomize/deployment.yaml | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/charts/podinfo/templates/deployment.yaml b/charts/podinfo/templates/deployment.yaml index 741fcba..dbe4a48 100644 --- a/charts/podinfo/templates/deployment.yaml +++ b/charts/podinfo/templates/deployment.yaml @@ -55,9 +55,17 @@ spec: - --random-delay={{ .Values.faults.delay }} - --random-error={{ .Values.faults.error }} env: - {{- if .Values.message }} + {{- if .Values.ui.message }} - name: PODINFO_UI_MESSAGE - value: {{ .Values.message }} + value: {{ .Values.ui.message }} + {{- end }} + {{- if .Values.ui.logo }} + - name: PODINFO_UI_LOGO + value: {{ .Values.ui.logo }} + {{- end }} + {{- if .Values.ui.color }} + - name: PODINFO_UI_COLOR + value: {{ .Values.ui.color }} {{- end }} {{- if .Values.backend }} - name: PODINFO_BACKEND_URL diff --git a/charts/podinfo/values.yaml b/charts/podinfo/values.yaml index c42fb4b..49cec0a 100644 --- a/charts/podinfo/values.yaml +++ b/charts/podinfo/values.yaml @@ -4,7 +4,11 @@ replicaCount: 1 logLevel: info backend: #http://backend-podinfo:9898/echo backends: [] -message: #UI greetings + +ui: + color: "cyan" + message: "" + logo: "" faults: delay: false diff --git a/kustomize/deployment.yaml b/kustomize/deployment.yaml index 6b3d696..9c93d6a 100644 --- a/kustomize/deployment.yaml +++ b/kustomize/deployment.yaml @@ -48,7 +48,7 @@ spec: - --random-error=false env: - name: PODINFO_UI_COLOR - value: blue + value: cyan livenessProbe: exec: command: From f891e0683bf93827ef3849ccb8bad7f3b9f89a7d Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Sat, 12 Oct 2019 17:45:54 +0300 Subject: [PATCH 3/5] Release v3.1.2 --- charts/podinfo/Chart.yaml | 4 ++-- charts/podinfo/values.yaml | 2 +- kustomize/deployment.yaml | 2 +- pkg/version/version.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/charts/podinfo/Chart.yaml b/charts/podinfo/Chart.yaml index 5c8d8e2..ff9c11f 100644 --- a/charts/podinfo/Chart.yaml +++ b/charts/podinfo/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 -version: 3.1.1 -appVersion: 3.1.1 +version: 3.1.2 +appVersion: 3.1.2 name: podinfo engine: gotpl description: Podinfo Helm chart for Kubernetes diff --git a/charts/podinfo/values.yaml b/charts/podinfo/values.yaml index 49cec0a..a7c3f29 100644 --- a/charts/podinfo/values.yaml +++ b/charts/podinfo/values.yaml @@ -16,7 +16,7 @@ faults: image: repository: stefanprodan/podinfo - tag: 3.1.1 + tag: 3.1.2 pullPolicy: IfNotPresent service: diff --git a/kustomize/deployment.yaml b/kustomize/deployment.yaml index 9c93d6a..820cf2e 100644 --- a/kustomize/deployment.yaml +++ b/kustomize/deployment.yaml @@ -25,7 +25,7 @@ spec: spec: containers: - name: podinfod - image: stefanprodan/podinfo:3.1.1 + image: stefanprodan/podinfo:3.1.2 imagePullPolicy: IfNotPresent ports: - name: http diff --git a/pkg/version/version.go b/pkg/version/version.go index 22b0eae..ec75bbc 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -1,4 +1,4 @@ package version -var VERSION = "3.1.1" +var VERSION = "3.1.2" var REVISION = "unknown" From 10139749da9ba4da01937b7105a5276fe64e4bf2 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Sat, 12 Oct 2019 17:50:12 +0300 Subject: [PATCH 4/5] Turn off CircleCI docker_layer_caching --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 31c8d5a..76fbf56 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,7 +24,7 @@ jobs: steps: - checkout - setup_remote_docker: - docker_layer_caching: true + docker_layer_caching: false - run: make build-container - run: | if [ -z "$CIRCLE_TAG" ]; then From 0b3e88d6dede4a49ad42001f4c9b15100db6ba07 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Sat, 12 Oct 2019 18:00:14 +0300 Subject: [PATCH 5/5] Add release namespace to Helm tests --- charts/podinfo/templates/tests/grpc.yaml | 2 +- charts/podinfo/templates/tests/jwt.yaml | 4 ++-- charts/podinfo/templates/tests/service.yaml | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/charts/podinfo/templates/tests/grpc.yaml b/charts/podinfo/templates/tests/grpc.yaml index b926c62..444155c 100644 --- a/charts/podinfo/templates/tests/grpc.yaml +++ b/charts/podinfo/templates/tests/grpc.yaml @@ -17,5 +17,5 @@ spec: - name: grpc-health-probe image: stefanprodan/grpc_health_probe:v0.3.0 command: ['grpc_health_probe'] - args: ['-addr={{ template "podinfo.fullname" . }}:{{ .Values.service.grpcPort }}'] + args: ['-addr={{ template "podinfo.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.service.grpcPort }}'] restartPolicy: Never diff --git a/charts/podinfo/templates/tests/jwt.yaml b/charts/podinfo/templates/tests/jwt.yaml index 4daa7ad..7a8fa1e 100644 --- a/charts/podinfo/templates/tests/jwt.yaml +++ b/charts/podinfo/templates/tests/jwt.yaml @@ -21,9 +21,9 @@ spec: - -c - | TOKEN=$(curl -sd 'test' ${PODINFO_SVC}/token | jq -r .token) && - curl -H "Authorization: Bearer ${TOKEN}" ${PODINFO_SVC}/token/validate | grep test + curl -sH "Authorization: Bearer ${TOKEN}" ${PODINFO_SVC}/token/validate | grep test env: - name: PODINFO_SVC - value: {{ template "podinfo.fullname" . }}:{{ .Values.service.externalPort }} + value: {{ template "podinfo.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.service.externalPort }} restartPolicy: Never diff --git a/charts/podinfo/templates/tests/service.yaml b/charts/podinfo/templates/tests/service.yaml index 71afaf3..37f35cb 100644 --- a/charts/podinfo/templates/tests/service.yaml +++ b/charts/podinfo/templates/tests/service.yaml @@ -20,9 +20,8 @@ spec: - sh - -c - | - TOKEN=$(curl -sd 'test' ${PODINFO_SVC}/token | jq -r .token) && - curl -H "Authorization: Bearer ${TOKEN}" ${PODINFO_SVC}/token/validate | grep test + curl -s ${PODINFO_SVC}/api/info | grep version env: - name: PODINFO_SVC - value: {{ template "podinfo.fullname" . }}:{{ .Values.service.externalPort }} + value: {{ template "podinfo.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.service.externalPort }} restartPolicy: Never