From 170eb1ab169d4280a7d3999fecc089aab73a353f Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 13 Mar 2023 16:00:05 +0900 Subject: [PATCH 01/16] Added flg that can disable to ingress defaultBE --- charts/vald/templates/gateway/filter/ing.yaml | 2 ++ charts/vald/templates/gateway/lb/ing.yaml | 2 ++ charts/vald/values.yaml | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/charts/vald/templates/gateway/filter/ing.yaml b/charts/vald/templates/gateway/filter/ing.yaml index aac828d69b..d13cde8308 100644 --- a/charts/vald/templates/gateway/filter/ing.yaml +++ b/charts/vald/templates/gateway/filter/ing.yaml @@ -31,10 +31,12 @@ metadata: app.kubernetes.io/component: gateway-filter name: {{ $gateway.name }}-ingress spec: + {{- if and $gateway.ingress.defaultBackend.enabled }} defaultBackend: service: name: {{ $gateway.name }} {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} + {{- end }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index 82dc991ea4..41cc627451 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -31,10 +31,12 @@ metadata: app.kubernetes.io/component: gateway-lb name: {{ $gateway.name }}-ingress spec: + {{- if and $gateway.ingress.defaultBackend.enabled }} defaultBackend: service: name: {{ $gateway.name }} {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} + {{- end }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 9abece240b..a0e55ec5ba 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -1058,7 +1058,7 @@ gateway: pathType: ImplementationSpecific # @schema {"name": "gateway.lb.ingress.enabled", "type": "boolean"} # gateway.lb.ingress.enabled -- gateway ingress enabled - enabled: false + enabled: true # @schema {"name": "gateway.lb.ingress.annotations", "type": "object"} # gateway.lb.ingress.annotations -- annotations for ingress annotations: @@ -1069,6 +1069,11 @@ gateway: # @schema {"name": "gateway.lb.ingress.servicePort", "type": "string"} # gateway.lb.ingress.servicePort -- service port to be exposed by ingress servicePort: grpc + # @schema {"name": "gateway.lb.ingress.defaultBackend", "type": "object"} + defaultBackend: + # @schema {"name": "gateway.lb.ingress.defaultBackend.enabled", "type": "boolean"} + # gateway.lb.ingress.defaultBackend.enabled -- gateway ingress defaultBackend enabled + enabled: true # @schema {"name": "gateway.lb.resources", "type": "object", "anchor": "resources"} # gateway.lb.resources -- compute resources resources: From 226ec05bbc9ec07e5522bbdaa45a00e918102701 Mon Sep 17 00:00:00 2001 From: takuya <49614391+takuyaymd@users.noreply.github.com> Date: Fri, 26 May 2023 13:07:36 +0900 Subject: [PATCH 02/16] Update values.yaml --- charts/vald/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 36083e43df..7709068a71 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -1065,7 +1065,7 @@ gateway: pathType: ImplementationSpecific # @schema {"name": "gateway.lb.ingress.enabled", "type": "boolean"} # gateway.lb.ingress.enabled -- gateway ingress enabled - enabled: true + enabled: false # @schema {"name": "gateway.lb.ingress.annotations", "type": "object"} # gateway.lb.ingress.annotations -- annotations for ingress annotations: From bd258910936bd023dfde42bf9c03f64727c52544 Mon Sep 17 00:00:00 2001 From: takuya <49614391+takuyaymd@users.noreply.github.com> Date: Fri, 26 May 2023 13:07:36 +0900 Subject: [PATCH 03/16] undo ingress.eneble --- charts/vald/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 36083e43df..7709068a71 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -1065,7 +1065,7 @@ gateway: pathType: ImplementationSpecific # @schema {"name": "gateway.lb.ingress.enabled", "type": "boolean"} # gateway.lb.ingress.enabled -- gateway ingress enabled - enabled: true + enabled: false # @schema {"name": "gateway.lb.ingress.annotations", "type": "object"} # gateway.lb.ingress.annotations -- annotations for ingress annotations: From 7ee0e607508ad1bc84b6151b51babac6e565d69d Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Fri, 26 May 2023 21:16:29 +0900 Subject: [PATCH 04/16] Supports detailed setting of defaultBackend --- charts/vald/templates/_helpers.tpl | 25 ++++++++++++++ charts/vald/templates/gateway/lb/ing.yaml | 8 ++--- charts/vald/values.yaml | 40 ++++++++++++++++++++--- 3 files changed, 62 insertions(+), 11 deletions(-) diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index 5e0a304bbb..d05d2a258a 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -203,6 +203,31 @@ port: {{- end -}} {{- end -}} +{/* +Ingress defaultBackend +*/} +{{- define "vald.ingressDefaultBackend" -}} +{{- $defaultBackend := .default }} +{{- if .Values }} +{{- $defaultBackend = .Values }} +{{- end }} +{{- if $defaultBackend -}} +defaultBackend: + {{- if $defaultBackend.resource }} + resource: + {{- toYaml $defaultBackend.resource| nindent 4}} + {{- else }} + service: + name: {{ $defaultBackend.service.name }} + port: + {{- if $defaultBackend.service.port.number }} + number: {{ $defaultBackend.service.port.number }} + {{- else }} + name: {{ $defaultBackend.service.port.name }} + {{- end -}} + {{- end -}} +{{- end -}} +{{- end -}} {/* Service ports diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index 41cc627451..6fdd88bfd1 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -31,12 +31,8 @@ metadata: app.kubernetes.io/component: gateway-lb name: {{ $gateway.name }}-ingress spec: - {{- if and $gateway.ingress.defaultBackend.enabled }} - defaultBackend: - service: - name: {{ $gateway.name }} - {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} - {{- end }} + {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} + {{- include "vald.ingressDefaultBackend" $defaultBackend | nindent 2 }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 7709068a71..eb555e3242 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -836,6 +836,35 @@ defaults: # defaults.networkPolicy.enabled -- if network policy enabled # TODO: Change this to true after implementing user custom network policy parser enabled: false + # @schema {"name": "defaults.defaultBackend", "type": "object", "anchor": "defaultBackend"} + defaultBackend: + # @schema {"name": "defaults.defaultBackend.resource", "type": "object"} + # defaults.defaultBackend.resource -- ingress defaultBackend resource + resource: + # @schema {"name": "defaults.defaultBackend.resource.kind", "type": "string"} + # defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind + kind: "" + # @schema {"name": "defaults.defaultBackend.resource.name", "type": "string"} + # defaults.defaultBackend.resource.name -- ingress defaultBackend resource name + name: "" + # @schema {"name": "defaults.defaultBackend.resource.apiGroup", "type": "string"} + # defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup + apiGroup: "" + # @schema {"name": "defaults.defaultBackend.service", "type": "object"} + # defaults.defaultBackend.service -- ingress defaultBackend service + service: + # @schema {"name": "defaults.defaultBackend.service.name", "type": "string"} + # defaults.defaultBackend.service.name -- ingress defaultBackend service name + name: "" + # @schema {"name": "defaults.defaultBackend.service.port", "type": "object"} + # defaults.defaultBackend.service.port -- ingress defaultBackend service port + port: + # @schema {"name": "defaults.defaultBackend.service.port.name", "type": "string"} + # defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name + name: "" + # @schema {"name": "defaults.defaultBackend.service.port.number", "type": "integer"} + # defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number + number: 80 # @schema {"name": "gateway", "type": "object"} gateway: @@ -1076,11 +1105,9 @@ gateway: # @schema {"name": "gateway.lb.ingress.servicePort", "type": "string"} # gateway.lb.ingress.servicePort -- service port to be exposed by ingress servicePort: grpc - # @schema {"name": "gateway.lb.ingress.defaultBackend", "type": "object"} - defaultBackend: - # @schema {"name": "gateway.lb.ingress.defaultBackend.enabled", "type": "boolean"} - # gateway.lb.ingress.defaultBackend.enabled -- gateway ingress defaultBackend enabled - enabled: true + # @schema {"name": "gateway.lb.ingress.defaultBackend", "alias": "defaultBackend"} + # gateway.lb.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) + defaultBackend: {} # @schema {"name": "gateway.lb.resources", "type": "object", "anchor": "resources"} # gateway.lb.resources -- compute resources resources: @@ -1349,6 +1376,9 @@ gateway: # @schema {"name": "gateway.filter.ingress.servicePort", "type": "string"} # gateway.filter.ingress.servicePort -- service port to be exposed by ingress servicePort: grpc + # @schema {"name": "gateway.filter.ingress.defaultBackend", "alias": "defaultBackend"} + # gateway.filter.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) + defaultBackend: {} # @schema {"name": "gateway.filter.resources", "type": "object", "anchor": "resources"} # gateway.filter.resources -- compute resources resources: From 39d06d8f34080e4d65fe724d331ff09b84cb9618 Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Sat, 27 May 2023 14:04:54 +0900 Subject: [PATCH 05/16] Supports detailed setting of defaultBackend --- charts/vald/templates/gateway/lb/ing.yaml | 7 +++++++ charts/vald/values.yaml | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index 6fdd88bfd1..324d5c3bb3 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -31,8 +31,15 @@ metadata: app.kubernetes.io/component: gateway-lb name: {{ $gateway.name }}-ingress spec: + {{- if or ($gateway.ingress.defaultBackend) (.Values.defaults.defaultBackend) }} {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} {{- include "vald.ingressDefaultBackend" $defaultBackend | nindent 2 }} + {{- else }} + defaultBackend: + service: + name: {{ $gateway.name }} + {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} + {{- end }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index eb555e3242..a30ba89880 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -837,34 +837,34 @@ defaults: # TODO: Change this to true after implementing user custom network policy parser enabled: false # @schema {"name": "defaults.defaultBackend", "type": "object", "anchor": "defaultBackend"} - defaultBackend: + defaultBackend: {} # @schema {"name": "defaults.defaultBackend.resource", "type": "object"} # defaults.defaultBackend.resource -- ingress defaultBackend resource - resource: + # resource: # @schema {"name": "defaults.defaultBackend.resource.kind", "type": "string"} # defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind - kind: "" + # kind: "" # @schema {"name": "defaults.defaultBackend.resource.name", "type": "string"} # defaults.defaultBackend.resource.name -- ingress defaultBackend resource name - name: "" + # name: "" # @schema {"name": "defaults.defaultBackend.resource.apiGroup", "type": "string"} # defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup - apiGroup: "" + # apiGroup: "" # @schema {"name": "defaults.defaultBackend.service", "type": "object"} # defaults.defaultBackend.service -- ingress defaultBackend service - service: + # service: # @schema {"name": "defaults.defaultBackend.service.name", "type": "string"} # defaults.defaultBackend.service.name -- ingress defaultBackend service name - name: "" + # name: "" # @schema {"name": "defaults.defaultBackend.service.port", "type": "object"} # defaults.defaultBackend.service.port -- ingress defaultBackend service port - port: + # port: # @schema {"name": "defaults.defaultBackend.service.port.name", "type": "string"} # defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name - name: "" + # name: "" # @schema {"name": "defaults.defaultBackend.service.port.number", "type": "integer"} # defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number - number: 80 + # number: 80 # @schema {"name": "gateway", "type": "object"} gateway: From b931f7e4548f05383d691dea90a3164b00f8c1f8 Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 29 May 2023 11:56:58 +0900 Subject: [PATCH 06/16] Determine if defaultBackend is nil or empty --- charts/vald/templates/_helpers.tpl | 4 ++-- charts/vald/templates/gateway/lb/ing.yaml | 8 ++++---- charts/vald/values.yaml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index d05d2a258a..e100e9db57 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -208,8 +208,8 @@ Ingress defaultBackend */} {{- define "vald.ingressDefaultBackend" -}} {{- $defaultBackend := .default }} -{{- if .Values }} -{{- $defaultBackend = .Values }} +{{- with .Values }} +{{- $defaultBackend = . }} {{- end }} {{- if $defaultBackend -}} defaultBackend: diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index 324d5c3bb3..f12470f51c 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -31,14 +31,14 @@ metadata: app.kubernetes.io/component: gateway-lb name: {{ $gateway.name }}-ingress spec: - {{- if or ($gateway.ingress.defaultBackend) (.Values.defaults.defaultBackend) }} - {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} - {{- include "vald.ingressDefaultBackend" $defaultBackend | nindent 2 }} - {{- else }} + {{- if and (eq $gateway.ingress.defaultBackend nil) (eq .Values.defaults.defaultBackend nil) }} defaultBackend: service: name: {{ $gateway.name }} {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} + {{- else }} + {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} + {{- include "vald.ingressDefaultBackend" $defaultBackend | nindent 2 }} {{- end }} rules: - host: {{ $gateway.ingress.host }} diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index a30ba89880..4cfcd9fcd9 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -837,7 +837,7 @@ defaults: # TODO: Change this to true after implementing user custom network policy parser enabled: false # @schema {"name": "defaults.defaultBackend", "type": "object", "anchor": "defaultBackend"} - defaultBackend: {} + # defaultBackend: {} # @schema {"name": "defaults.defaultBackend.resource", "type": "object"} # defaults.defaultBackend.resource -- ingress defaultBackend resource # resource: @@ -1107,7 +1107,7 @@ gateway: servicePort: grpc # @schema {"name": "gateway.lb.ingress.defaultBackend", "alias": "defaultBackend"} # gateway.lb.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) - defaultBackend: {} + # defaultBackend: {} # @schema {"name": "gateway.lb.resources", "type": "object", "anchor": "resources"} # gateway.lb.resources -- compute resources resources: @@ -1378,7 +1378,7 @@ gateway: servicePort: grpc # @schema {"name": "gateway.filter.ingress.defaultBackend", "alias": "defaultBackend"} # gateway.filter.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) - defaultBackend: {} + # defaultBackend: {} # @schema {"name": "gateway.filter.resources", "type": "object", "anchor": "resources"} # gateway.filter.resources -- compute resources resources: From b30d7623075339343238936aae46ca720c49cc93 Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 29 May 2023 12:22:43 +0900 Subject: [PATCH 07/16] fixed newline handling --- charts/vald/templates/_helpers.tpl | 2 +- charts/vald/templates/gateway/lb/ing.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index e100e9db57..6ba40e3cba 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -211,7 +211,7 @@ Ingress defaultBackend {{- with .Values }} {{- $defaultBackend = . }} {{- end }} -{{- if $defaultBackend -}} +{{- if $defaultBackend }} defaultBackend: {{- if $defaultBackend.resource }} resource: diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index f12470f51c..362a41c829 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -39,7 +39,7 @@ spec: {{- else }} {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} {{- include "vald.ingressDefaultBackend" $defaultBackend | nindent 2 }} - {{- end }} + {{- end -}} rules: - host: {{ $gateway.ingress.host }} http: From ae0cc7bcb5c9c5c9195f5acad78114e32bb11ebd Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 29 May 2023 12:23:40 +0900 Subject: [PATCH 08/16] fixed newline handling --- charts/vald/templates/gateway/lb/ing.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index 362a41c829..976b39b6af 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -38,8 +38,8 @@ spec: {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} {{- else }} {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} - {{- include "vald.ingressDefaultBackend" $defaultBackend | nindent 2 }} - {{- end -}} + {{- include "vald.ingressDefaultBackend" $defaultBackend | indent 2 }} + {{- end }} rules: - host: {{ $gateway.ingress.host }} http: From a4d06ca828386fb2078b087158b827b2f52cf48c Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 29 May 2023 13:42:24 +0900 Subject: [PATCH 09/16] Supports detailed setting of defaultBackend --- charts/vald/templates/_helpers.tpl | 4 ++++ charts/vald/templates/gateway/filter/ing.yaml | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index 6ba40e3cba..dc5085cbf8 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -210,6 +210,10 @@ Ingress defaultBackend {{- $defaultBackend := .default }} {{- with .Values }} {{- $defaultBackend = . }} +{{- else }} +{{- if not (eq .Values nil) -}} +{{- $defaultBackend = .Values }} +{{- end }} {{- end }} {{- if $defaultBackend }} defaultBackend: diff --git a/charts/vald/templates/gateway/filter/ing.yaml b/charts/vald/templates/gateway/filter/ing.yaml index d13cde8308..570e00efa7 100644 --- a/charts/vald/templates/gateway/filter/ing.yaml +++ b/charts/vald/templates/gateway/filter/ing.yaml @@ -31,11 +31,14 @@ metadata: app.kubernetes.io/component: gateway-filter name: {{ $gateway.name }}-ingress spec: - {{- if and $gateway.ingress.defaultBackend.enabled }} + {{- if and (eq $gateway.ingress.defaultBackend nil) (eq .Values.defaults.defaultBackend nil) }} defaultBackend: service: name: {{ $gateway.name }} {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} + {{- else }} + {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} + {{- include "vald.ingressDefaultBackend" $defaultBackend | indent 2 }} {{- end }} rules: - host: {{ $gateway.ingress.host }} From aa491289b28dbf4a8c643c7877b7f4ebb683fe36 Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 29 May 2023 13:43:38 +0900 Subject: [PATCH 10/16] add schema --- .../vald-helm-operator/crds/valdrelease.yaml | 77 +++++++++++++++ charts/vald/values.schema.json | 96 +++++++++++++++++-- 2 files changed, 167 insertions(+), 6 deletions(-) diff --git a/charts/vald-helm-operator/crds/valdrelease.yaml b/charts/vald-helm-operator/crds/valdrelease.yaml index 370c0faa55..23d447aaec 100644 --- a/charts/vald-helm-operator/crds/valdrelease.yaml +++ b/charts/vald-helm-operator/crds/valdrelease.yaml @@ -1818,6 +1818,30 @@ spec: defaults: type: object properties: + defaultBackend: + type: object + properties: + resource: + type: object + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + service: + type: object + properties: + name: + type: string + port: + type: object + properties: + name: + type: string + number: + type: integer grpc: type: object properties: @@ -2022,6 +2046,11 @@ spec: enum: - glg - zap + networkPolicy: + type: object + properties: + enabled: + type: boolean observability: type: object properties: @@ -4133,6 +4162,30 @@ spec: annotations: type: object x-kubernetes-preserve-unknown-fields: true + defaultBackend: + type: object + properties: + resource: + type: object + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + service: + type: object + properties: + name: + type: string + port: + type: object + properties: + name: + type: string + number: + type: integer enabled: type: boolean host: @@ -5287,6 +5340,30 @@ spec: annotations: type: object x-kubernetes-preserve-unknown-fields: true + defaultBackend: + type: object + properties: + resource: + type: object + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + service: + type: object + properties: + name: + type: string + port: + type: object + properties: + name: + type: string + number: + type: integer enabled: type: boolean host: diff --git a/charts/vald/values.schema.json b/charts/vald/values.schema.json index 7629ca858b..837af2ad76 100644 --- a/charts/vald/values.schema.json +++ b/charts/vald/values.schema.json @@ -455,7 +455,6 @@ }, "resources": { "type": "object", - "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -1971,7 +1970,6 @@ }, "resources": { "type": "object", - "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -2936,6 +2934,33 @@ "defaults": { "type": "object", "properties": { + "defaultBackend": { + "type": "object", + "properties": { + "resource": { + "type": "object", + "description": "ingress defaultBackend resource resource: defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind kind: \"\" defaults.defaultBackend.resource.name -- ingress defaultBackend resource name name: \"\" defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup apiGroup: \"\" defaults.defaultBackend.service -- ingress defaultBackend service service: defaults.defaultBackend.service.name -- ingress defaultBackend service name name: \"\" defaults.defaultBackend.service.port -- ingress defaultBackend service port port: defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name name: \"\" defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number number: 80", + "properties": { + "apiGroup": { "type": "string" }, + "kind": { "type": "string" }, + "name": { "type": "string" } + } + }, + "service": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "port": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "number": { "type": "integer" } + } + } + } + } + } + }, "grpc": { "type": "object", "properties": { @@ -3275,6 +3300,15 @@ } } }, + "networkPolicy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "if network policy enabled TODO: Change this to true after implementing user custom network policy parser" + } + } + }, "observability": { "type": "object", "properties": { @@ -4754,7 +4788,6 @@ }, "resources": { "type": "object", - "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -6829,6 +6862,33 @@ "type": "object", "description": "annotations for ingress" }, + "defaultBackend": { + "type": "object", + "properties": { + "resource": { + "type": "object", + "description": "ingress defaultBackend resource resource: defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind kind: \"\" defaults.defaultBackend.resource.name -- ingress defaultBackend resource name name: \"\" defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup apiGroup: \"\" defaults.defaultBackend.service -- ingress defaultBackend service service: defaults.defaultBackend.service.name -- ingress defaultBackend service name name: \"\" defaults.defaultBackend.service.port -- ingress defaultBackend service port port: defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name name: \"\" defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number number: 80", + "properties": { + "apiGroup": { "type": "string" }, + "kind": { "type": "string" }, + "name": { "type": "string" } + } + }, + "service": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "port": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "number": { "type": "integer" } + } + } + } + } + } + }, "enabled": { "type": "boolean", "description": "gateway ingress enabled" @@ -7041,7 +7101,6 @@ }, "resources": { "type": "object", - "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -8767,6 +8826,33 @@ "type": "object", "description": "annotations for ingress" }, + "defaultBackend": { + "type": "object", + "properties": { + "resource": { + "type": "object", + "description": "ingress defaultBackend resource resource: defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind kind: \"\" defaults.defaultBackend.resource.name -- ingress defaultBackend resource name name: \"\" defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup apiGroup: \"\" defaults.defaultBackend.service -- ingress defaultBackend service service: defaults.defaultBackend.service.name -- ingress defaultBackend service name name: \"\" defaults.defaultBackend.service.port -- ingress defaultBackend service port port: defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name name: \"\" defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number number: 80", + "properties": { + "apiGroup": { "type": "string" }, + "kind": { "type": "string" }, + "name": { "type": "string" } + } + }, + "service": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "port": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "number": { "type": "integer" } + } + } + } + } + } + }, "enabled": { "type": "boolean", "description": "gateway ingress enabled" @@ -8979,7 +9065,6 @@ }, "resources": { "type": "object", - "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -10906,7 +10991,6 @@ }, "resources": { "type": "object", - "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } From 6eac44735d6701155e0a27ab3b87c08fd336d791 Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 29 May 2023 13:52:16 +0900 Subject: [PATCH 11/16] refactoring defaultBackend --- charts/vald/templates/_helpers.tpl | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index dc5085cbf8..c1c0398a1d 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -208,13 +208,9 @@ Ingress defaultBackend */} {{- define "vald.ingressDefaultBackend" -}} {{- $defaultBackend := .default }} -{{- with .Values }} -{{- $defaultBackend = . }} -{{- else }} -{{- if not (eq .Values nil) -}} +{{- if or (.Values) (not (eq .Values nil)) }} {{- $defaultBackend = .Values }} {{- end }} -{{- end }} {{- if $defaultBackend }} defaultBackend: {{- if $defaultBackend.resource }} From 1acdb268c9f9fec50b7a46220530d06982d5a19b Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Mon, 29 May 2023 20:18:17 +0900 Subject: [PATCH 12/16] Consolidate logic in h --- charts/vald/templates/_helpers.tpl | 18 ++++++++++++++---- charts/vald/templates/gateway/filter/ing.yaml | 9 +-------- charts/vald/templates/gateway/lb/ing.yaml | 9 +-------- charts/vald/values.yaml | 6 +++--- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index c1c0398a1d..9adf73e9da 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -208,10 +208,20 @@ Ingress defaultBackend */} {{- define "vald.ingressDefaultBackend" -}} {{- $defaultBackend := .default }} -{{- if or (.Values) (not (eq .Values nil)) }} -{{- $defaultBackend = .Values }} +{{- if gt (len .Values.ingress.defaultBackend) 0}} +{{- $defaultBackend = .Values.ingress.defaultBackend }} {{- end }} -{{- if $defaultBackend }} +{{- if not $defaultBackend }} +defaultBackend: + service: + name: {{ .Values.name }} + port: + {{- if regexMatch "^()([1-9]|[1-5]?[0-9]{2,4}|6[1-4][0-9]{3}|65[1-4][0-9]{2}|655[1-2][0-9]|6553[1-5])$" .Values.ingress.servicePort -}} + number: {{ .Values.ingress.servicePort }} + {{- else }} + name: {{ .Values.ingress.servicePort }} + {{- end }} +{{- else if or ($defaultBackend.resource) ($defaultBackend.service) }} defaultBackend: {{- if $defaultBackend.resource }} resource: @@ -225,7 +235,7 @@ defaultBackend: {{- else }} name: {{ $defaultBackend.service.port.name }} {{- end -}} - {{- end -}} + {{- end }} {{- end -}} {{- end -}} diff --git a/charts/vald/templates/gateway/filter/ing.yaml b/charts/vald/templates/gateway/filter/ing.yaml index 570e00efa7..cbf664cd7a 100644 --- a/charts/vald/templates/gateway/filter/ing.yaml +++ b/charts/vald/templates/gateway/filter/ing.yaml @@ -31,15 +31,8 @@ metadata: app.kubernetes.io/component: gateway-filter name: {{ $gateway.name }}-ingress spec: - {{- if and (eq $gateway.ingress.defaultBackend nil) (eq .Values.defaults.defaultBackend nil) }} - defaultBackend: - service: - name: {{ $gateway.name }} - {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} - {{- else }} - {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} + {{- $defaultBackend := dict "Values" $gateway "default" .Values.defaults.defaultBackend }} {{- include "vald.ingressDefaultBackend" $defaultBackend | indent 2 }} - {{- end }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index 976b39b6af..b31e487c6a 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -31,15 +31,8 @@ metadata: app.kubernetes.io/component: gateway-lb name: {{ $gateway.name }}-ingress spec: - {{- if and (eq $gateway.ingress.defaultBackend nil) (eq .Values.defaults.defaultBackend nil) }} - defaultBackend: - service: - name: {{ $gateway.name }} - {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} - {{- else }} - {{- $defaultBackend := dict "Values" $gateway.ingress.defaultBackend "default" .Values.defaults.defaultBackend }} + {{- $defaultBackend := dict "Values" $gateway "default" .Values.defaults.defaultBackend }} {{- include "vald.ingressDefaultBackend" $defaultBackend | indent 2 }} - {{- end }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 4cfcd9fcd9..a30ba89880 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -837,7 +837,7 @@ defaults: # TODO: Change this to true after implementing user custom network policy parser enabled: false # @schema {"name": "defaults.defaultBackend", "type": "object", "anchor": "defaultBackend"} - # defaultBackend: {} + defaultBackend: {} # @schema {"name": "defaults.defaultBackend.resource", "type": "object"} # defaults.defaultBackend.resource -- ingress defaultBackend resource # resource: @@ -1107,7 +1107,7 @@ gateway: servicePort: grpc # @schema {"name": "gateway.lb.ingress.defaultBackend", "alias": "defaultBackend"} # gateway.lb.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) - # defaultBackend: {} + defaultBackend: {} # @schema {"name": "gateway.lb.resources", "type": "object", "anchor": "resources"} # gateway.lb.resources -- compute resources resources: @@ -1378,7 +1378,7 @@ gateway: servicePort: grpc # @schema {"name": "gateway.filter.ingress.defaultBackend", "alias": "defaultBackend"} # gateway.filter.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) - # defaultBackend: {} + defaultBackend: {} # @schema {"name": "gateway.filter.resources", "type": "object", "anchor": "resources"} # gateway.filter.resources -- compute resources resources: From a1a8eb098ceea099b5ccc40688a83385f0535ce8 Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Tue, 30 May 2023 13:38:21 +0900 Subject: [PATCH 13/16] moved defaults.defaultBackend to gateways settings --- charts/vald/values.yaml | 95 ++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index a30ba89880..b91927c4f2 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -836,35 +836,6 @@ defaults: # defaults.networkPolicy.enabled -- if network policy enabled # TODO: Change this to true after implementing user custom network policy parser enabled: false - # @schema {"name": "defaults.defaultBackend", "type": "object", "anchor": "defaultBackend"} - defaultBackend: {} - # @schema {"name": "defaults.defaultBackend.resource", "type": "object"} - # defaults.defaultBackend.resource -- ingress defaultBackend resource - # resource: - # @schema {"name": "defaults.defaultBackend.resource.kind", "type": "string"} - # defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind - # kind: "" - # @schema {"name": "defaults.defaultBackend.resource.name", "type": "string"} - # defaults.defaultBackend.resource.name -- ingress defaultBackend resource name - # name: "" - # @schema {"name": "defaults.defaultBackend.resource.apiGroup", "type": "string"} - # defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup - # apiGroup: "" - # @schema {"name": "defaults.defaultBackend.service", "type": "object"} - # defaults.defaultBackend.service -- ingress defaultBackend service - # service: - # @schema {"name": "defaults.defaultBackend.service.name", "type": "string"} - # defaults.defaultBackend.service.name -- ingress defaultBackend service name - # name: "" - # @schema {"name": "defaults.defaultBackend.service.port", "type": "object"} - # defaults.defaultBackend.service.port -- ingress defaultBackend service port - # port: - # @schema {"name": "defaults.defaultBackend.service.port.name", "type": "string"} - # defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name - # name: "" - # @schema {"name": "defaults.defaultBackend.service.port.number", "type": "integer"} - # defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number - # number: 80 # @schema {"name": "gateway", "type": "object"} gateway: @@ -1105,9 +1076,36 @@ gateway: # @schema {"name": "gateway.lb.ingress.servicePort", "type": "string"} # gateway.lb.ingress.servicePort -- service port to be exposed by ingress servicePort: grpc - # @schema {"name": "gateway.lb.ingress.defaultBackend", "alias": "defaultBackend"} - # gateway.lb.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) - defaultBackend: {} + # @schema {"name": "gateway.lb.ingress.defaultBackend"} + # gateway.lb.ingress.defaultBackend -- defaultBackend config + defaultBackend: + # @schema {"name": "gateway.lb.ingress.defaultBackend.resource", "type": "object"} + # gateway.lb.ingress.defaultBackend.resource -- ingress defaultBackend resource + resource: + # @schema {"name": "gateway.lb.ingress.defaultBackend.resource.kind", "type": "string"} + # gateway.lb.ingress.defaultBackend.resource.kind -- ingress defaultBackend resource kind + kind: "" + # @schema {"name": "gateway.lb.ingress.defaultBackend.resource.name", "type": "string"} + # gateway.lb.ingress.defaultBackend.resource.name -- ingress defaultBackend resource name + name: "" + # @schema {"name": "gateway.lb.ingress.defaultBackend.resource.apiGroup", "type": "string"} + # gateway.lb.ingress.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup + apiGroup: "" + # @schema {"name": "gateway.lb.ingress.defaultBackend.service", "type": "object"} + # gateway.lb.ingress.defaultBackend.service -- ingress defaultBackend service + service: + # @schema {"name": "gateway.lb.ingress.defaultBackend.service.name", "type": "string"} + # gateway.lb.ingress.defaultBackend.service.name -- ingress defaultBackend service name + name: "vald-lb-gateway" + # @schema {"name": "gateway.lb.ingress.defaultBackend.service.port", "type": "object"} + # gateway.lb.ingress.defaultBackend.service.port -- ingress defaultBackend service port + port: + # @schema {"name": "gateway.lb.ingress.defaultBackend.service.port.name", "type": "string"} + # gateway.lb.ingress.defaultBackend.service.port.name -- ingress defaultBackend service port name + name: "grpc" + # @schema {"name": "gateway.lb.ingress.defaultBackend.service.port.number", "type": "integer"} + # gateway.lb.ingress.defaultBackend.service.port.number -- ingress defaultBackend service port number + number: 0 # @schema {"name": "gateway.lb.resources", "type": "object", "anchor": "resources"} # gateway.lb.resources -- compute resources resources: @@ -1376,9 +1374,36 @@ gateway: # @schema {"name": "gateway.filter.ingress.servicePort", "type": "string"} # gateway.filter.ingress.servicePort -- service port to be exposed by ingress servicePort: grpc - # @schema {"name": "gateway.filter.ingress.defaultBackend", "alias": "defaultBackend"} - # gateway.filter.ingress.defaultBackend -- defaultBackend config (overrides defaults.defaultBackend) - defaultBackend: {} + # @schema {"name": "gateway.filter.ingress.defaultBackend"} + # gateway.filter.ingress.defaultBackend -- defaultBackend config + defaultBackend: + # @schema {"name": "gateway.filter.ingress.defaultBackend.resource", "type": "object"} + # gateway.filter.ingress.defaultBackend.resource -- ingress defaultBackend resource + resource: + # @schema {"name": "gateway.filter.ingress.defaultBackend.resource.kind", "type": "string"} + # gateway.filter.ingress.defaultBackend.resource.kind -- ingress defaultBackend resource kind + kind: "" + # @schema {"name": "gateway.filter.ingress.defaultBackend.resource.name", "type": "string"} + # gateway.filter.ingress.defaultBackend.resource.name -- ingress defaultBackend resource name + name: "" + # @schema {"name": "gateway.filter.ingress.defaultBackend.resource.apiGroup", "type": "string"} + # gateway.filter.ingress.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup + apiGroup: "" + # @schema {"name": "gateway.filter.ingress.defaultBackend.service", "type": "object"} + # gateway.filter.ingress.defaultBackend.service -- ingress defaultBackend service + service: + # @schema {"name": "gateway.filter.ingress.defaultBackend.service.name", "type": "string"} + # gateway.filter.ingress.defaultBackend.service.name -- ingress defaultBackend service name + name: "vald-filter-gateway" + # @schema {"name": "gateway.filter.ingress.defaultBackend.service.port", "type": "object"} + # gateway.filter.ingress.defaultBackend.service.port -- ingress defaultBackend service port + port: + # @schema {"name": "gateway.filter.ingress.defaultBackend.service.port.name", "type": "string"} + # gateway.filter.ingress.defaultBackend.service.port.name -- ingress defaultBackend service port name + name: "grpc" + # @schema {"name": "gateway.filter.ingress.defaultBackend.service.port.number", "type": "integer"} + # gateway.filter.ingress.defaultBackend.service.port.number -- ingress defaultBackend service port number + number: 0 # @schema {"name": "gateway.filter.resources", "type": "object", "anchor": "resources"} # gateway.filter.resources -- compute resources resources: From 876f9f4e8d9e0ad444c72e19d23f0d1b5341a58d Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Tue, 30 May 2023 15:10:05 +0900 Subject: [PATCH 14/16] Added flg that can disable to ingress defaultBE --- charts/vald/templates/_helpers.tpl | 35 ---------- charts/vald/templates/gateway/filter/ing.yaml | 8 ++- charts/vald/templates/gateway/lb/ing.yaml | 8 ++- charts/vald/values.yaml | 64 +++---------------- 4 files changed, 20 insertions(+), 95 deletions(-) diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index 9adf73e9da..5e0a304bbb 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -203,41 +203,6 @@ port: {{- end -}} {{- end -}} -{/* -Ingress defaultBackend -*/} -{{- define "vald.ingressDefaultBackend" -}} -{{- $defaultBackend := .default }} -{{- if gt (len .Values.ingress.defaultBackend) 0}} -{{- $defaultBackend = .Values.ingress.defaultBackend }} -{{- end }} -{{- if not $defaultBackend }} -defaultBackend: - service: - name: {{ .Values.name }} - port: - {{- if regexMatch "^()([1-9]|[1-5]?[0-9]{2,4}|6[1-4][0-9]{3}|65[1-4][0-9]{2}|655[1-2][0-9]|6553[1-5])$" .Values.ingress.servicePort -}} - number: {{ .Values.ingress.servicePort }} - {{- else }} - name: {{ .Values.ingress.servicePort }} - {{- end }} -{{- else if or ($defaultBackend.resource) ($defaultBackend.service) }} -defaultBackend: - {{- if $defaultBackend.resource }} - resource: - {{- toYaml $defaultBackend.resource| nindent 4}} - {{- else }} - service: - name: {{ $defaultBackend.service.name }} - port: - {{- if $defaultBackend.service.port.number }} - number: {{ $defaultBackend.service.port.number }} - {{- else }} - name: {{ $defaultBackend.service.port.name }} - {{- end -}} - {{- end }} -{{- end -}} -{{- end -}} {/* Service ports diff --git a/charts/vald/templates/gateway/filter/ing.yaml b/charts/vald/templates/gateway/filter/ing.yaml index cbf664cd7a..d13cde8308 100644 --- a/charts/vald/templates/gateway/filter/ing.yaml +++ b/charts/vald/templates/gateway/filter/ing.yaml @@ -31,8 +31,12 @@ metadata: app.kubernetes.io/component: gateway-filter name: {{ $gateway.name }}-ingress spec: - {{- $defaultBackend := dict "Values" $gateway "default" .Values.defaults.defaultBackend }} - {{- include "vald.ingressDefaultBackend" $defaultBackend | indent 2 }} + {{- if and $gateway.ingress.defaultBackend.enabled }} + defaultBackend: + service: + name: {{ $gateway.name }} + {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} + {{- end }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index b31e487c6a..41cc627451 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -31,8 +31,12 @@ metadata: app.kubernetes.io/component: gateway-lb name: {{ $gateway.name }}-ingress spec: - {{- $defaultBackend := dict "Values" $gateway "default" .Values.defaults.defaultBackend }} - {{- include "vald.ingressDefaultBackend" $defaultBackend | indent 2 }} + {{- if and $gateway.ingress.defaultBackend.enabled }} + defaultBackend: + service: + name: {{ $gateway.name }} + {{- include "vald.ingressPort" (dict "Values" $gateway.ingress) | nindent 6 }} + {{- end }} rules: - host: {{ $gateway.ingress.host }} http: diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index b91927c4f2..4fd6742e1e 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -1076,36 +1076,12 @@ gateway: # @schema {"name": "gateway.lb.ingress.servicePort", "type": "string"} # gateway.lb.ingress.servicePort -- service port to be exposed by ingress servicePort: grpc - # @schema {"name": "gateway.lb.ingress.defaultBackend"} + # @schema {"name": "gateway.lb.ingress.defaultBackend", "type": "object"} # gateway.lb.ingress.defaultBackend -- defaultBackend config defaultBackend: - # @schema {"name": "gateway.lb.ingress.defaultBackend.resource", "type": "object"} - # gateway.lb.ingress.defaultBackend.resource -- ingress defaultBackend resource - resource: - # @schema {"name": "gateway.lb.ingress.defaultBackend.resource.kind", "type": "string"} - # gateway.lb.ingress.defaultBackend.resource.kind -- ingress defaultBackend resource kind - kind: "" - # @schema {"name": "gateway.lb.ingress.defaultBackend.resource.name", "type": "string"} - # gateway.lb.ingress.defaultBackend.resource.name -- ingress defaultBackend resource name - name: "" - # @schema {"name": "gateway.lb.ingress.defaultBackend.resource.apiGroup", "type": "string"} - # gateway.lb.ingress.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup - apiGroup: "" - # @schema {"name": "gateway.lb.ingress.defaultBackend.service", "type": "object"} - # gateway.lb.ingress.defaultBackend.service -- ingress defaultBackend service - service: - # @schema {"name": "gateway.lb.ingress.defaultBackend.service.name", "type": "string"} - # gateway.lb.ingress.defaultBackend.service.name -- ingress defaultBackend service name - name: "vald-lb-gateway" - # @schema {"name": "gateway.lb.ingress.defaultBackend.service.port", "type": "object"} - # gateway.lb.ingress.defaultBackend.service.port -- ingress defaultBackend service port - port: - # @schema {"name": "gateway.lb.ingress.defaultBackend.service.port.name", "type": "string"} - # gateway.lb.ingress.defaultBackend.service.port.name -- ingress defaultBackend service port name - name: "grpc" - # @schema {"name": "gateway.lb.ingress.defaultBackend.service.port.number", "type": "integer"} - # gateway.lb.ingress.defaultBackend.service.port.number -- ingress defaultBackend service port number - number: 0 + # @schema {"name": "gateway.lb.ingress.defaultBackend.enabled", "type": "boolean"} + # gateway.lb.ingress.defaultBackend.enabled -- gateway ingress defaultBackend enabled + enabled: true # @schema {"name": "gateway.lb.resources", "type": "object", "anchor": "resources"} # gateway.lb.resources -- compute resources resources: @@ -1374,36 +1350,12 @@ gateway: # @schema {"name": "gateway.filter.ingress.servicePort", "type": "string"} # gateway.filter.ingress.servicePort -- service port to be exposed by ingress servicePort: grpc - # @schema {"name": "gateway.filter.ingress.defaultBackend"} + # @schema {"name": "gateway.filter.ingress.defaultBackend", "type": "object"} # gateway.filter.ingress.defaultBackend -- defaultBackend config defaultBackend: - # @schema {"name": "gateway.filter.ingress.defaultBackend.resource", "type": "object"} - # gateway.filter.ingress.defaultBackend.resource -- ingress defaultBackend resource - resource: - # @schema {"name": "gateway.filter.ingress.defaultBackend.resource.kind", "type": "string"} - # gateway.filter.ingress.defaultBackend.resource.kind -- ingress defaultBackend resource kind - kind: "" - # @schema {"name": "gateway.filter.ingress.defaultBackend.resource.name", "type": "string"} - # gateway.filter.ingress.defaultBackend.resource.name -- ingress defaultBackend resource name - name: "" - # @schema {"name": "gateway.filter.ingress.defaultBackend.resource.apiGroup", "type": "string"} - # gateway.filter.ingress.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup - apiGroup: "" - # @schema {"name": "gateway.filter.ingress.defaultBackend.service", "type": "object"} - # gateway.filter.ingress.defaultBackend.service -- ingress defaultBackend service - service: - # @schema {"name": "gateway.filter.ingress.defaultBackend.service.name", "type": "string"} - # gateway.filter.ingress.defaultBackend.service.name -- ingress defaultBackend service name - name: "vald-filter-gateway" - # @schema {"name": "gateway.filter.ingress.defaultBackend.service.port", "type": "object"} - # gateway.filter.ingress.defaultBackend.service.port -- ingress defaultBackend service port - port: - # @schema {"name": "gateway.filter.ingress.defaultBackend.service.port.name", "type": "string"} - # gateway.filter.ingress.defaultBackend.service.port.name -- ingress defaultBackend service port name - name: "grpc" - # @schema {"name": "gateway.filter.ingress.defaultBackend.service.port.number", "type": "integer"} - # gateway.filter.ingress.defaultBackend.service.port.number -- ingress defaultBackend service port number - number: 0 + # @schema {"name": "gateway.filter.ingress.defaultBackend.enabled", "type": "boolean"} + # gateway.filter.ingress.defaultBackend.enabled -- gateway ingress defaultBackend enabled + enabled: true # @schema {"name": "gateway.filter.resources", "type": "object", "anchor": "resources"} # gateway.filter.resources -- compute resources resources: From 5b07da1f2a559e12a93d0f6b57a968ca2deaa606 Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Tue, 30 May 2023 15:15:13 +0900 Subject: [PATCH 15/16] Added flg that can disable to ingress defaultBE --- .../vald-helm-operator/crds/valdrelease.yaml | 70 +--------------- charts/vald/values.schema.json | 83 ++++--------------- 2 files changed, 18 insertions(+), 135 deletions(-) diff --git a/charts/vald-helm-operator/crds/valdrelease.yaml b/charts/vald-helm-operator/crds/valdrelease.yaml index 23d447aaec..dc8c68c6f2 100644 --- a/charts/vald-helm-operator/crds/valdrelease.yaml +++ b/charts/vald-helm-operator/crds/valdrelease.yaml @@ -1818,30 +1818,6 @@ spec: defaults: type: object properties: - defaultBackend: - type: object - properties: - resource: - type: object - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - service: - type: object - properties: - name: - type: string - port: - type: object - properties: - name: - type: string - number: - type: integer grpc: type: object properties: @@ -4165,27 +4141,8 @@ spec: defaultBackend: type: object properties: - resource: - type: object - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - service: - type: object - properties: - name: - type: string - port: - type: object - properties: - name: - type: string - number: - type: integer + enabled: + type: boolean enabled: type: boolean host: @@ -5343,27 +5300,8 @@ spec: defaultBackend: type: object properties: - resource: - type: object - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - service: - type: object - properties: - name: - type: string - port: - type: object - properties: - name: - type: string - number: - type: integer + enabled: + type: boolean enabled: type: boolean host: diff --git a/charts/vald/values.schema.json b/charts/vald/values.schema.json index 837af2ad76..98e17dccff 100644 --- a/charts/vald/values.schema.json +++ b/charts/vald/values.schema.json @@ -455,6 +455,7 @@ }, "resources": { "type": "object", + "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -1970,6 +1971,7 @@ }, "resources": { "type": "object", + "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -2934,33 +2936,6 @@ "defaults": { "type": "object", "properties": { - "defaultBackend": { - "type": "object", - "properties": { - "resource": { - "type": "object", - "description": "ingress defaultBackend resource resource: defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind kind: \"\" defaults.defaultBackend.resource.name -- ingress defaultBackend resource name name: \"\" defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup apiGroup: \"\" defaults.defaultBackend.service -- ingress defaultBackend service service: defaults.defaultBackend.service.name -- ingress defaultBackend service name name: \"\" defaults.defaultBackend.service.port -- ingress defaultBackend service port port: defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name name: \"\" defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number number: 80", - "properties": { - "apiGroup": { "type": "string" }, - "kind": { "type": "string" }, - "name": { "type": "string" } - } - }, - "service": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "port": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "number": { "type": "integer" } - } - } - } - } - } - }, "grpc": { "type": "object", "properties": { @@ -4788,6 +4763,7 @@ }, "resources": { "type": "object", + "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -6864,28 +6840,11 @@ }, "defaultBackend": { "type": "object", + "description": "defaultBackend config", "properties": { - "resource": { - "type": "object", - "description": "ingress defaultBackend resource resource: defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind kind: \"\" defaults.defaultBackend.resource.name -- ingress defaultBackend resource name name: \"\" defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup apiGroup: \"\" defaults.defaultBackend.service -- ingress defaultBackend service service: defaults.defaultBackend.service.name -- ingress defaultBackend service name name: \"\" defaults.defaultBackend.service.port -- ingress defaultBackend service port port: defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name name: \"\" defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number number: 80", - "properties": { - "apiGroup": { "type": "string" }, - "kind": { "type": "string" }, - "name": { "type": "string" } - } - }, - "service": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "port": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "number": { "type": "integer" } - } - } - } + "enabled": { + "type": "boolean", + "description": "gateway ingress defaultBackend enabled" } } }, @@ -7101,6 +7060,7 @@ }, "resources": { "type": "object", + "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -8828,28 +8788,11 @@ }, "defaultBackend": { "type": "object", + "description": "defaultBackend config", "properties": { - "resource": { - "type": "object", - "description": "ingress defaultBackend resource resource: defaults.defaultBackend.resource.kind -- ingress defaultBackend resource kind kind: \"\" defaults.defaultBackend.resource.name -- ingress defaultBackend resource name name: \"\" defaults.defaultBackend.resource.apiGroup -- ingress defaultBackend resource apiGroup apiGroup: \"\" defaults.defaultBackend.service -- ingress defaultBackend service service: defaults.defaultBackend.service.name -- ingress defaultBackend service name name: \"\" defaults.defaultBackend.service.port -- ingress defaultBackend service port port: defaults.defaultBackend.service.port.name -- ingress defaultBackend service port name name: \"\" defaults.defaultBackend.service.port.number -- ingress defaultBackend service port number number: 80", - "properties": { - "apiGroup": { "type": "string" }, - "kind": { "type": "string" }, - "name": { "type": "string" } - } - }, - "service": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "port": { - "type": "object", - "properties": { - "name": { "type": "string" }, - "number": { "type": "integer" } - } - } - } + "enabled": { + "type": "boolean", + "description": "gateway ingress defaultBackend enabled" } } }, @@ -9065,6 +9008,7 @@ }, "resources": { "type": "object", + "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } @@ -10991,6 +10935,7 @@ }, "resources": { "type": "object", + "description": "compute resources", "properties": { "limits": { "type": "object" }, "requests": { "type": "object" } From 998619231621eaa99e4942b9e7356a47fd1a331e Mon Sep 17 00:00:00 2001 From: takuyaymd Date: Tue, 30 May 2023 15:38:08 +0900 Subject: [PATCH 16/16] fixed defaultBackend --- charts/vald/templates/gateway/filter/ing.yaml | 2 +- charts/vald/templates/gateway/lb/ing.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/vald/templates/gateway/filter/ing.yaml b/charts/vald/templates/gateway/filter/ing.yaml index d13cde8308..b00cded218 100644 --- a/charts/vald/templates/gateway/filter/ing.yaml +++ b/charts/vald/templates/gateway/filter/ing.yaml @@ -31,7 +31,7 @@ metadata: app.kubernetes.io/component: gateway-filter name: {{ $gateway.name }}-ingress spec: - {{- if and $gateway.ingress.defaultBackend.enabled }} + {{- if $gateway.ingress.defaultBackend.enabled }} defaultBackend: service: name: {{ $gateway.name }} diff --git a/charts/vald/templates/gateway/lb/ing.yaml b/charts/vald/templates/gateway/lb/ing.yaml index 41cc627451..052d430d05 100644 --- a/charts/vald/templates/gateway/lb/ing.yaml +++ b/charts/vald/templates/gateway/lb/ing.yaml @@ -31,7 +31,7 @@ metadata: app.kubernetes.io/component: gateway-lb name: {{ $gateway.name }}-ingress spec: - {{- if and $gateway.ingress.defaultBackend.enabled }} + {{- if $gateway.ingress.defaultBackend.enabled }} defaultBackend: service: name: {{ $gateway.name }}