mirror of
https://github.com/bjw-s-labs/helm-charts.git
synced 2025-07-04 08:57:04 +02:00
feat(common)!: Release v3.0.0-beta3
This commit is contained in:
parent
9d11c1b719
commit
51035c0eaf
17 changed files with 36 additions and 36 deletions
|
@ -22,7 +22,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -50,7 +50,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -85,7 +85,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -116,7 +116,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: spec.jobTemplate.spec.template.metadata.labels
|
path: spec.jobTemplate.spec.template.metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -18,7 +18,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -46,7 +46,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -81,7 +81,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
|
|
@ -18,7 +18,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -46,7 +46,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -81,7 +81,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
|
|
@ -18,7 +18,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -46,7 +46,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -81,7 +81,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -112,7 +112,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: spec.template.metadata.labels
|
path: spec.template.metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
test_label: test
|
test_label: test
|
||||||
|
|
|
@ -18,7 +18,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -46,7 +46,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
@ -81,7 +81,7 @@ tests:
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels
|
path: metadata.labels
|
||||||
value:
|
value:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/managed-by: Helm
|
app.kubernetes.io/managed-by: Helm
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
|
|
@ -15,7 +15,7 @@ tests:
|
||||||
value: RELEASE-NAME
|
value: RELEASE-NAME
|
||||||
- documentIndex: *deploymentDoc
|
- documentIndex: *deploymentDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels['app.kubernetes.io/component']
|
path: metadata.labels['common.bjw-s.dev/controller']
|
||||||
value: main
|
value: main
|
||||||
|
|
||||||
- it: additional controllers should pass
|
- it: additional controllers should pass
|
||||||
|
@ -39,7 +39,7 @@ tests:
|
||||||
value: RELEASE-NAME-main
|
value: RELEASE-NAME-main
|
||||||
- documentIndex: *firstDeploymentDoc
|
- documentIndex: *firstDeploymentDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels['app.kubernetes.io/component']
|
path: metadata.labels['common.bjw-s.dev/controller']
|
||||||
value: main
|
value: main
|
||||||
- documentIndex: &secondDeploymentDoc 1
|
- documentIndex: &secondDeploymentDoc 1
|
||||||
isKind:
|
isKind:
|
||||||
|
@ -50,7 +50,7 @@ tests:
|
||||||
value: RELEASE-NAME-second
|
value: RELEASE-NAME-second
|
||||||
- documentIndex: *secondDeploymentDoc
|
- documentIndex: *secondDeploymentDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels['app.kubernetes.io/component']
|
path: metadata.labels['common.bjw-s.dev/controller']
|
||||||
value: second
|
value: second
|
||||||
|
|
||||||
- it: additional controllers with nameOverride should pass
|
- it: additional controllers with nameOverride should pass
|
||||||
|
@ -75,7 +75,7 @@ tests:
|
||||||
value: RELEASE-NAME-main
|
value: RELEASE-NAME-main
|
||||||
- documentIndex: *firstDeploymentDoc
|
- documentIndex: *firstDeploymentDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels['app.kubernetes.io/component']
|
path: metadata.labels['common.bjw-s.dev/controller']
|
||||||
value: main
|
value: main
|
||||||
- documentIndex: &secondDeploymentDoc 1
|
- documentIndex: &secondDeploymentDoc 1
|
||||||
isKind:
|
isKind:
|
||||||
|
@ -86,7 +86,7 @@ tests:
|
||||||
value: RELEASE-NAME-testOverride
|
value: RELEASE-NAME-testOverride
|
||||||
- documentIndex: *secondDeploymentDoc
|
- documentIndex: *secondDeploymentDoc
|
||||||
equal:
|
equal:
|
||||||
path: metadata.labels['app.kubernetes.io/component']
|
path: metadata.labels['common.bjw-s.dev/controller']
|
||||||
value: second
|
value: second
|
||||||
|
|
||||||
- it: daemonset should pass
|
- it: daemonset should pass
|
||||||
|
|
|
@ -50,7 +50,7 @@ tests:
|
||||||
path: spec.podSelector
|
path: spec.podSelector
|
||||||
value:
|
value:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/component: main
|
common.bjw-s.dev/controller: main
|
||||||
app.kubernetes.io/instance: RELEASE-NAME
|
app.kubernetes.io/instance: RELEASE-NAME
|
||||||
app.kubernetes.io/name: RELEASE-NAME
|
app.kubernetes.io/name: RELEASE-NAME
|
||||||
|
|
||||||
|
|
|
@ -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: 3.0.0-beta2
|
version: 3.0.0-beta3
|
||||||
kubeVersion: ">=1.22.0-0"
|
kubeVersion: ">=1.22.0-0"
|
||||||
keywords:
|
keywords:
|
||||||
- common
|
- common
|
||||||
|
|
|
@ -12,7 +12,7 @@ using the common library.
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- $labels := merge
|
{{- $labels := merge
|
||||||
(dict "app.kubernetes.io/component" $cronjobObject.identifier)
|
(dict "common.bjw-s.dev/controller" $cronjobObject.identifier)
|
||||||
($cronjobObject.labels | default dict)
|
($cronjobObject.labels | default dict)
|
||||||
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
||||||
-}}
|
-}}
|
||||||
|
|
|
@ -7,7 +7,7 @@ within the common library.
|
||||||
{{- $daemonsetObject := .object -}}
|
{{- $daemonsetObject := .object -}}
|
||||||
|
|
||||||
{{- $labels := merge
|
{{- $labels := merge
|
||||||
(dict "app.kubernetes.io/component" $daemonsetObject.identifier)
|
(dict "common.bjw-s.dev/controller" $daemonsetObject.identifier)
|
||||||
($daemonsetObject.labels | default dict)
|
($daemonsetObject.labels | default dict)
|
||||||
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
||||||
-}}
|
-}}
|
||||||
|
@ -30,7 +30,7 @@ spec:
|
||||||
revisionHistoryLimit: {{ default 3 $daemonsetObject.revisionHistoryLimit }}
|
revisionHistoryLimit: {{ default 3 $daemonsetObject.revisionHistoryLimit }}
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/component: {{ $daemonsetObject.identifier }}
|
common.bjw-s.dev/controller: {{ $daemonsetObject.identifier }}
|
||||||
{{- include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | nindent 6 }}
|
{{- include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | nindent 6 }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -7,7 +7,7 @@ using the common library.
|
||||||
{{- $deploymentObject := .object -}}
|
{{- $deploymentObject := .object -}}
|
||||||
|
|
||||||
{{- $labels := merge
|
{{- $labels := merge
|
||||||
(dict "app.kubernetes.io/component" $deploymentObject.identifier)
|
(dict "common.bjw-s.dev/controller" $deploymentObject.identifier)
|
||||||
($deploymentObject.labels | default dict)
|
($deploymentObject.labels | default dict)
|
||||||
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
||||||
-}}
|
-}}
|
||||||
|
@ -50,7 +50,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/component: {{ $deploymentObject.identifier }}
|
common.bjw-s.dev/controller: {{ $deploymentObject.identifier }}
|
||||||
{{- include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | nindent 6 }}
|
{{- include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | nindent 6 }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -7,7 +7,7 @@ within the common library.
|
||||||
{{- $jobObject := .object -}}
|
{{- $jobObject := .object -}}
|
||||||
|
|
||||||
{{- $labels := merge
|
{{- $labels := merge
|
||||||
(dict "app.kubernetes.io/component" $jobObject.identifier)
|
(dict "common.bjw-s.dev/controller" $jobObject.identifier)
|
||||||
($jobObject.labels | default dict)
|
($jobObject.labels | default dict)
|
||||||
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
||||||
-}}
|
-}}
|
||||||
|
|
|
@ -20,7 +20,7 @@ within the common library.
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $podSelector = dict "matchLabels" (merge
|
{{- $podSelector = dict "matchLabels" (merge
|
||||||
($networkPolicyObject.extraSelectorLabels | default dict)
|
($networkPolicyObject.extraSelectorLabels | default dict)
|
||||||
(dict "app.kubernetes.io/component" $networkPolicyObject.controller)
|
(dict "common.bjw-s.dev/controller" $networkPolicyObject.controller)
|
||||||
(include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | fromYaml)
|
(include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | fromYaml)
|
||||||
) -}}
|
) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -96,7 +96,7 @@ spec:
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- with (merge
|
{{- with (merge
|
||||||
($serviceObject.extraSelectorLabels | default dict)
|
($serviceObject.extraSelectorLabels | default dict)
|
||||||
(dict "app.kubernetes.io/component" $serviceObject.controller)
|
(dict "common.bjw-s.dev/controller" $serviceObject.controller)
|
||||||
(include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | fromYaml)
|
(include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | fromYaml)
|
||||||
) }}
|
) }}
|
||||||
selector: {{- toYaml . | nindent 4 }}
|
selector: {{- toYaml . | nindent 4 }}
|
||||||
|
|
|
@ -7,7 +7,7 @@ within the common library.
|
||||||
{{- $statefulsetObject := .object -}}
|
{{- $statefulsetObject := .object -}}
|
||||||
|
|
||||||
{{- $labels := merge
|
{{- $labels := merge
|
||||||
(dict "app.kubernetes.io/component" $statefulsetObject.identifier)
|
(dict "common.bjw-s.dev/controller" $statefulsetObject.identifier)
|
||||||
($statefulsetObject.labels | default dict)
|
($statefulsetObject.labels | default dict)
|
||||||
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
(include "bjw-s.common.lib.metadata.allLabels" $rootContext | fromYaml)
|
||||||
-}}
|
-}}
|
||||||
|
@ -38,7 +38,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/component: {{ $statefulsetObject.identifier }}
|
common.bjw-s.dev/controller: {{ $statefulsetObject.identifier }}
|
||||||
{{- include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | nindent 6 }}
|
{{- include "bjw-s.common.lib.metadata.selectorLabels" $rootContext | nindent 6 }}
|
||||||
serviceName: {{ include "bjw-s.common.lib.chart.names.fullname" $rootContext }}
|
serviceName: {{ include "bjw-s.common.lib.chart.names.fullname" $rootContext }}
|
||||||
template:
|
template:
|
||||||
|
|
|
@ -7,7 +7,7 @@ Returns the value for labels
|
||||||
|
|
||||||
{{- /* Default labels */ -}}
|
{{- /* Default labels */ -}}
|
||||||
{{- $labels := merge
|
{{- $labels := merge
|
||||||
(dict "app.kubernetes.io/component" $controllerObject.identifier)
|
(dict "common.bjw-s.dev/controller" $controllerObject.identifier)
|
||||||
-}}
|
-}}
|
||||||
|
|
||||||
{{- /* Fetch the Pod selectorLabels */ -}}
|
{{- /* Fetch the Pod selectorLabels */ -}}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "http://json-schema.org/draft-07/schema",
|
"$schema": "http://json-schema.org/draft-07/schema",
|
||||||
"$id": "https://raw.githubusercontent.com/bjw-s/helm-charts/common-3.0.0-beta2/charts/library/common/values.schema.json",
|
"$id": "https://raw.githubusercontent.com/bjw-s/helm-charts/common-3.0.0-beta3/charts/library/common/values.schema.json",
|
||||||
|
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue