You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2022/08/24 12:43:32 UTC
[hop] branch master updated: HOP-4162
This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/master by this push:
new 78ad10803b HOP-4162
new ea8584e1db Merge pull request #1658 from joeriheyvaerts/master
78ad10803b is described below
commit 78ad10803b5e879d084d92081e9480bdb5d7a115
Author: joeri <jo...@know.bi>
AuthorDate: Wed Aug 24 13:27:10 2022 +0200
HOP-4162
---
helm/README.md | 60 +++++--
helm/hop-server/templates/_helpers.tpl | 91 ----------
helm/hop-server/values.yaml | 135 ---------------
helm/{hop-server => hop}/.helmignore | 0
helm/{hop-server => hop}/Chart.yaml | 4 +-
helm/hop/templates/_helpers/_helpers.tpl | 159 +++++++++++++++++
.../templates/hop-server/server-config.yaml} | 10 +-
.../templates/hop-server/server-deployment.yaml} | 42 +++--
helm/hop/templates/hop-server/server-ingress.yaml | 52 ++++++
.../templates/hop-server/server-service.yaml} | 14 +-
helm/hop/templates/hop-web/web-deployment.yaml | 58 +++++++
helm/hop/templates/hop-web/web-ingress.yaml | 52 ++++++
.../templates/hop-web/web-service.yaml} | 14 +-
.../templates/tests/test-connection.yaml | 8 +-
helm/hop/values.yaml | 188 +++++++++++++++++++++
15 files changed, 607 insertions(+), 280 deletions(-)
diff --git a/helm/README.md b/helm/README.md
index fec6a06a7a..e8d9e4e709 100644
--- a/helm/README.md
+++ b/helm/README.md
@@ -19,31 +19,63 @@ under the License.
A **Hop Helm chart** supporting **long-lived** setups.
-## Variables
-
You can provide values for the following variables in the values.yaml file:
+## Variables hop server
+
Variable | Required | Description
--- |---- |---
-replicaCount | Yes | Number of replicas
-image.tag | Yes | Hop release
-image.env | No | Extra environnement variables, e.g. `HOP_SERVER_METADATA_FOLDER`
-service.type | Yes | Expose via Nodeport or Loadbalancer
-service.port | Yes | Port of the service
-service.targetPort | Yes | Port of the pod(s)
-hop.user | Yes | Username for hop-server
-hop.port | Yes | The port for hop server
+server.enabled | Yes | Enable Hop server
+server.replicaCount | Yes | Number of replicas
+server.image.name | Yes | Hop server Image
+server.image.tag | Yes | Hop release
+server.image.env | No | Extra environnement variables, e.g. `HOP_SERVER_METADATA_FOLDER`
+server.service.type | Yes | Expose via Nodeport, Loadbalancer or ClusterIP
+server.service.port | Yes | Port of the service
+server.service.targetPort | Yes | Port of the pod(s)
+server.service.name | Yes | Port name
+server.hop.user | Yes | Username for hop-server
+server.hop.port | Yes | The port for hop server
+server.ingress.enabled | Yes | Enable ingress
+server.ingress.className | No | Ingress class name
+server.ingress.annotation | No | Arbitrary metadata
+server.ingress.path | Yes | Path rule
+server.ingress.pathType | Yes | Type of path, e.g. Prefix, ImplementationSpecific or Exact
+server.ingress.hosts | Yes | List of hosts
+server.nameOverride | No | Override Chart resource name
+server.fullnameOverride | No | Override full resource name
-## How to run Hop server via helm on kubernetes
+## Variables hop web
+
+Variable | Required | Description
+--- |---- |---
+web.enabled | Yes | Enable Hop web
+web.replicaCount | Yes | Number of replicas
+web.image.name | Yes | Hop web Image
+web.image.tag | Yes | Hop web release
+web.service.type | Yes | Expose via Nodeport, Loadbalancer or ClusterIP
+web.service.port | Yes | Port of the service
+web.service.targetPort | Yes | Port of the pod(s)
+web.service.name | Yes | Port name
+web.ingress.enabled | Yes | Enable ingress
+web.ingress.className | No | Ingress class name
+web.ingress.annotation | No | Arbitrary metadata
+web.ingress.path | Yes | Path rule
+web.ingress.pathType | Yes | Type of path, e.g. Prefix, ImplementationSpecific or Exact
+web.ingress.hosts | Yes | List of hosts
+web.nameOverride | No | Override Chart resource name
+web.fullnameOverride | No | Override full resource name
+
+## How to run Hop via helm on kubernetes
Create a secret for the hop server
```bash
-kubectl create secret generic hop-server --from-literal=pass=admin
+kubectl create secret generic <release name>-server --from-literal=pass=admin
```
install the helm hop-server chart:
```bash
-helm install hop-server hop-server/
-```
+helm install <release name> hop
+```
\ No newline at end of file
diff --git a/helm/hop-server/templates/_helpers.tpl b/helm/hop-server/templates/_helpers.tpl
deleted file mode 100644
index 6ae4817cbd..0000000000
--- a/helm/hop-server/templates/_helpers.tpl
+++ /dev/null
@@ -1,91 +0,0 @@
-{{/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you 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.
-*/}}
-
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "hop.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
-{{- end }}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
-*/}}
-{{- define "hop.fullname" -}}
-{{- if .Values.fullnameOverride }}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- $name := default .Chart.Name .Values.nameOverride }}
-{{- if contains $name .Release.Name }}
-{{- .Release.Name | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
-{{- end }}
-{{- end }}
-{{- end }}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "hop.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
-{{- end }}
-
-{{/*
-Common labels
-*/}}
-{{- define "hop.labels" -}}
-helm.sh/chart: {{ include "hop.chart" . }}
-{{ include "hop.selectorLabels" . }}
-{{- if .Chart.AppVersion }}
-app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
-{{- end }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end }}
-
-{{/*
-Selector labels
-*/}}
-{{- define "hop.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "hop.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
-{{- end }}
-
-{{/*
-Create the name of the service account to use
-*/}}
-{{- define "hop.serviceAccountName" -}}
-{{- if .Values.serviceAccount.create }}
-{{- default (include "hop.fullname" .) .Values.serviceAccount.name }}
-{{- else }}
-{{- default "default" .Values.serviceAccount.name }}
-{{- end }}
-{{- end }}
-
-{{/*
-Function to format extra environment variables
-*/}}
-{{- define "helpers.list-extra-env-variables"}}
-{{- range $key, $val := .Values.image.env }}
-- name: {{ $key }}
- value: {{ $val | quote }}
-{{- end }}
-{{- end }}
diff --git a/helm/hop-server/values.yaml b/helm/hop-server/values.yaml
deleted file mode 100644
index d882319f16..0000000000
--- a/helm/hop-server/values.yaml
+++ /dev/null
@@ -1,135 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you 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.
-
-# Default values for hop.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
-
-## @param replicaCount number of replicas for the statefulset
-replicaCount: 1
-
-## @section Image
-## @param image.name Image name
-## @param image.pullPolicy Image pull policy
-## @param image.tag Visit: [Image tag](https://hub.docker.com/r/apache/hop/tags?page=1&ordering=last_updated)
-## @param image.env Environment variables
-image:
- name: docker.io/apache/hop
- pullPolicy: IfNotPresent
- # Overrides the image tag
- tag: "latest"
- env:
- # HOP_SERVER_METADATA_FOLDER: "/files/projects/my-project/metadata"
- # HOP_CONFIG_FOLDER: "/files/config"
- # HOP_ENVIRONMENT_NAME: "my-project-env"
- # HOP_ENVIRONMENT_CONFIG_FILE_NAME_PATHS: "/files/projects/my-project/main-config.json,/files/projects/my-project/extra-config.json"
- # HOP_PROJECT_NAME: "my-project"
- # HOP_PROJECT_FOLDER: "/files/projects/my-project"
-
-## @param imagePullSecrets Secret to use for pulling the image
-imagePullSecrets: [ ]
-
-nameOverride: ""
-fullnameOverride: ""
-
-podAnnotations: { }
-
-podSecurityContext: { }
-# fsGroup: 2000
-
-securityContext: { }
- # capabilities:
- # drop:
- # - ALL
- # readOnlyRootFilesystem: true
- # runAsNonRoot: true
-# runAsUser: 1000
-
-## @section Service
-service:
- http:
- type: ClusterIP
- port: 80
- targetPort: 8081
-
-resources: { }
- # We usually recommend not to specify default resources and to leave this as a conscious
- # choice for the user. This also increases chances charts run on environments with little
- # resources, such as Minikube. If you do want to specify resources, uncomment the following
- # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
- # limits:
- # cpu: 100m
- # memory: 128Mi
- # requests:
- # cpu: 100m
-# memory: 128Mi
-
-## @section Ingress
-## @param ingress.enabled Enable ingress
-## @param ingress.className Ingress class name
-## @param ingress.annotations Ingress annotations
-## @param ingress.hosts[0].host Default Ingress host
-## @param ingress.hosts[0].paths[0].path Default Ingress path
-## @param ingress.hosts[0].paths[0].pathType Ingress path type
-## @param ingress.tls Ingress tls settings
-## @extra ingress.apiVersion Specify APIVersion of ingress object. Mostly would only be used for argocd.
-ingress:
- enabled: false
- # className: nginx
- className:
- annotations: {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
- hosts:
- - host: hop.example.com
- paths:
- - path: /
- pathType: Prefix
- tls: []
- # - secretName: chart-example-tls
- # hosts:
- # - hop.example.com
- # Mostly for argocd or any other CI that uses `helm template | kubectl apply` or similar
- # If helm doesn't correctly detect your ingress API version you can set it here.
- # apiVersion: networking.k8s.io/v1
-
-## @section Autoscaling
-autoscaling:
- enabled: false
- minReplicas: 1
- maxReplicas: 100
- targetCPUUtilizationPercentage: 80
- # targetMemoryUtilizationPercentage: 80
-
-nodeSelector: { }
-
-tolerations: [ ]
-
-affinity: { }
-
-## @section Persistence
-#
-## @param persistence.enabled Enable persistent storage
-## @param persistence.existingClaim Use an existing claim to store repository information
-persistence:
- enabled: false
- existingClaim: my-claim
-
-## @section Hop
-hop:
- port: 8081
- user: admin
diff --git a/helm/hop-server/.helmignore b/helm/hop/.helmignore
similarity index 100%
rename from helm/hop-server/.helmignore
rename to helm/hop/.helmignore
diff --git a/helm/hop-server/Chart.yaml b/helm/hop/Chart.yaml
similarity index 96%
rename from helm/hop-server/Chart.yaml
rename to helm/hop/Chart.yaml
index 474ac00181..008a6fedb2 100644
--- a/helm/hop-server/Chart.yaml
+++ b/helm/hop/Chart.yaml
@@ -16,8 +16,8 @@
# under the License.
apiVersion: v2
-name: hop-server
-description: A Helm chart for Kubernetes
+name: hop
+description: A Helm chart for hop services
# A chart can be either an 'application' or a 'library' chart.
#
diff --git a/helm/hop/templates/_helpers/_helpers.tpl b/helm/hop/templates/_helpers/_helpers.tpl
new file mode 100644
index 0000000000..25b0d68c5f
--- /dev/null
+++ b/helm/hop/templates/_helpers/_helpers.tpl
@@ -0,0 +1,159 @@
+{{/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+*/}}
+
+{{/*
+Expand the name of the chart.
+*/}}
+
+{{/*
+hop-server
+*/}}
+{{- define "server.name" -}}
+{{- default "server" .Values.server.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "server.fullname" -}}
+{{- if .Values.server.fullnameOverride }}
+{{- .Values.server.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default "server" .Values.server.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "server.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "server.labels" -}}
+helm.sh/chart: {{ include "server.chart" . }}
+{{ include "server.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "server.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "server.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "server.serviceAccountName" -}}
+{{- if .Values.server.serviceAccount.create }}
+{{- default (include "server.fullname" .) .Values.server.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.server.serviceAccount.name }}
+{{- end }}
+{{- end }}
+
+{{/*
+Function to format extra environment variables
+*/}}
+{{- define "helpers.list-extra-env-variables"}}
+{{- range $key, $val := .Values.server.image.env }}
+- name: {{ $key }}
+ value: {{ $val | quote }}
+{{- end }}
+{{- end }}
+
+{{/*
+hop-web
+*/}}
+
+{{- define "web.name" -}}
+{{- default .Chart.Name .Values.web.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "web.fullname" -}}
+{{- if .Values.web.fullnameOverride }}
+{{- .Values.web.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default "web" .Values.web.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "web.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "web.labels" -}}
+helm.sh/chart: {{ include "web.chart" . }}
+{{ include "web.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "web.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "web.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "web.serviceAccountName" -}}
+{{- if .Values.web.serviceAccount.create }}
+{{- default (include "web.fullname" .) .Values.web.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.web.serviceAccount.name }}
+{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/helm/hop-server/templates/hop-config.yaml b/helm/hop/templates/hop-server/server-config.yaml
similarity index 78%
rename from helm/hop-server/templates/hop-config.yaml
rename to helm/hop/templates/hop-server/server-config.yaml
index f074cfceee..500bec3b78 100644
--- a/helm/hop-server/templates/hop-config.yaml
+++ b/helm/hop/templates/hop-server/server-config.yaml
@@ -15,12 +15,14 @@
# specific language governing permissions and limitations
# under the License.
+{{- if .Values.server.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
- name: {{ include "hop.fullname" . }}
+ name: {{ include "server.fullname" . }}
labels:
- {{- include "hop.labels" . | nindent 4 }}
+ {{- include "server.labels" . | nindent 4 }}
data:
- port: {{ .Values.hop.port | quote }}
- user: {{ .Values.hop.user | quote }}
+ port: {{ .Values.server.hop.port | quote }}
+ user: {{ .Values.server.hop.user | quote }}
+{{- end }}
diff --git a/helm/hop-server/templates/hop-deployment.yaml b/helm/hop/templates/hop-server/server-deployment.yaml
similarity index 58%
rename from helm/hop-server/templates/hop-deployment.yaml
rename to helm/hop/templates/hop-server/server-deployment.yaml
index f479bcedef..75f1e747c6 100644
--- a/helm/hop-server/templates/hop-deployment.yaml
+++ b/helm/hop/templates/hop-server/server-deployment.yaml
@@ -15,19 +15,20 @@
# specific language governing permissions and limitations
# under the License.
+{{- if .Values.server.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
- name: {{ include "hop.fullname" . }}
+ name: {{ include "server.fullname" . }}
labels:
- {{- include "hop.labels" . | nindent 4 }}
+ {{- include "server.labels" . | nindent 4 }}
spec:
- {{- if not .Values.autoscaling.enabled }}
- replicas: {{ .Values.replicaCount }}
+ {{- if not .Values.server.autoscaling.enabled }}
+ replicas: {{ .Values.server.replicaCount }}
{{- end }}
selector:
matchLabels:
- {{- include "hop.selectorLabels" . | nindent 6 }}
+ {{- include "server.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
@@ -35,45 +36,50 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
- {{- include "hop.selectorLabels" . | nindent 8 }}
+ {{- include "server.selectorLabels" . | nindent 8 }}
spec:
- {{- with .Values.imagePullSecrets }}
+ {{- with .Values.server.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
securityContext:
- {{- toYaml .Values.podSecurityContext | nindent 8 }}
+ {{- toYaml .Values.server.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
- {{- toYaml .Values.securityContext | nindent 12 }}
- image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
- imagePullPolicy: {{ .Values.image.pullPolicy }}
+ {{- toYaml .Values.server.securityContext | nindent 12 }}
+ image: "{{ .Values.server.image.name }}:{{ .Values.server.image.tag }}"
+ imagePullPolicy: {{ .Values.server.image.pullPolicy }}
+ ports:
+ - containerPort: {{ .Values.server.service.http.targetPort }}
+ name: {{ .Values.server.service.http.name }}
+ protocol: TCP
env:
- name: HOP_SERVER_USER
valueFrom:
configMapKeyRef:
- name: {{ include "hop.fullname" . }}
+ name: {{ include "server.fullname" . }}
key: user
- name: HOP_SERVER_PASS
valueFrom:
secretKeyRef:
- name: {{ include "hop.fullname" . }}
+ name: {{ include "server.fullname" . }}
key: pass
- name: HOP_SERVER_PORT
valueFrom:
configMapKeyRef:
- name: {{ include "hop.fullname" . }}
+ name: {{ include "server.fullname" . }}
key: port
{{- include "helpers.list-extra-env-variables" . | indent 12 }}
volumeMounts:
- - name: {{ template "hop.fullname" . }}-data
+ - name: {{ template "server.fullname" . }}-data
mountPath: /files
volumes:
- - name: {{ template "hop.fullname" . }}-data
- {{- if .Values.persistence.enabled }}
+ - name: {{ template "server.fullname" . }}-data
+ {{- if .Values.server.persistence.enabled }}
persistentVolumeClaim:
- claimName: {{ .Values.persistence.existingClaim | default (printf "%s-%s" (include "hop.fullname" .) "data") }}
+ claimName: {{ .Values.server.persistence.existingClaim | default (printf "%s-%s" (include "server.fullname" .) "data") }}
{{- else }}
emptyDir: {}
{{- end }}
+ {{- end }}
diff --git a/helm/hop/templates/hop-server/server-ingress.yaml b/helm/hop/templates/hop-server/server-ingress.yaml
new file mode 100644
index 0000000000..04e4cd8824
--- /dev/null
+++ b/helm/hop/templates/hop-server/server-ingress.yaml
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+
+{{- if and (.Values.server.ingress.enabled) (.Values.server.enabled) -}}
+{{- $fullName := include "server.fullname" . }}
+{{- $servicePort := .Values.server.service.http.port }}
+{{- $ingressPath := .Values.server.ingress.path }}
+{{- $ingressPathType := .Values.server.ingress.pathType }}
+
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ $fullName }}
+ labels:
+ {{- include "server.labels" . | nindent 4 }}
+ {{- if .Values.server.ingress.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.server.ingress.annotations }}
+ {{ $key }}: {{ tpl $value $ | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ rules:
+ {{- if .Values.server.ingress.hosts }}
+ {{- range .Values.server.ingress.hosts }}
+ - host: {{ tpl . $}}
+ http:
+ paths:
+ - path: {{ $ingressPath }}
+ pathType: {{ $ingressPathType }}
+ backend:
+ service:
+ name: {{ $fullName }}
+ port:
+ number: {{ $servicePort }}
+ {{- end }}
+{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/helm/hop-server/templates/hop-service.yaml b/helm/hop/templates/hop-server/server-service.yaml
similarity index 71%
copy from helm/hop-server/templates/hop-service.yaml
copy to helm/hop/templates/hop-server/server-service.yaml
index c49be15e14..0baabd1ad5 100644
--- a/helm/hop-server/templates/hop-service.yaml
+++ b/helm/hop/templates/hop-server/server-service.yaml
@@ -15,18 +15,20 @@
# specific language governing permissions and limitations
# under the License.
+{{- if .Values.server.enabled }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "hop.fullname" . }}
+ name: {{ include "server.fullname" . }}
labels:
- {{- include "hop.labels" . | nindent 4 }}
+ {{- include "server.labels" . | nindent 4 }}
spec:
- type: {{ .Values.service.http.type }}
+ type: {{ .Values.server.service.http.type }}
ports:
- - port: {{ .Values.service.http.port }}
- targetPort: {{ .Values.service.http.targetPort }}
+ - port: {{ .Values.server.service.http.port }}
+ targetPort: {{ .Values.server.service.http.targetPort }}
protocol: TCP
name: http
selector:
- {{- include "hop.selectorLabels" . | nindent 4 }}
+ {{- include "server.selectorLabels" . | nindent 4 }}
+{{- end }}
diff --git a/helm/hop/templates/hop-web/web-deployment.yaml b/helm/hop/templates/hop-web/web-deployment.yaml
new file mode 100644
index 0000000000..34313d62e7
--- /dev/null
+++ b/helm/hop/templates/hop-web/web-deployment.yaml
@@ -0,0 +1,58 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+
+{{- if .Values.web.enabled }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: {{ include "web.fullname" . }}
+ labels:
+ {{- include "web.labels" . | nindent 4 }}
+spec:
+ {{- if not .Values.web.autoscaling.enabled }}
+ replicas: {{ .Values.web.replicaCount }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "web.selectorLabels" . | nindent 6 }}
+ template:
+ metadata:
+ {{- with .Values.web.podAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ labels:
+ {{- include "web.selectorLabels" . | nindent 8 }}
+ spec:
+ {{- with .Values.web.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ securityContext:
+ {{- toYaml .Values.web.podSecurityContext | nindent 8 }}
+ containers:
+ - name: {{ .Chart.Name }}
+ securityContext:
+ {{- toYaml .Values.web.securityContext | nindent 12 }}
+ image: "{{ .Values.web.image.name }}:{{ .Values.web.image.tag }}"
+ imagePullPolicy: {{ .Values.web.image.pullPolicy }}
+ ports:
+ - containerPort: {{ .Values.web.service.http.targetPort }}
+ name: {{ .Values.web.service.http.name }}
+ protocol: TCP
+
+{{- end }}
diff --git a/helm/hop/templates/hop-web/web-ingress.yaml b/helm/hop/templates/hop-web/web-ingress.yaml
new file mode 100644
index 0000000000..9df1bc2c92
--- /dev/null
+++ b/helm/hop/templates/hop-web/web-ingress.yaml
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+
+{{- if and (.Values.web.ingress.enabled) (.Values.web.enabled) -}}
+{{- $fullName := include "web.fullname" . }}
+{{- $servicePort := .Values.web.service.http.port }}
+{{- $ingressPath := .Values.web.ingress.path }}
+{{- $ingressPathType := .Values.web.ingress.pathType }}
+
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: {{ $fullName }}
+ labels:
+ {{- include "web.labels" . | nindent 4 }}
+ {{- if .Values.web.ingress.annotations }}
+ annotations:
+ {{- range $key, $value := .Values.web.ingress.annotations }}
+ {{ $key }}: {{ tpl $value $ | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ rules:
+ {{- if .Values.web.ingress.hosts }}
+ {{- range .Values.web.ingress.hosts }}
+ - host: {{ tpl . $}}
+ http:
+ paths:
+ - path: {{ $ingressPath }}
+ pathType: {{ $ingressPathType }}
+ backend:
+ service:
+ name: {{ $fullName }}
+ port:
+ number: {{ $servicePort }}
+ {{- end }}
+{{- end }}
+{{- end }}
\ No newline at end of file
diff --git a/helm/hop-server/templates/hop-service.yaml b/helm/hop/templates/hop-web/web-service.yaml
similarity index 73%
rename from helm/hop-server/templates/hop-service.yaml
rename to helm/hop/templates/hop-web/web-service.yaml
index c49be15e14..2bd83186c0 100644
--- a/helm/hop-server/templates/hop-service.yaml
+++ b/helm/hop/templates/hop-web/web-service.yaml
@@ -15,18 +15,20 @@
# specific language governing permissions and limitations
# under the License.
+{{- if .Values.web.enabled }}
apiVersion: v1
kind: Service
metadata:
- name: {{ include "hop.fullname" . }}
+ name: {{ include "web.fullname" . }}
labels:
- {{- include "hop.labels" . | nindent 4 }}
+ {{- include "web.labels" . | nindent 4 }}
spec:
- type: {{ .Values.service.http.type }}
+ type: {{ .Values.web.service.http.type }}
ports:
- - port: {{ .Values.service.http.port }}
- targetPort: {{ .Values.service.http.targetPort }}
+ - port: {{ .Values.web.service.http.port }}
+ targetPort: {{ .Values.web.service.http.targetPort }}
protocol: TCP
name: http
selector:
- {{- include "hop.selectorLabels" . | nindent 4 }}
+ {{- include "web.selectorLabels" . | nindent 4 }}
+{{- end }}
diff --git a/helm/hop-server/templates/tests/test-connection.yaml b/helm/hop/templates/tests/test-connection.yaml
similarity index 81%
rename from helm/hop-server/templates/tests/test-connection.yaml
rename to helm/hop/templates/tests/test-connection.yaml
index a3ea23b4d4..4026a47e6c 100644
--- a/helm/hop-server/templates/tests/test-connection.yaml
+++ b/helm/hop/templates/tests/test-connection.yaml
@@ -18,9 +18,9 @@
apiVersion: v1
kind: Pod
metadata:
- name: "{{ include "hop.fullname" . }}-test-connection"
+ name: "{{ include "server.fullname" . }}-test-connection"
labels:
- {{- include "hop.labels" . | nindent 4 }}
+ {{- include "server.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
@@ -28,5 +28,5 @@ spec:
- name: wget
image: busybox
command: [ 'wget' ]
- args: [ '{{ include "hop.fullname" . }}:{{ .Values.service.port }}' ]
- restartPolicy: Never
+ args: [ '{{ include "server.fullname" . }}:{{ .Values.server.service.port }}' ]
+ restartPolicy: Never
\ No newline at end of file
diff --git a/helm/hop/values.yaml b/helm/hop/values.yaml
new file mode 100644
index 0000000000..24b5a76570
--- /dev/null
+++ b/helm/hop/values.yaml
@@ -0,0 +1,188 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+
+# Default values for hop.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+# deploy hop-server
+server:
+ enabled: true
+
+## @param replicaCount number of replicas for the statefulset
+ replicaCount: 1
+
+ ## @section Image
+ ## @param image.name Image name
+ ## @param image.pullPolicy Image pull policy
+ ## @param image.tag Visit: [Image tag](https://hub.docker.com/r/apache/hop/tags?page=1&ordering=last_updated)
+ ## @param image.env Environment variables
+ image:
+ name: docker.io/apache/hop
+ pullPolicy: IfNotPresent
+ # Overrides the image tag
+ tag: "latest"
+ env:
+ # HOP_SERVER_METADATA_FOLDER: "/files/projects/my-project/metadata"
+ # HOP_CONFIG_FOLDER: "/files/config"
+ # HOP_ENVIRONMENT_NAME: "my-project-env"
+ # HOP_ENVIRONMENT_CONFIG_FILE_NAME_PATHS: "/files/projects/my-project/main-config.json,/files/projects/my-project/extra-config.json"
+ # HOP_PROJECT_NAME: "my-project"
+ # HOP_PROJECT_FOLDER: "/files/projects/my-project"
+
+ ## @param imagePullSecrets Secret to use for pulling the image
+ imagePullSecrets: [ ]
+
+ nameOverride: ""
+ fullnameOverride: ""
+
+ podAnnotations: { }
+
+ podSecurityContext: { }
+ # fsGroup: 2000
+
+ securityContext: { }
+ # capabilities:
+ # drop:
+ # - ALL
+ # readOnlyRootFilesystem: true
+ # runAsNonRoot: true
+ # runAsUser: 1000
+
+ ## @section Service
+ service:
+ http:
+ type: ClusterIP
+ port: 80
+ targetPort: 8081
+ name: http
+
+ resources: { }
+ # We usually recommend not to specify default resources and to leave this as a conscious
+ # choice for the user. This also increases chances charts run on environments with little
+ # resources, such as Minikube. If you do want to specify resources, uncomment the following
+ # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+ # limits:
+ # cpu: 100m
+ # memory: 128Mi
+ # requests:
+ # cpu: 100m
+ # memory: 128Mi
+
+ ingress:
+ enabled: false
+ # className: nginx
+ className:
+ annotations:
+ # kubernetes.io/ingress.class: nginx
+ path: /
+ pathType: Prefix
+ hosts:
+ # - server.example.com
+ tls: []
+ # - secretName: chart-example-tls
+ # hosts:
+ # - server.example.com
+ # Mostly for argocd or any other CI that uses `helm template | kubectl apply` or similar
+ # If helm doesn't correctly detect your ingress API version you can set it here.
+ # apiVersion: networking.k8s.io/v1
+
+ ## @section Autoscaling
+ autoscaling:
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 100
+ targetCPUUtilizationPercentage: 80
+ # targetMemoryUtilizationPercentage: 80
+
+ nodeSelector: { }
+
+ tolerations: [ ]
+
+ affinity: { }
+
+ ## @section Persistence
+ #
+ ## @param persistence.enabled Enable persistent storage
+ ## @param persistence.existingClaim Use an existing claim to store repository information
+ persistence:
+ enabled: false
+ existingClaim: my-claim
+
+ ## @section Hop
+ hop:
+ port: 8081
+ user: admin
+
+## deploy hop-web
+web:
+ enabled: true
+
+## @param replicaCount number of replicas for the statefulset
+ replicaCount: 1
+ image:
+ name: docker.io/apache/hop-web
+ pullPolicy: IfNotPresent
+ # Overrides the image tag
+ tag: "latest"
+
+ imagePullSecrets: [ ]
+
+ nameOverride: ""
+ fullnameOverride: ""
+
+ podAnnotations: { }
+
+ podSecurityContext: { }
+
+ service:
+ http:
+ type: ClusterIP
+ port: 8080
+ targetPort: 8080
+ name: http
+
+ ingress:
+ enabled: false
+ # className: nginx
+ className:
+ annotations:
+ # kubernetes.io/ingress.class: nginx
+ path: /
+ pathType: Prefix
+ hosts:
+ # - web.example.com
+ tls: []
+ # - secretName: chart-example-tls
+ # hosts:
+ # - web.example.com
+ # Mostly for argocd or any other CI that uses `helm template | kubectl apply` or similar
+ # If helm doesn't correctly detect your ingress API version you can set it here.
+ # apiVersion: networking.k8s.io/v1
+
+ autoscaling:
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 100
+ targetCPUUtilizationPercentage: 80
+ # targetMemoryUtilizationPercentage: 80
+
+ nodeSelector: { }
+
+ tolerations: [ ]
+
+ affinity: { }
\ No newline at end of file