This is an automated email from the ASF dual-hosted git repository.

nicknezis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-heron.git


The following commit(s) were added to refs/heads/master by this push:
     new 4f588cf  Helm: Adding option to switch the Kubernetes services between 
NodePort and ClusterIP (#3721)
4f588cf is described below

commit 4f588cfe003ee47264e564d25d694c1300d32fbc
Author: Windham Wong <[email protected]>
AuthorDate: Thu Nov 11 12:28:52 2021 +0800

    Helm: Adding option to switch the Kubernetes services between NodePort and 
ClusterIP (#3721)
    
    * Adding option to switch the apiserver service between NodePort and 
ClusterIP
    
    * Now support custom NodePort port number
    
    * Better value.yaml settings for nodeport config
    
    * Some cleanup and allows K8s to auto-pick nodeport
    
    * Fixing typo
    
    Co-authored-by: Windham Wong <[email protected]>
    Co-authored-by: Nicholas Nezis <[email protected]>
---
 WORKSPACE                                   |  8 ++--
 deploy/kubernetes/gke/medium.yaml           |  5 +-
 deploy/kubernetes/gke/small.yaml            |  5 +-
 deploy/kubernetes/helm/templates/tools.yaml | 72 ++++++++++++++++++++---------
 deploy/kubernetes/helm/values.yaml.template | 22 +++++++--
 5 files changed, 78 insertions(+), 34 deletions(-)

diff --git a/WORKSPACE b/WORKSPACE
index f58aa3d..9f1f203 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -354,17 +354,17 @@ http_archive(
 http_archive(
     name = "helm_mac",
     build_file = "@//:third_party/helm/helm.BUILD",
-    sha256 = 
"05c7748da0ea8d5f85576491cd3c615f94063f20986fd82a0f5658ddc286cdb1",
+    sha256 = 
"3a9efe337c61a61b3e160da919ac7af8cded8945b75706e401f3655a89d53ef5",
     strip_prefix = "darwin-amd64",
-    urls = ["https://get.helm.sh/helm-v3.0.2-darwin-amd64.tar.gz";],
+    urls = ["https://get.helm.sh/helm-v3.7.1-darwin-amd64.tar.gz";],
 )
 
 http_archive(
     name = "helm_linux",
     build_file = "@//:third_party/helm/helm.BUILD",
-    sha256 = 
"c6b7aa7e4ffc66e8abb4be328f71d48c643cb8f398d95c74d075cfb348710e1d",
+    sha256 = 
"6cd6cad4b97e10c33c978ff3ac97bb42b68f79766f1d2284cfd62ec04cd177f4",
     strip_prefix = "linux-amd64",
-    urls = ["https://get.helm.sh/helm-v3.0.2-linux-amd64.tar.gz";],
+    urls = ["https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gz";],
 )
 # end helm
 
diff --git a/deploy/kubernetes/gke/medium.yaml 
b/deploy/kubernetes/gke/medium.yaml
index b140d11..fc96deb 100644
--- a/deploy/kubernetes/gke/medium.yaml
+++ b/deploy/kubernetes/gke/medium.yaml
@@ -30,8 +30,9 @@ platform: gke
 # Number of replicas for the job binary in bookkeeper
 jobReplicas: 2
 
-# amount of memory to provide for API server
-apiServerMemory: 512M
+apiServer:
+  # amount of memory to provide for API server
+  memory: 512M
 
 # Number of replicas for storage bookies, memory and storage requirements 
 bookieReplicas: 5
diff --git a/deploy/kubernetes/gke/small.yaml b/deploy/kubernetes/gke/small.yaml
index 070c95f..f3ce323 100644
--- a/deploy/kubernetes/gke/small.yaml
+++ b/deploy/kubernetes/gke/small.yaml
@@ -30,8 +30,9 @@ platform: gke
 # Number of replicas for the job binary in bookkeeper
 jobReplicas: 2
 
-# amount of memory to provide for API server
-apiServerMemory: 512M
+apiServer:
+  # amount of memory to provide for API server
+  memory: 512M
 
 # Number of replicas for storage bookies, memory and storage requirements 
 bookieReplicas: 3
diff --git a/deploy/kubernetes/helm/templates/tools.yaml 
b/deploy/kubernetes/helm/templates/tools.yaml
index 123f0e2..7cb572b 100644
--- a/deploy/kubernetes/helm/templates/tools.yaml
+++ b/deploy/kubernetes/helm/templates/tools.yaml
@@ -18,7 +18,7 @@
 {{- $platform := .Values.platform -}}
 {{- $jobReplicas := .Values.jobReplicas -}}
 {{- $defaultUrl := (printf "/api/v1/namespaces/%s/services/%s-ui:8889/proxy" 
.Release.Namespace .Release.Name) -}}
-{{- $apiServerMemory := .Values.apiServerMemory }}
+{{- $apiServerMemory := .Values.apiServer.memory }}
 
 apiVersion: v1
 kind: ConfigMap
@@ -112,8 +112,8 @@ spec:
             - >-
               heron-ui
               --port=8889
-              {{- if not (kindIs "invalid" .Values.heron.url) }}
-              --base-url={{ eq .Values.heron.url "-" | ternary $defaultUrl 
.Values.heron.url }}
+              {{- if not (kindIs "invalid" .Values.ui.url) }}
+              --base-url={{ eq .Values.ui.url "-" | ternary $defaultUrl 
.Values.ui.url }}
               {{- end }}
         - name: heron-apiserver
           image: {{ .Values.image }}
@@ -181,6 +181,14 @@ spec:
     - port: 8889
       targetPort: 8889
       protocol: TCP
+      {{- if .Values.ui.nodePort.enabled }}
+      nodePort: {{ .Values.ui.nodePort.port }}
+      {{- end }}
+  {{- if .Values.ui.nodePort.enabled }}
+  type: NodePort
+  {{- else }}
+  type: ClusterIP
+  {{- end }}      
   selector:
     app: {{ .Release.Name }}-tools
     release: {{ .Release.Name }}
@@ -203,6 +211,44 @@ spec:
     - port: 8888
       targetPort: 8888
       protocol: TCP
+      {{- if .Values.tracker.nodePort.enabled }}
+      nodePort: {{ .Values.tracker.nodePort.port }}
+      {{- end }}
+  {{- if .Values.tracker.nodePort.enabled }}
+  type: NodePort
+  {{- else }}
+  type: ClusterIP
+  {{- end }}
+  selector:
+    app: {{ .Release.Name }}-tools
+    release: {{ .Release.Name }}
+
+---
+##
+## Service to expose the heron-apiserver
+##
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Release.Name }}-apiserver
+  labels:
+    app: {{ .Release.Name }}-tools
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  ports:
+    - port: 9000
+      targetPort: 9000
+      protocol: TCP
+      {{- if .Values.apiServer.nodePort.enabled }}
+      nodePort: {{ .Values.apiServer.nodePort.port }}
+      {{- end }}
+  {{- if .Values.apiServer.nodePort.enabled }}
+  type: NodePort
+  {{- else }}
+  type: ClusterIP
+  {{- end }}
   selector:
     app: {{ .Release.Name }}-tools
     release: {{ .Release.Name }}
@@ -269,23 +315,3 @@ rules:
   verbs:
   - get
   - list
-
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: {{ .Release.Name }}-apiserver
-  labels:
-    app: {{ .Release.Name }}-tools
-    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
-    release: {{ .Release.Name }}
-    heritage: {{ .Release.Service }}
-spec:
-  ports:
-    - port: 9000
-      targetPort: 9000
-      protocol: TCP
-  type: NodePort
-  selector:
-    app: {{ .Release.Name }}-tools
-    release: {{ .Release.Name }}
diff --git a/deploy/kubernetes/helm/values.yaml.template 
b/deploy/kubernetes/helm/values.yaml.template
index 61daf04..dfbdd1f 100644
--- a/deploy/kubernetes/helm/values.yaml.template
+++ b/deploy/kubernetes/helm/values.yaml.template
@@ -36,9 +36,25 @@ imagePullPolicy: IfNotPresent
 # Number of replicas for the job binary in bookkeeper
 jobReplicas: 1
 
-# amount of memory to provide for API server
-apiServerMemory: 512M
-heron:
+apiServer:
+  # amount of memory to provide for API server
+  memory: 512M
+  nodePort:
+    enabled: false
+    # port can be left empty and Kubernetes will assign a random NodePort
+    port:
+
+tracker:
+  nodePort:
+    enabled: false
+    # port can be left empty and Kubernetes will assign a random NodePort
+    port:
+
+ui:
+  nodePort:
+    enabled: false
+    # port can be left empty and Kubernetes will assign a random NodePort
+    port:
   # set to `-` to set base-url to the default k8s proxy URL
   # set to `null` to remove the use of base_url
   url: "-"

Reply via email to