Skip to content

Commit ff1fb8e

Browse files
committed
Add labels to volumeClaimTemplates in StatefulSets if includeVolumeClaimTemplates is true
1 parent 17a06a7 commit ff1fb8e

File tree

8 files changed

+444
-30
lines changed

8 files changed

+444
-30
lines changed

api/internal/konfig/builtinpluginconsts/commonlabels.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,4 @@ commonLabels:
110110
create: false
111111
group: networking.k8s.io
112112
kind: NetworkPolicy
113-
` + metadataLabelsFieldSpecs
113+
` + metadataLabelsFieldSpecs + volumeClaimTemplatesMetadataLabels

api/internal/konfig/builtinpluginconsts/defaultconfig.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ func GetDefaultFieldSpecs() []byte {
1414
[]byte(nameSuffixFieldSpecs),
1515
[]byte(commonLabelFieldSpecs),
1616
[]byte(templateLabelFieldSpecs),
17+
[]byte(volumeClaimTemplateLabelFieldSpecs),
1718
[]byte(commonAnnotationFieldSpecs),
1819
[]byte(namespaceFieldSpecs),
1920
[]byte(varReferenceFieldSpecs),
@@ -32,6 +33,7 @@ func GetDefaultFieldSpecsAsMap() map[string]string {
3233
result["namesuffix"] = nameSuffixFieldSpecs
3334
result["commonlabels"] = commonLabelFieldSpecs
3435
result["templatelabels"] = templateLabelFieldSpecs
36+
result["volumeclaimtemplatelabels"] = volumeClaimTemplateLabelFieldSpecs
3537
result["commonannotations"] = commonAnnotationFieldSpecs
3638
result["namespace"] = namespaceFieldSpecs
3739
result["varreference"] = varReferenceFieldSpecs

api/internal/konfig/builtinpluginconsts/metadatalabels.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ const metadataLabelsFieldSpecs = `
2929
group: apps
3030
kind: StatefulSet
3131
32-
- path: spec/volumeClaimTemplates[]/metadata/labels
33-
create: true
34-
group: apps
35-
kind: StatefulSet
36-
3732
- path: spec/template/metadata/labels
3833
create: true
3934
group: batch
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2019 The Kubernetes Authors.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package builtinpluginconsts
5+
6+
const volumeClaimTemplateLabelFieldSpecs = `
7+
volumeClaimTemplateLabels:
8+
` + volumeClaimTemplatesMetadataLabels
9+
10+
const volumeClaimTemplatesMetadataLabels = `
11+
- path: spec/volumeClaimTemplates[]/metadata/labels
12+
create: true
13+
group: apps
14+
kind: StatefulSet
15+
`

api/internal/plugins/builtinconfig/transformerconfig.go

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,18 @@ import (
1919
//nolint:tagalign
2020
type TransformerConfig struct {
2121
// if any fields are added, update the DeepCopy implementation
22-
NamePrefix types.FsSlice `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"`
23-
NameSuffix types.FsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"`
24-
NameSpace types.FsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"`
25-
CommonLabels types.FsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"`
26-
Labels types.FsSlice `json:"labels,omitempty" yaml:"labels,omitempty"`
27-
TemplateLabels types.FsSlice `json:"templateLabels,omitempty" yaml:"templateLabels,omitempty"`
28-
CommonAnnotations types.FsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`
29-
NameReference nbrSlice `json:"nameReference,omitempty" yaml:"nameReference,omitempty"`
30-
VarReference types.FsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"`
31-
Images types.FsSlice `json:"images,omitempty" yaml:"images,omitempty"`
32-
Replicas types.FsSlice `json:"replicas,omitempty" yaml:"replicas,omitempty"`
22+
NamePrefix types.FsSlice `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"`
23+
NameSuffix types.FsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"`
24+
NameSpace types.FsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"`
25+
CommonLabels types.FsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"`
26+
Labels types.FsSlice `json:"labels,omitempty" yaml:"labels,omitempty"`
27+
TemplateLabels types.FsSlice `json:"templateLabels,omitempty" yaml:"templateLabels,omitempty"`
28+
VolumeClaimTemplateLabels types.FsSlice `json:"volumeClaimTemplateLabels,omitempty" yaml:"volumeClaimTemplateLabels,omitempty"`
29+
CommonAnnotations types.FsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`
30+
NameReference nbrSlice `json:"nameReference,omitempty" yaml:"nameReference,omitempty"`
31+
VarReference types.FsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"`
32+
Images types.FsSlice `json:"images,omitempty" yaml:"images,omitempty"`
33+
Replicas types.FsSlice `json:"replicas,omitempty" yaml:"replicas,omitempty"`
3334
}
3435

3536
// MakeEmptyConfig returns an empty TransformerConfig object
@@ -40,17 +41,18 @@ func MakeEmptyConfig() *TransformerConfig {
4041
// DeepCopy returns a new copy of TransformerConfig
4142
func (t *TransformerConfig) DeepCopy() *TransformerConfig {
4243
return &TransformerConfig{
43-
NamePrefix: t.NamePrefix.DeepCopy(),
44-
NameSuffix: t.NameSuffix.DeepCopy(),
45-
NameSpace: t.NameSpace.DeepCopy(),
46-
CommonLabels: t.CommonLabels.DeepCopy(),
47-
Labels: t.Labels.DeepCopy(),
48-
TemplateLabels: t.TemplateLabels.DeepCopy(),
49-
CommonAnnotations: t.CommonAnnotations.DeepCopy(),
50-
NameReference: t.NameReference.DeepCopy(),
51-
VarReference: t.VarReference.DeepCopy(),
52-
Images: t.Images.DeepCopy(),
53-
Replicas: t.Replicas.DeepCopy(),
44+
NamePrefix: t.NamePrefix.DeepCopy(),
45+
NameSuffix: t.NameSuffix.DeepCopy(),
46+
NameSpace: t.NameSpace.DeepCopy(),
47+
CommonLabels: t.CommonLabels.DeepCopy(),
48+
Labels: t.Labels.DeepCopy(),
49+
TemplateLabels: t.TemplateLabels.DeepCopy(),
50+
VolumeClaimTemplateLabels: t.VolumeClaimTemplateLabels.DeepCopy(),
51+
CommonAnnotations: t.CommonAnnotations.DeepCopy(),
52+
NameReference: t.NameReference.DeepCopy(),
53+
VarReference: t.VarReference.DeepCopy(),
54+
Images: t.Images.DeepCopy(),
55+
Replicas: t.Replicas.DeepCopy(),
5456
}
5557
}
5658

@@ -100,6 +102,7 @@ func (t *TransformerConfig) sortFields() {
100102
sort.Sort(t.CommonLabels)
101103
sort.Sort(t.Labels)
102104
sort.Sort(t.TemplateLabels)
105+
sort.Sort(t.VolumeClaimTemplateLabels)
103106
sort.Sort(t.CommonAnnotations)
104107
sort.Sort(t.NameReference)
105108
sort.Sort(t.VarReference)
@@ -181,6 +184,10 @@ func (t *TransformerConfig) Merge(input *TransformerConfig) (
181184
if err != nil {
182185
return nil, errors.WrapPrefixf(err, "failed to merge TemplateLabels fieldSpec")
183186
}
187+
merged.VolumeClaimTemplateLabels, err = t.VolumeClaimTemplateLabels.MergeAll(input.VolumeClaimTemplateLabels)
188+
if err != nil {
189+
return nil, errors.WrapPrefixf(err, "failed to merge VolumeClaimTemplateLabels fieldSpec")
190+
}
184191
merged.VarReference, err = t.VarReference.MergeAll(input.VarReference)
185192
if err != nil {
186193
return nil, errors.WrapPrefixf(err, "failed to merge VarReference fieldSpec")

api/internal/target/kusttarget_configplugin.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,13 @@ var transformerConfigurators = map[builtinhelpers.BuiltinPluginType]func(
310310
return nil, errors.WrapPrefixf(err, "failed to merge template fieldSpec")
311311
}
312312
}
313+
// merge spec/volumeClaimTemplates[]/metadata fieldSpecs if includeVolumeClaimTemplates flag is true
314+
if label.IncludeVolumeClaimTemplates {
315+
fss, err = fss.MergeAll(tc.VolumeClaimTemplateLabels)
316+
if err != nil {
317+
return nil, errors.WrapPrefixf(err, "failed to merge volumeClaimTemplate fieldSpec")
318+
}
319+
}
313320
// only add to metadata by default
314321
fss, err = fss.MergeOne(types.FieldSpec{Path: "metadata/labels", CreateIfNotPresent: true})
315322
}

0 commit comments

Comments
 (0)