mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-18 10:43:15 +00:00
add cert manager and ingress annotations support (#1206)
This commit is contained in:
@@ -103,7 +103,7 @@ The RustFS container runs as a non-root user `rustfs` (UID `10001`). If you run
|
|||||||
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest
|
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest
|
||||||
|
|
||||||
# Using specific version
|
# Using specific version
|
||||||
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0.alpha.68
|
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0-alpha.76
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also use Docker Compose. Using the `docker-compose.yml` file in the root directory:
|
You can also use Docker Compose. Using the `docker-compose.yml` file in the root directory:
|
||||||
|
|||||||
+6
-5
@@ -52,13 +52,17 @@ RustFS helm chart supports **standalone and distributed mode**. For standalone m
|
|||||||
| ingress.nginxAnnotations."nginx.ingress.kubernetes.io/session-cookie-hash" | string | `"sha1"` | |
|
| ingress.nginxAnnotations."nginx.ingress.kubernetes.io/session-cookie-hash" | string | `"sha1"` | |
|
||||||
| ingress.nginxAnnotations."nginx.ingress.kubernetes.io/session-cookie-max-age" | string | `"3600"` | |
|
| ingress.nginxAnnotations."nginx.ingress.kubernetes.io/session-cookie-max-age" | string | `"3600"` | |
|
||||||
| ingress.nginxAnnotations."nginx.ingress.kubernetes.io/session-cookie-name" | string | `"rustfs"` | |
|
| ingress.nginxAnnotations."nginx.ingress.kubernetes.io/session-cookie-name" | string | `"rustfs"` | |
|
||||||
| ingress.tls[0].hosts[0] | string | `"your.rustfs.com"` | |
|
|
||||||
| ingress.tls[0].secretName | string | `"rustfs-tls"` | |
|
|
||||||
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie" | string | `"true"` | |
|
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie" | string | `"true"` | |
|
||||||
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.httponly" | string | `"true"` | |
|
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.httponly" | string | `"true"` | |
|
||||||
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.name" | string | `"rustfs"` | |
|
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.name" | string | `"rustfs"` | |
|
||||||
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.samesite" | string | `"none"` | |
|
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.samesite" | string | `"none"` | |
|
||||||
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.secure" | string | `"true"` | |
|
| ingress.traefikAnnotations."traefik.ingress.kubernetes.io/service.sticky.cookie.secure" | string | `"true"` | |
|
||||||
|
| ingress.tls.enabled | bool | `false` | Enable tls and access rustfs via https. |
|
||||||
|
| ingress.tls.certManager.enabled | string | `false` | Enable cert manager support to generate certificate automatically. |
|
||||||
|
| ingress.tls.certManager.issuer.name | string | `false` | The name of cert manager issuer. |
|
||||||
|
| ingress.tls.certManager.issuer.kind | string | `false` | The kind of cert manager issuer, issuer or cluster-issuer. |
|
||||||
|
| ingress.tls.crt | string | "" | The content of certificate file. |
|
||||||
|
| ingress.tls.key | string | "" | The content of key file. |
|
||||||
| livenessProbe.failureThreshold | int | `3` | |
|
| livenessProbe.failureThreshold | int | `3` | |
|
||||||
| livenessProbe.httpGet.path | string | `"/health"` | |
|
| livenessProbe.httpGet.path | string | `"/health"` | |
|
||||||
| livenessProbe.httpGet.port | string | `"endpoint"` | |
|
| livenessProbe.httpGet.port | string | `"endpoint"` | |
|
||||||
@@ -100,9 +104,6 @@ RustFS helm chart supports **standalone and distributed mode**. For standalone m
|
|||||||
| storageclass.dataStorageSize | string | `"256Mi"` | The storage size for data PVC. |
|
| storageclass.dataStorageSize | string | `"256Mi"` | The storage size for data PVC. |
|
||||||
| storageclass.logStorageSize | string | `"256Mi"` | The storage size for logs PVC. |
|
| storageclass.logStorageSize | string | `"256Mi"` | The storage size for logs PVC. |
|
||||||
| storageclass.name | string | `"local-path"` | The name for StorageClass. |
|
| storageclass.name | string | `"local-path"` | The name for StorageClass. |
|
||||||
| tls.crt | string | `"tls.crt"` | |
|
|
||||||
| tls.enabled | bool | `false` | |
|
|
||||||
| tls.key | string | `"tls.key"` | |
|
|
||||||
| tolerations | list | `[]` | |
|
| tolerations | list | `[]` | |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ type: application
|
|||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# 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.
|
# to the chart and its templates, including the app version.
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||||
version: 1.0.3
|
version: 0.0.76
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# 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
|
# incremented each time you make changes to the application. Versions are not expected to
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{{- if and .Values.ingress.tls.enabled .Values.ingress.tls.certManager.enabled }}
|
||||||
|
{{- $host := index .Values.ingress.hosts 0 }}
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: {{ include "rustfs.fullname" . }}-tls
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
spec:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName }}
|
||||||
|
issuerRef:
|
||||||
|
name: {{ .Values.ingress.tls.certManager.issuer.name }}
|
||||||
|
kind: {{ .Values.ingress.tls.certManager.issuer.kind }}
|
||||||
|
dnsNames:
|
||||||
|
- {{ $host.host }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,4 +1,14 @@
|
|||||||
{{- if .Values.ingress.enabled -}}
|
{{- if .Values.ingress.enabled -}}
|
||||||
|
{{- $secretName := .Values.ingress.tls.secretName }}
|
||||||
|
{{- $ingressAnnotations := dict }}
|
||||||
|
{{- if eq .Values.ingress.className "nginx" }}
|
||||||
|
{{- $ingressAnnotations = merge $ingressAnnotations (.Values.ingress.nginxAnnotations | default dict) }}
|
||||||
|
{{- else if eq .Values.ingress.className "" }}
|
||||||
|
{{- $ingressAnnotations = merge $ingressAnnotations (.Values.ingress.customAnnoations | default dict) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingress.tls.certManager.enabled }}
|
||||||
|
{{- $ingressAnnotations = merge $ingressAnnotations (.Values.ingress.certManagerAnnotations | default dict) }}
|
||||||
|
{{- end }}
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
@@ -8,25 +18,23 @@ metadata:
|
|||||||
{{- with .Values.commonLabels }}
|
{{- with .Values.commonLabels }}
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if eq .Values.ingress.className "nginx" }}
|
{{- with $ingressAnnotations }}
|
||||||
{{- with .Values.ingress.nginxAnnotations }}
|
|
||||||
annotations:
|
annotations:
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
|
||||||
spec:
|
spec:
|
||||||
{{- with .Values.ingress.className }}
|
{{- with .Values.ingress.className }}
|
||||||
ingressClassName: {{ . }}
|
ingressClassName: {{ . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.tls.enabled }}
|
{{- if .Values.ingress.tls.enabled }}
|
||||||
tls:
|
tls:
|
||||||
{{- range .Values.ingress.tls }}
|
{{- range .Values.ingress.hosts }}
|
||||||
- hosts:
|
- hosts:
|
||||||
{{- range .hosts }}
|
{{- range .hosts }}
|
||||||
- {{ . | quote }}
|
- {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
secretName: {{ .secretName }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
secretName: {{ $secretName }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
rules:
|
rules:
|
||||||
{{- range .Values.ingress.hosts }}
|
{{- range .Values.ingress.hosts }}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{{- if .Values.tls.enabled }}
|
{{- if and .Values.ingress.tls.enabled (not .Values.ingress.tls.certManager.enabled) }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
@@ -7,6 +7,6 @@ metadata:
|
|||||||
{{- toYaml .Values.commonLabels | nindent 4 }}
|
{{- toYaml .Values.commonLabels | nindent 4 }}
|
||||||
type: kubernetes.io/tls
|
type: kubernetes.io/tls
|
||||||
data:
|
data:
|
||||||
tls.crt : {{ .Values.tls.crt | b64enc | quote }}
|
tls.crt : {{ .Values.ingress.tls.crt | b64enc | quote }}
|
||||||
tls.key : {{ .Values.tls.key | b64enc | quote }}
|
tls.key : {{ .Values.ingress.tls.key | b64enc | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
+18
-12
@@ -11,7 +11,7 @@ image:
|
|||||||
# This sets the pull policy for images.
|
# This sets the pull policy for images.
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
# Overrides the image tag whose default is the chart appVersion.
|
||||||
tag: "latest"
|
tag: "1.0.0-alpha.73"
|
||||||
|
|
||||||
# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
@@ -97,7 +97,7 @@ service:
|
|||||||
# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/
|
# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
className: "traefik" # Specify the classname, traefik or nginx. Different classname has different annotations for session sticky.
|
className: "nginx" # Specify the classname, traefik or nginx. Different classname has different annotations for session sticky.
|
||||||
traefikAnnotations:
|
traefikAnnotations:
|
||||||
traefik.ingress.kubernetes.io/service.sticky.cookie: "true"
|
traefik.ingress.kubernetes.io/service.sticky.cookie: "true"
|
||||||
traefik.ingress.kubernetes.io/service.sticky.cookie.httponly: "true"
|
traefik.ingress.kubernetes.io/service.sticky.cookie.httponly: "true"
|
||||||
@@ -110,20 +110,26 @@ ingress:
|
|||||||
nginx.ingress.kubernetes.io/session-cookie-hash: sha1
|
nginx.ingress.kubernetes.io/session-cookie-hash: sha1
|
||||||
nginx.ingress.kubernetes.io/session-cookie-max-age: "3600"
|
nginx.ingress.kubernetes.io/session-cookie-max-age: "3600"
|
||||||
nginx.ingress.kubernetes.io/session-cookie-name: rustfs
|
nginx.ingress.kubernetes.io/session-cookie-name: rustfs
|
||||||
|
certManagerAnnotations:
|
||||||
|
{} # Specify cert manager issuer annotations,cert-manager.io/issuer or cert-manager.io/cluster-issuer.
|
||||||
|
# cert-manager.io/issuer: "letsencrypt-staging"
|
||||||
|
customAnnotations: # Specify custom annotations
|
||||||
|
{} # Customize annotations
|
||||||
hosts:
|
hosts:
|
||||||
- host: your.rustfs.com
|
- host: xmg.rustfs.com
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: ImplementationSpecific
|
pathType: Prefix
|
||||||
tls:
|
tls:
|
||||||
- secretName: rustfs-tls
|
enabled: false # Enable tls and access rustfs via https.
|
||||||
hosts:
|
certManager:
|
||||||
- your.rustfs.com
|
enabled: false # Enable certmanager to generate certificate for rustfs, default false.
|
||||||
|
issuer:
|
||||||
tls:
|
name: letsencrypt-staging # Specify cert manager issuer name
|
||||||
enabled: false
|
kind: Issuer # Specify cert manager issuer kind, Issuer or ClusterIssuer.
|
||||||
crt: tls.crt
|
secretName: secret-tls
|
||||||
key: tls.key
|
crt: tls.crt
|
||||||
|
key: tls.key
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||||
|
|||||||
Reference in New Issue
Block a user