Add ClusterIP and NodePort deployment
This commit is contained in:
parent
98c1114244
commit
fa9a9767c9
10 changed files with 525 additions and 31 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -4,4 +4,5 @@ venv
|
|||
.docker_data
|
||||
__pycache__
|
||||
.pytest_cache
|
||||
*.pyc
|
||||
*.pyc
|
||||
.env
|
||||
|
|
|
|||
208
deploy/kubernetes/easyhaproxy-clusterip.yml
Normal file
208
deploy/kubernetes/easyhaproxy-clusterip.yml
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
---
|
||||
# Source: easyhaproxy/templates/serviceaccount.yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
---
|
||||
# Source: easyhaproxy/templates/clusterrole.yaml
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
# - configmaps
|
||||
# - endpoints
|
||||
# - nodes
|
||||
- pods
|
||||
- services
|
||||
- namespaces
|
||||
# - events
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- "extensions"
|
||||
- "networking.k8s.io"
|
||||
resources:
|
||||
- ingresses
|
||||
# - ingresses/status
|
||||
# - ingressclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
# - apiGroups:
|
||||
# - "extensions"
|
||||
# - "networking.k8s.io"
|
||||
# resources:
|
||||
# - ingresses/status
|
||||
# verbs:
|
||||
# - update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
# - watch
|
||||
# - create
|
||||
# - patch
|
||||
# - update
|
||||
# - apiGroups:
|
||||
# - "discovery.k8s.io"
|
||||
# resources:
|
||||
# - endpointslices
|
||||
# verbs:
|
||||
# - get
|
||||
# - list
|
||||
# - watch
|
||||
---
|
||||
# Source: easyhaproxy/templates/clusterrolebinding.yaml
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: ingress-easyhaproxy
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
---
|
||||
# Source: easyhaproxy/templates/service.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
annotations:
|
||||
{}
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
|
||||
- name: https
|
||||
port: 443
|
||||
|
||||
- name: stats
|
||||
port: 1936
|
||||
|
||||
|
||||
|
||||
selector:
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
---
|
||||
# Source: easyhaproxy/templates/deployment.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: easyhaproxy/node
|
||||
operator: In
|
||||
values:
|
||||
- master
|
||||
serviceAccountName: ingress-easyhaproxy
|
||||
securityContext:
|
||||
{}
|
||||
containers:
|
||||
- name: easyhaproxy
|
||||
securityContext:
|
||||
{}
|
||||
image: "byjg/easy-haproxy:test"
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
|
||||
- name: https
|
||||
containerPort: 443
|
||||
|
||||
- name: stats
|
||||
containerPort: 1936
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
env:
|
||||
- name: EASYHAPROXY_DISCOVER
|
||||
value: kubernetes
|
||||
- name: HAPROXY_USERNAME
|
||||
value: admin
|
||||
- name: HAPROXY_PASSWORD
|
||||
value: password
|
||||
- name: EASYHAPROXY_REFRESH_CONF
|
||||
value: "10"
|
||||
- name: HAPROXY_CUSTOMERRORS
|
||||
value: "true"
|
||||
- name: EASYHAPROXY_SSL_MODE
|
||||
value: loose
|
||||
- name: EASYHAPROXY_LOG_LEVEL
|
||||
value: DEBUG
|
||||
- name: HAPROXY_LOG_LEVEL
|
||||
value: DEBUG
|
||||
- name: CERTBOT_LOG_LEVEL
|
||||
value: DEBUG
|
||||
|
|
@ -6,7 +6,7 @@ metadata:
|
|||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.0
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
|
|
@ -19,7 +19,7 @@ metadata:
|
|||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.0
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
|
|
@ -85,7 +85,7 @@ metadata:
|
|||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.0
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
|
|
@ -106,7 +106,7 @@ metadata:
|
|||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.0
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
|
|
@ -151,7 +151,9 @@ spec:
|
|||
containerPort: 1936
|
||||
hostPort: 1936
|
||||
resources:
|
||||
{}
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
env:
|
||||
- name: EASYHAPROXY_DISCOVER
|
||||
value: kubernetes
|
||||
|
|
@ -170,4 +172,4 @@ spec:
|
|||
- name: HAPROXY_LOG_LEVEL
|
||||
value: DEBUG
|
||||
- name: CERTBOT_LOG_LEVEL
|
||||
value: DEBUG
|
||||
value: DEBUG
|
||||
208
deploy/kubernetes/easyhaproxy-nodeport.yml
Normal file
208
deploy/kubernetes/easyhaproxy-nodeport.yml
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
---
|
||||
# Source: easyhaproxy/templates/serviceaccount.yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
---
|
||||
# Source: easyhaproxy/templates/clusterrole.yaml
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
# - configmaps
|
||||
# - endpoints
|
||||
# - nodes
|
||||
- pods
|
||||
- services
|
||||
- namespaces
|
||||
# - events
|
||||
- serviceaccounts
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- "extensions"
|
||||
- "networking.k8s.io"
|
||||
resources:
|
||||
- ingresses
|
||||
# - ingresses/status
|
||||
# - ingressclasses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
# - apiGroups:
|
||||
# - "extensions"
|
||||
# - "networking.k8s.io"
|
||||
# resources:
|
||||
# - ingresses/status
|
||||
# verbs:
|
||||
# - update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
# - watch
|
||||
# - create
|
||||
# - patch
|
||||
# - update
|
||||
# - apiGroups:
|
||||
# - "discovery.k8s.io"
|
||||
# resources:
|
||||
# - endpointslices
|
||||
# verbs:
|
||||
# - get
|
||||
# - list
|
||||
# - watch
|
||||
---
|
||||
# Source: easyhaproxy/templates/clusterrolebinding.yaml
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: ingress-easyhaproxy
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
---
|
||||
# Source: easyhaproxy/templates/service.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
annotations:
|
||||
{}
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
nodePort: 31080
|
||||
- name: https
|
||||
port: 443
|
||||
nodePort: 31443
|
||||
- name: stats
|
||||
port: 1936
|
||||
nodePort: 31936
|
||||
|
||||
|
||||
selector:
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
---
|
||||
# Source: easyhaproxy/templates/deployment.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ingress-easyhaproxy
|
||||
namespace: easyhaproxy
|
||||
labels:
|
||||
helm.sh/chart: easyhaproxy-0.1.2
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
app.kubernetes.io/version: "test"
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: easyhaproxy
|
||||
app.kubernetes.io/instance: ingress
|
||||
spec:
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
requiredDuringSchedulingIgnoredDuringExecution:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: easyhaproxy/node
|
||||
operator: In
|
||||
values:
|
||||
- master
|
||||
serviceAccountName: ingress-easyhaproxy
|
||||
securityContext:
|
||||
{}
|
||||
containers:
|
||||
- name: easyhaproxy
|
||||
securityContext:
|
||||
{}
|
||||
image: "byjg/easy-haproxy:test"
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
|
||||
- name: https
|
||||
containerPort: 443
|
||||
|
||||
- name: stats
|
||||
containerPort: 1936
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
env:
|
||||
- name: EASYHAPROXY_DISCOVER
|
||||
value: kubernetes
|
||||
- name: HAPROXY_USERNAME
|
||||
value: admin
|
||||
- name: HAPROXY_PASSWORD
|
||||
value: password
|
||||
- name: EASYHAPROXY_REFRESH_CONF
|
||||
value: "10"
|
||||
- name: HAPROXY_CUSTOMERRORS
|
||||
value: "true"
|
||||
- name: EASYHAPROXY_SSL_MODE
|
||||
value: loose
|
||||
- name: EASYHAPROXY_LOG_LEVEL
|
||||
value: DEBUG
|
||||
- name: HAPROXY_LOG_LEVEL
|
||||
value: DEBUG
|
||||
- name: CERTBOT_LOG_LEVEL
|
||||
value: DEBUG
|
||||
|
|
@ -2,15 +2,19 @@
|
|||
|
||||
## Setup Kubernetes EasyHAProxy
|
||||
|
||||
EasyHAProxy is a Daemonset and it will query all ingress definitions with the annotation `kubernetes.io/ingress.class: easyhaproxy-ingress`.
|
||||
EasyHAProxy query all ingress definitions with the annotation `kubernetes.io/ingress.class: easyhaproxy-ingress`.Once find the annotation, it will immediatelly setup HAProxy and start to serve it.
|
||||
|
||||
Once find the annotation, it will immediatelly setup HAProxy and start to serve it.
|
||||
There are three installation modes:
|
||||
|
||||
- DaemonSet: It will expose the ports 80, 443 and 1936
|
||||
- NodePort: It will expose the ports 31080, 31443 and 31936
|
||||
- ClusterIP it will node expose any port. The HAProxy will be accessible only inside the cluster.
|
||||
|
||||
To install the daemonset in your cluster follow these steps:
|
||||
|
||||
1. Identify the node where your EasyHAProxy container will run.
|
||||
### 1) Identify the node where your EasyHAProxy container will run.
|
||||
|
||||
EasyHAProxy is a daemonset but it will be limited to a single node. To understand that see [limitations](limitations.md) page.
|
||||
Doesn't matter if you choose DaemonSet or ClusterIP, EasyHAProxy will be limited to a single node. To understand that see [limitations](limitations.md) page.
|
||||
|
||||
```bash
|
||||
$ kubectl get nodes
|
||||
|
|
@ -20,28 +24,28 @@ node-01 Ready <none> 561d v1.21.13-3
|
|||
node-02 Ready <none> 561d v1.21.13-3
|
||||
```
|
||||
|
||||
2. Add the EasyHAProxy label to the node
|
||||
Add the EasyHAProxy label to the node
|
||||
|
||||
```bash
|
||||
kubectl label nodes node-01 "easyhaproxy/node=master"
|
||||
```
|
||||
|
||||
3. Install EasyHAProxy
|
||||
### 2) Install EasyHAProxy
|
||||
|
||||
There are two ways to install EasyHAProxy in a Kubernetes cluster. You can use Kubernetes Manifest or Helm 3.
|
||||
|
||||
3.1. Using Kubernetes Manifest
|
||||
#### 2.1.) Using Kubernetes Manifest
|
||||
|
||||
```bash
|
||||
kubectl create namespace easyhaproxy
|
||||
|
||||
kubectl apply -f \
|
||||
https://raw.githubusercontent.com/haproxytech/kubernetes-ingress/master/deploy/haproxy-ingress-daemonset.yaml
|
||||
https://raw.githubusercontent.com/byjg/docker-easy-haproxy/kubernetes/deploy/kubernetes/easyhaproxy-daemonset.yml
|
||||
```
|
||||
|
||||
You can configure the behavior of the EasyHAProxy by setup specific environment variables. To get a list of the variables please follow the [docker container environment](docker-environment.md)
|
||||
|
||||
3.2. Using HELM 3
|
||||
#### 2.2) Using HELM 3
|
||||
|
||||
Minimal configuration
|
||||
|
||||
|
|
@ -49,6 +53,7 @@ Minimal configuration
|
|||
helm repo add byjg https://opensource.byjg.com/helm
|
||||
helm repo update byjg
|
||||
kubectl create namespace easyhaproxy
|
||||
|
||||
helm upgrade --install ingress byjg/easyhaproxy \
|
||||
--namespace easyhaproxy \
|
||||
--set resources.requests.cpu=100m \
|
||||
|
|
@ -70,7 +75,17 @@ easyhaproxy:
|
|||
easyhaproxy: DEBUG
|
||||
haproxy: DEBUG
|
||||
|
||||
listen_extra_ports: []
|
||||
service:
|
||||
create: false # If false, it will create a Daemonset with hostPort. The easiest.
|
||||
type: ClusterIP # or NodePort
|
||||
annotations: {}
|
||||
|
||||
binding:
|
||||
ports:
|
||||
http: 80
|
||||
https: 443
|
||||
stats: 1936
|
||||
additionalPorts: []
|
||||
|
||||
# Make sure to create this
|
||||
masterNode:
|
||||
|
|
@ -179,8 +194,5 @@ spec:
|
|||
...
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
----
|
||||
[Open source ByJG](http://opensource.byjg.com)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ type: application
|
|||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.1
|
||||
version: 0.1.2
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
kind: {{ ternary "Deployment" "DaemonSet" .Values.service.create }}
|
||||
metadata:
|
||||
name: {{ include "easyhaproxy.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
|
|
@ -36,17 +36,17 @@ spec:
|
|||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
hostPort: 80
|
||||
{{ if not .Values.service.create }}hostPort: {{ .Values.binding.ports.http }}{{ end }}
|
||||
- name: https
|
||||
containerPort: 443
|
||||
hostPort: 443
|
||||
{{ if not .Values.service.create }}hostPort: {{ .Values.binding.ports.https }}{{ end }}
|
||||
- name: stats
|
||||
containerPort: 1936
|
||||
hostPort: 1936
|
||||
{{ range .Values.listen_extra_ports }}
|
||||
- name: extra{{ . }}
|
||||
containerPort: {{ . }}
|
||||
hostPort: {{ . }}
|
||||
{{ if not .Values.service.create }}hostPort: {{ .Values.binding.ports.stats }}{{ end }}
|
||||
{{- range $port := .Values.binding.additionalPorts }}
|
||||
- name: extra{{ $port }}
|
||||
containerPort: {{ $port }}
|
||||
{{ if not $.Values.service.create }}hostPort: {{ $port }}{{ end }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
|
|
|
|||
34
helm/easyhaproxy/templates/service.yaml
Normal file
34
helm/easyhaproxy/templates/service.yaml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{{ if .Values.service.create }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
metadata:
|
||||
name: {{ include "easyhaproxy.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "easyhaproxy.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
{{- toYaml .Values.service.annotations | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
{{ if eq .Values.service.type "NodePort" }}nodePort: {{ .Values.binding.ports.http }}{{ end }}
|
||||
- name: https
|
||||
port: 443
|
||||
{{ if eq .Values.service.type "NodePort" }}nodePort: {{ .Values.binding.ports.https }}{{ end }}
|
||||
- name: stats
|
||||
port: 1936
|
||||
{{ if eq .Values.service.type "NodePort" }}nodePort: {{ .Values.binding.ports.stats }}{{ end }}
|
||||
{{- range $port := .Values.binding.additionalPorts }}
|
||||
- name: extra{{ $port }}
|
||||
port: {{ $port }}
|
||||
{{ if eq $.Values.service.type "NodePort" }}nodePort: {{ $port }}{{ end }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
selector:
|
||||
{{- include "easyhaproxy.selectorLabels" . | nindent 4 }}
|
||||
{{ end }}
|
||||
19
helm/easyhaproxy/values.schema.json
Normal file
19
helm/easyhaproxy/values.schema.json
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"required": [],
|
||||
"properties": {
|
||||
"service": {
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"properties": {
|
||||
"create": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": ["ClusterIP", "NodePort"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14,6 +14,18 @@ imagePullSecrets: []
|
|||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
service:
|
||||
create: false # If false, it will create a Daemonset with hostPort. The easiest.
|
||||
type: ClusterIP # or NodePort
|
||||
annotations: {}
|
||||
|
||||
binding:
|
||||
ports:
|
||||
http: 80
|
||||
https: 443
|
||||
stats: 1936
|
||||
additionalPorts: []
|
||||
|
||||
serviceAccount:
|
||||
create: true
|
||||
annotations: {}
|
||||
|
|
@ -58,8 +70,6 @@ easyhaproxy:
|
|||
easyhaproxy: DEBUG
|
||||
haproxy: DEBUG
|
||||
|
||||
listen_extra_ports: []
|
||||
|
||||
# Make sure to create this
|
||||
masterNode:
|
||||
label: easyhaproxy/node
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue