feat(common): Release v2.4.0 (#245)

Signed-off-by: Christopher Larivière <lariviere.c@gmail.com>
Co-authored-by: Christopher Larivière <lariviere.c@gmail.com>
Co-authored-by: Markus Reiter <me@reitermark.us>
This commit is contained in:
Bernd Schorgers 2023-12-10 09:56:08 +01:00 committed by GitHub
parent 44b1665b61
commit 3d3028b889
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 364 additions and 61 deletions

View file

@ -4,7 +4,7 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
@ -25,7 +25,7 @@ controllers:
- third-container - third-container
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
env: env:
HTTP_PORT: 8888 HTTP_PORT: 8888
HTTPS_PORT: 9998 HTTPS_PORT: 9998
@ -34,7 +34,7 @@ controllers:
dependsOn: main dependsOn: main
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
second-controller: second-controller:
type: deployment type: deployment
@ -42,7 +42,7 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
HTTP_PORT: 8889 HTTP_PORT: 8889

View file

@ -4,7 +4,7 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
probes: probes:

View file

@ -7,7 +7,7 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
service: service:

View file

@ -4,7 +4,7 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
service: service:

View file

@ -59,4 +59,5 @@ persistence:
type: persistentVolumeClaim type: persistentVolumeClaim
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 1Gi size: 1Gi
mountPath: /config globalMounts:
- path: /config

View file

@ -31,3 +31,17 @@ tests:
equal: equal:
path: spec.template.spec.containers[0].image path: spec.template.spec.containers[0].image
value: ghcr.io/mendhak/http-https-echo:1.23 value: ghcr.io/mendhak/http-https-echo:1.23
- it: template tag should pass
set:
controllers.main.containers.main.image:
repository: ghcr.io/mendhak/http-https-echo
tag: "{{.Chart.Version}}"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.containers[0].image
value: ghcr.io/mendhak/http-https-echo:1.0.0

View file

@ -37,13 +37,13 @@ tests:
second-container: second-container:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
second: second:
containers: containers:
first-container: first-container:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
persistence: persistence:
data: data:
@ -268,7 +268,7 @@ tests:
second-container: second-container:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
asserts: asserts:
- documentIndex: &StatefulSetDoc 0 - documentIndex: &StatefulSetDoc 0
isKind: isKind:

View file

@ -0,0 +1,38 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: container workingDir override
templates:
- common.yaml
tests:
- it: default should pass
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
notExists:
path: spec.template.spec.containers[0].workingDir
- it: string should pass
set:
controllers.main.containers.main.workingDir: /work
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.containers[0].workingDir
value: /work
- it: quoted string should pass
set:
controllers.main.containers.main.workingDir: "/work"
asserts:
- documentIndex: 0
isKind:
of: Deployment
- documentIndex: 0
equal:
path: spec.template.spec.containers[0].workingDir
value: /work

View file

@ -26,7 +26,7 @@ tests:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
asserts: asserts:
- hasDocuments: - hasDocuments:
count: 3 count: 3
@ -62,7 +62,7 @@ tests:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
asserts: asserts:
- hasDocuments: - hasDocuments:
count: 3 count: 3

View file

@ -38,13 +38,13 @@ tests:
second-container: second-container:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
second: second:
containers: containers:
first-container: first-container:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
persistence: persistence:
config: config:

View file

@ -1,6 +1,6 @@
--- ---
# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json # yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json
suite: ingress service reference suite: route service reference
templates: templates:
- common.yaml - common.yaml
tests: tests:
@ -11,6 +11,14 @@ tests:
parentRefs: parentRefs:
- name: parentName - name: parentName
namespace: parentNamespace namespace: parentNamespace
rules:
- backendRefs:
- group: ""
kind: Service
name: RELEASE-NAME
namespace: NAMESPACE
port: 8080
weight: 1
asserts: asserts:
- documentIndex: &HTTPRouteDocument 2 - documentIndex: &HTTPRouteDocument 2
isKind: isKind:
@ -54,3 +62,55 @@ tests:
namespace: serviceNamespace namespace: serviceNamespace
port: 1234 port: 1234
weight: 123 weight: 123
- it: custom service reference with filter should fail
set:
route.main:
enabled: true
parentRefs:
- name: parentName
namespace: parentNamespace
rules:
- backendRefs:
- group: test
name: pathService
port: 1234
namespace: serviceNamespace
weight: 123
filters:
- type: RequestRedirect
requestRedirect:
scheme: https
statusCode: 301
asserts:
- failedTemplate:
errorMessage: "backend refs and request redirect filters cannot co-exist."
- it: custom service with filter should pass
set:
route.main:
enabled: true
parentRefs:
- name: parentName
namespace: parentNamespace
rules:
- filters:
- type: RequestRedirect
requestRedirect:
scheme: https
statusCode: 301
asserts:
- documentIndex: &HTTPRouteDocument 2
isKind:
of: HTTPRoute
- documentIndex: *HTTPRouteDocument
equal:
path: spec.rules[0].filters[0]
value:
type: RequestRedirect
requestRedirect:
scheme: https
statusCode: 301
- documentIndex: *HTTPRouteDocument
notExists:
path: spec.rules[0].backendRefs[0]

View file

@ -73,6 +73,8 @@ tests:
- backendRefs: - backendRefs:
- name: test - name: test
namespace: test namespace: test
kind: Service
weight: 1
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@ -83,6 +85,8 @@ tests:
path: path:
type: ReplacePrefixMatch type: ReplacePrefixMatch
replacePrefixMatch: "" replacePrefixMatch: ""
timeouts:
backendRequest: 30s
grpc: grpc:
enabled: true enabled: true
kind: GRPCRoute kind: GRPCRoute
@ -93,6 +97,8 @@ tests:
- backendRefs: - backendRefs:
- name: test - name: test
namespace: test namespace: test
kind: Service
weight: 1
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@ -113,6 +119,8 @@ tests:
- backendRefs: - backendRefs:
- name: test - name: test
namespace: test namespace: test
kind: Service
weight: 1
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@ -133,6 +141,8 @@ tests:
- backendRefs: - backendRefs:
- name: test - name: test
namespace: test namespace: test
kind: Service
weight: 1
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@ -153,6 +163,8 @@ tests:
- backendRefs: - backendRefs:
- name: test - name: test
namespace: test namespace: test
kind: Service
weight: 1
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@ -229,6 +241,9 @@ tests:
- documentIndex: &HTTPRouteDocument 6 - documentIndex: &HTTPRouteDocument 6
notExists: notExists:
path: spec.rules[0].filters path: spec.rules[0].filters
- documentIndex: &HTTPRouteDocument 6
notExists:
path: spec.rules[0].timeouts
- it: hostnames shouldn't be used for TCPRoutes and UDPRoutes - it: hostnames shouldn't be used for TCPRoutes and UDPRoutes
set: set:
@ -291,3 +306,49 @@ tests:
equal: equal:
path: spec.parentRefs[0].sectionName path: spec.parentRefs[0].sectionName
value: parentSection value: parentSection
- it: timeouts should only be used for HTTPRoutes
set:
route:
main:
enabled: true
kind: HTTPRoute
parentRefs:
- name: parentName
namespace: parentNamespace
rules:
- backendRefs:
- name: test
namespace: test
timeouts:
backendRequest: 30s
grpc:
enabled: true
kind: GRPCRoute
parentRefs:
- name: parentName
namespace: parentNamespace
rules:
- backendRefs:
- name: test
namespace: test
matches:
- path:
type: PathPrefix
value: /test
timeouts:
backendRequest: 10s
asserts:
- documentIndex: &HTTPRouteDocument 2
isKind:
of: GRPCRoute
- documentIndex: &HTTPRouteDocument 2
notExists:
path: spec.rules[0].timeouts.backendRequest
- documentIndex: &HTTPRouteDocument 3
isKind:
of: HTTPRoute
- documentIndex: &HTTPRouteDocument 3
equal:
path: spec.rules[0].timeouts.backendRequest
value: 30s

View file

@ -5,7 +5,7 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
service: service:

View file

@ -3,7 +3,7 @@ apiVersion: v2
name: common name: common
description: Function library for Helm charts description: Function library for Helm charts
type: library type: library
version: 2.3.0 version: 2.4.0
kubeVersion: ">=1.22.0-0" kubeVersion: ">=1.22.0-0"
keywords: keywords:
- common - common
@ -16,19 +16,30 @@ annotations:
artifacthub.io/changes: |- artifacthub.io/changes: |-
- kind: added - kind: added
description: |- description: |-
Add support for `appProtocol` in Kubernetes services. Add support for `timeouts` in HTTPRoute.
- kind: added - kind: added
description: |- description: |-
Add support for route filters for HTTPRoute and GRPCRoute. Add support for `workingDir` for containers.
- kind: added
description: |-
Add support `dataSource` and `dataSourceRef` fields in StatefulSet volumeClaimTemplates.
- kind: added
description: |-
Add support `dataSource` and `dataSourceRef` fields in persistentVolumeClaim persistence items.
- kind: fixed - kind: fixed
description: |- description: |-
GRPCRoute support for matches was not supported. Defaulting image tags to chart.Appversion was removed without a proper alternative
- kind: fixed - kind: fixed
description: |- description: |-
`valuefrom`-style environment variables can now use Helm templating again. Using RequestRedirect is not allowed with BackendRefs in Routes.
- kind: fixed
description: |-
StatefulSet objects would not always fall back to proper defaults and error out
- kind: changed
description: |-
routes will no longer auto target its service.
It will need to be explicitly defined as below
```yaml
- backendRefs:
- group: ""
kind: Service
name: foo
namespace: foo-namespace
port: 8080
weight: 1
```

View file

@ -175,7 +175,7 @@ The following table contains an overview of available values and their descripti
| route.main.labels | object | `{}` | Provide additional labels which may be required. | | route.main.labels | object | `{}` | Provide additional labels which may be required. |
| route.main.nameOverride | string | `nil` | Override the name suffix that is used for this route. | | route.main.nameOverride | string | `nil` | Override the name suffix that is used for this route. |
| route.main.parentRefs | list | `[{"group":"gateway.networking.k8s.io","kind":"Gateway","name":null,"namespace":null,"sectionName":null}]` | Configure the resource the route attaches to. | | route.main.parentRefs | list | `[{"group":"gateway.networking.k8s.io","kind":"Gateway","name":null,"namespace":null,"sectionName":null}]` | Configure the resource the route attaches to. |
| route.main.rules | list | `[{"backendRefs":[{"group":"","kind":"Service","name":"main","namespace":null,"port":null,"weight":1}],"filters":[],"matches":[{"path":{"type":"PathPrefix","value":"/"}}]}]` | Configure rules for routing. Defaults to the primary service. | | route.main.rules | list | `[{"backendRefs":[{"group":"","kind":"Service","name":"main","namespace":null,"port":null,"weight":1}],"timeouts":{}"filters":[],"matches":[{"path":{"type":"PathPrefix","value":"/"}}]}]` | Configure rules for routing. Defaults to the primary service. |
| route.main.rules[0].backendRefs | list | `[{"group":"","kind":"Service","name":"main","namespace":null,"port":null,"weight":1}]` | Configure backends where matching requests should be sent. | | route.main.rules[0].backendRefs | list | `[{"group":"","kind":"Service","name":"main","namespace":null,"port":null,"weight":1}]` | Configure backends where matching requests should be sent. |
| secrets | object | See below | Use this to populate secrets with the values you specify. Be aware that these values are not encrypted by default, and could therefore visible to anybody with access to the values.yaml file. Additional Secrets can be added by adding a dictionary key similar to the 'secret' object. | | secrets | object | See below | Use this to populate secrets with the values you specify. Be aware that these values are not encrypted by default, and could therefore visible to anybody with access to the values.yaml file. Additional Secrets can be added by adding a dictionary key similar to the 'secret' object. |
| secrets.secret.annotations | object | `{}` | Annotations to add to the Secret | | secrets.secret.annotations | object | `{}` | Annotations to add to the Secret |

View file

@ -24,9 +24,6 @@ within the common library.
-}} -}}
--- ---
apiVersion: {{ $apiVersion }} apiVersion: {{ $apiVersion }}
{{- if and (ne $routeKind "GRPCRoute") (ne $routeKind "HTTPRoute") (ne $routeKind "TCPRoute") (ne $routeKind "TLSRoute") (ne $routeKind "UDPRoute") }}
{{- fail (printf "Not a valid route kind (%s)" $routeKind) }}
{{- end }}
kind: {{ $routeKind }} kind: {{ $routeKind }}
metadata: metadata:
name: {{ $routeObject.name }} name: {{ $routeObject.name }}
@ -79,5 +76,11 @@ spec:
{{- toYaml . | nindent 6 }} {{- toYaml . | nindent 6 }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- if (eq $routeKind "HTTPRoute") }}
{{- with .timeouts }}
timeouts:
{{- toYaml . | nindent 6 }}
{{- end }}
{{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View file

@ -29,10 +29,10 @@ metadata:
spec: spec:
revisionHistoryLimit: {{ $statefulsetObject.revisionHistoryLimit }} revisionHistoryLimit: {{ $statefulsetObject.revisionHistoryLimit }}
replicas: {{ $statefulsetObject.replicas }} replicas: {{ $statefulsetObject.replicas }}
podManagementPolicy: {{ default "OrderedReady" $statefulsetObject.statefulset.podManagementPolicy }} podManagementPolicy: {{ dig "statefulset" "podManagementPolicy" "OrderedReady" $statefulsetObject }}
updateStrategy: updateStrategy:
type: {{ $statefulsetObject.strategy }} type: {{ $statefulsetObject.strategy }}
{{- if and (eq $statefulsetObject.strategy "RollingUpdate") $statefulsetObject.rollingUpdate.partition }} {{- if and (eq $statefulsetObject.strategy "RollingUpdate") (dig "rollingUpdate" "partition" nil $statefulsetObject) }}
rollingUpdate: rollingUpdate:
partition: {{ $statefulsetObject.rollingUpdate.partition }} partition: {{ $statefulsetObject.rollingUpdate.partition }}
{{- end }} {{- end }}

View file

@ -17,6 +17,9 @@ command: {{ . | trim | nindent 2 }}
{{- end -}} {{- end -}}
{{- with (include "bjw-s.common.lib.container.field.args" (dict "ctx" $ctx) | trim) }} {{- with (include "bjw-s.common.lib.container.field.args" (dict "ctx" $ctx) | trim) }}
args: {{ . | trim | nindent 2 }} args: {{ . | trim | nindent 2 }}
{{- end -}}
{{- with $containerObject.workingDir }}
workingDir: {{ . | trim }}
{{- end -}} {{- end -}}
{{- with $containerObject.securityContext }} {{- with $containerObject.securityContext }}
securityContext: {{ toYaml . | trim | nindent 2 }} securityContext: {{ toYaml . | trim | nindent 2 }}

View file

@ -8,12 +8,18 @@ Convert container values to an object
{{- $_ := set $objectValues "identifier" $identifier -}} {{- $_ := set $objectValues "identifier" $identifier -}}
{{- /* Convert float64 image tags to string */ -}} {{- /* Process image tags */ -}}
{{- if kindIs "map" $objectValues.image -}} {{- if kindIs "map" $objectValues.image -}}
{{- $imageTag := dig "image" "tag" "" $objectValues -}} {{- $imageTag := dig "image" "tag" "" $objectValues -}}
{{- /* Convert float64 image tags to string */ -}}
{{- if kindIs "float64" $imageTag -}} {{- if kindIs "float64" $imageTag -}}
{{- $_ := set $objectValues.image "tag" ($imageTag | toString) -}} {{- $imageTag = $imageTag | toString -}}
{{- end -}} {{- end -}}
{{- /* Process any templates in the tag */ -}}
{{- $imageTag = tpl $imageTag $rootContext -}}
{{- $_ := set $objectValues.image "tag" $imageTag -}}
{{- end -}} {{- end -}}
{{- /* Return the container object */ -}} {{- /* Return the container object */ -}}

View file

@ -7,7 +7,7 @@ Image used by the container.
{{- $containerObject := $ctx.containerObject -}} {{- $containerObject := $ctx.containerObject -}}
{{- $imageRepo := $containerObject.image.repository -}} {{- $imageRepo := $containerObject.image.repository -}}
{{- $imageTag := default $rootContext.Chart.AppVersion $containerObject.image.tag -}} {{- $imageTag := $containerObject.image.tag -}}
{{- if and $imageRepo $imageTag -}} {{- if and $imageRepo $imageTag -}}
{{- printf "%s:%s" $imageRepo $imageTag -}} {{- printf "%s:%s" $imageRepo $imageTag -}}

View file

@ -19,7 +19,7 @@ Returns the value for containers
{{- range $key, $containerValues := $enabledContainers -}} {{- range $key, $containerValues := $enabledContainers -}}
{{- /* Create object from the container values */ -}} {{- /* Create object from the container values */ -}}
{{- $containerObject := (include "bjw-s.common.lib.container.valuesToObject" (dict "rootContext" $ "id" $key "values" $containerValues)) | fromYaml -}} {{- $containerObject := (include "bjw-s.common.lib.container.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $containerValues)) | fromYaml -}}
{{- /* Perform validations on the Container before rendering */ -}} {{- /* Perform validations on the Container before rendering */ -}}
{{- include "bjw-s.common.lib.container.validate" (dict "rootContext" $ "controllerObject" $controllerObject "containerObject" $containerObject) -}} {{- include "bjw-s.common.lib.container.validate" (dict "rootContext" $ "controllerObject" $controllerObject "containerObject" $containerObject) -}}

View file

@ -25,7 +25,7 @@ Returns the value for initContainers
{{- if $containerEnabled -}} {{- if $containerEnabled -}}
{{- /* Create object from the container values */ -}} {{- /* Create object from the container values */ -}}
{{- $containerObject := (include "bjw-s.common.lib.container.valuesToObject" (dict "rootContext" $ "id" $key "values" $containerValues)) | fromYaml -}} {{- $containerObject := (include "bjw-s.common.lib.container.valuesToObject" (dict "rootContext" $rootContext "id" $key "values" $containerValues)) | fromYaml -}}
{{- /* Perform validations on the Container before rendering */ -}} {{- /* Perform validations on the Container before rendering */ -}}
{{- include "bjw-s.common.lib.container.validate" (dict "rootContext" $ "controllerObject" $controllerObject "containerObject" $containerObject) -}} {{- include "bjw-s.common.lib.container.validate" (dict "rootContext" $ "controllerObject" $controllerObject "containerObject" $containerObject) -}}

View file

@ -3,5 +3,23 @@ Validate Route values
*/}} */}}
{{- define "bjw-s.common.lib.route.validate" -}} {{- define "bjw-s.common.lib.route.validate" -}}
{{- $rootContext := .rootContext -}} {{- $rootContext := .rootContext -}}
{{- $routeValues := .object -}} {{- $routeObject := .object -}}
{{/* Route Types */}}
{{- $routeKind := $routeObject.kind | default "HTTPRoute"}}
{{- if and (ne $routeKind "GRPCRoute") (ne $routeKind "HTTPRoute") (ne $routeKind "TCPRoute") (ne $routeKind "TLSRoute") (ne $routeKind "UDPRoute") }}
{{- fail (printf "Not a valid route kind (%s)" $routeKind) }}
{{- end }}
{{/* Route Rules */}}
{{- range $routeObject.rules }}
{{- if and (.filters) (.backendRefs) }}
{{- range .filters }}
{{- if eq .type "RequestRedirect" }}
{{- fail (printf "backend refs and request redirect filters cannot co-exist.")}}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}} {{- end -}}

View file

@ -40,7 +40,7 @@ VolumeClaimTemplates for StatefulSet
{{- /* Default to empty list */ -}} {{- /* Default to empty list */ -}}
{{- $volumeClaimTemplates := list -}} {{- $volumeClaimTemplates := list -}}
{{- range $index, $volumeClaimTemplate := $statefulsetObject.statefulset.volumeClaimTemplates }} {{- range $index, $volumeClaimTemplate := (dig "statefulset" "volumeClaimTemplates" list $statefulsetObject) }}
{{- $vct := include "bjw-s.common.lib.statefulset.volumeclaimtemplate" (dict "rootContext" $rootContext "values" $volumeClaimTemplate) -}} {{- $vct := include "bjw-s.common.lib.statefulset.volumeclaimtemplate" (dict "rootContext" $rootContext "values" $volumeClaimTemplate) -}}
{{- $volumeClaimTemplates = append $volumeClaimTemplates ($vct | fromYaml) -}} {{- $volumeClaimTemplates = append $volumeClaimTemplates ($vct | fromYaml) -}}
{{- end -}} {{- end -}}

View file

@ -161,7 +161,8 @@ controllers:
# - name: data # - name: data
# labels: {} # labels: {}
# annotations: {} # annotations: {}
# mountPath: /data # globalMounts:
# - path: /data
# accessMode: "ReadWriteOnce" # accessMode: "ReadWriteOnce"
# dataSourceRef: # dataSourceRef:
# apiGroup: snapshot.storage.k8s.io # apiGroup: snapshot.storage.k8s.io
@ -171,7 +172,8 @@ controllers:
# - name: backup # - name: backup
# labels: {} # labels: {}
# annotations: {} # annotations: {}
# mountPath: /backup # globalMounts:
# - path: /backup
# subPath: theSubPath # subPath: theSubPath
# accessMode: "ReadWriteOnce" # accessMode: "ReadWriteOnce"
# size: 2Gi # size: 2Gi
@ -207,6 +209,8 @@ controllers:
command: [] command: []
# -- Override the args for the default container # -- Override the args for the default container
args: [] args: []
# -- Override the working directory for the default container
workingDir:
# -- Environment variables. Template enabled. # -- Environment variables. Template enabled.
# Syntax options: # Syntax options:
@ -589,13 +593,7 @@ route:
# -- Configure rules for routing. Defaults to the primary service. # -- Configure rules for routing. Defaults to the primary service.
rules: rules:
- # -- Configure backends where matching requests should be sent. - # -- Configure backends where matching requests should be sent.
backendRefs: backendRefs: []
- group: ""
kind: Service
name: main
namespace:
port:
weight: 1
## Configure conditions used for matching incoming requests. Only for HTTPRoutes ## Configure conditions used for matching incoming requests. Only for HTTPRoutes
matches: matches:
- path: - path:
@ -603,6 +601,8 @@ route:
value: / value: /
## Request filters that are applied to the rules. ## Request filters that are applied to the rules.
filters: [] filters: []
## Request timeout that are applied to the rules.
timeouts: {}
# -- Configure persistence for the chart here. # -- Configure persistence for the chart here.
# Additional items can be added by adding a dictionary key similar to the 'config' key. # Additional items can be added by adding a dictionary key similar to the 'config' key.

View file

@ -13,7 +13,7 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
service: service:
@ -46,14 +46,14 @@ controllers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
second: second:
containers: containers:
main: main:
image: image:
repository: ghcr.io/mendhak/http-https-echo repository: ghcr.io/mendhak/http-https-echo
tag: 30 tag: 31
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
service: service:

View file

@ -81,7 +81,8 @@ persistence:
media: media:
enabled: true enabled: true
existingClaim: nas-media existingClaim: nas-media
mountPath: /data/nas-media globalMounts:
- path: /data/nas-media
probes: probes:
liveness: liveness:

View file

@ -2,7 +2,7 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1 apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: vaultwarden name: &app vaultwarden
namespace: default namespace: default
spec: spec:
interval: 15m interval: 15m
@ -45,10 +45,10 @@ spec:
main: main:
ports: ports:
http: http:
port: 80 port: &port 80
websocket: websocket:
enabled: true enabled: true
port: 3012 port: &websocket-port 3012
ingress: ingress:
# -- Enable and configure ingress settings for the chart under this key. # -- Enable and configure ingress settings for the chart under this key.
@ -73,6 +73,48 @@ spec:
name: main name: main
port: websocket port: websocket
route:
# -- Enable and configure route settings for the chart under this key.
main:
enabled: true
parentRefs:
- name: gateway
namespace: gateway-namespace
sectionName: gateway-section
hostnames:
- chart-example.local
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- kind: Service
port: *port
name: *app
namespace: default
weight: 1
- matches:
- path:
type: PathPrefix
value: /notifications/hub/negotiate
backendRefs:
- kind: Service
port: *port
name: *app
namespace: default
weight: 1
- matches:
- path:
type: PathPrefix
value: /notifications/hub
backendRefs:
- kind: Service
port: *websocket-port
name: *app
namespace: default
weight: 1
# -- Configure persistence settings for the chart under this key. # -- Configure persistence settings for the chart under this key.
persistence: persistence:
config: config:
@ -80,4 +122,5 @@ spec:
type: persistentVolumeClaim type: persistentVolumeClaim
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 1Gi size: 1Gi
mountPath: /config globalMounts:
- path: /config

View file

@ -52,6 +52,48 @@ ingress:
name: main name: main
port: websocket port: websocket
route:
# -- Enable and configure route settings for the chart under this key.
main:
enabled: true
parentRefs:
- name: gateway
namespace: gateway-namespace
sectionName: gateway-section
hostnames:
- chart-example.local
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- kind: Service
port: 80
name: main
namespace: default
weight: 1
- matches:
- path:
type: PathPrefix
value: /notifications/hub/negotiate
backendRefs:
- kind: Service
port: 80
name: main
namespace: default
weight: 1
- matches:
- path:
type: PathPrefix
value: /notifications/hub
backendRefs:
- kind: Service
port: 3012
name: main
namespace: default
weight: 1
# -- Configure persistence settings for the chart under this key. # -- Configure persistence settings for the chart under this key.
persistence: persistence:
config: config:
@ -59,4 +101,5 @@ persistence:
type: persistentVolumeClaim type: persistentVolumeClaim
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 1Gi size: 1Gi
mountPath: /config globalMounts:
- path: /config

View file

@ -59,4 +59,5 @@ persistence:
type: persistentVolumeClaim type: persistentVolumeClaim
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 1Gi size: 1Gi
mountPath: /config globalMounts:
- path: /config