All checks were successful
Build and Publish / build-release (push) Successful in 8m29s
40 lines
835 B
Go
40 lines
835 B
Go
package metadata
|
|
|
|
import (
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/apimachinery/pkg/types"
|
|
)
|
|
|
|
type MetadataBuilder struct {
|
|
objMeta metav1.ObjectMeta
|
|
}
|
|
|
|
func NewMetadataBuilder(key types.NamespacedName) *MetadataBuilder {
|
|
return &MetadataBuilder{
|
|
objMeta: metav1.ObjectMeta{
|
|
Name: key.Name,
|
|
Namespace: key.Namespace,
|
|
Labels: map[string]string{},
|
|
Annotations: map[string]string{},
|
|
},
|
|
}
|
|
}
|
|
|
|
func (b *MetadataBuilder) WithLabels(labels map[string]string) *MetadataBuilder {
|
|
for k, v := range labels {
|
|
b.objMeta.Labels[k] = v
|
|
}
|
|
return b
|
|
}
|
|
|
|
func (b *MetadataBuilder) WithAnnotations(annotations map[string]string) *MetadataBuilder {
|
|
for k, v := range annotations {
|
|
b.objMeta.Annotations[k] = v
|
|
}
|
|
return b
|
|
}
|
|
|
|
func (b *MetadataBuilder) Build() metav1.ObjectMeta {
|
|
return b.objMeta
|
|
}
|