This commit is contained in:
76
pkg/builder/labels/labels.go
Normal file
76
pkg/builder/labels/labels.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package builder
|
||||
|
||||
import (
|
||||
zitadelv1alpha1 "gitea.corredorconect.com/software-engineering/zitadel-k8s-operator/api/v1alpha1"
|
||||
deployment "gitea.corredorconect.com/software-engineering/zitadel-k8s-operator/pkg/deployment"
|
||||
)
|
||||
|
||||
const (
|
||||
appLabel = "app.kubernetes.io/name"
|
||||
instanceLabel = "app.kubernetes.io/instance"
|
||||
deploymentPodName = "deployment.kubernetes.io/pod-name"
|
||||
appZitadel = "zitadel"
|
||||
appLoginUI = "zitadel-login-ui"
|
||||
appExporter = "exporter"
|
||||
)
|
||||
|
||||
type LabelsBuilder struct {
|
||||
labels map[string]string
|
||||
}
|
||||
|
||||
func NewLabelsBuilder() *LabelsBuilder {
|
||||
return &LabelsBuilder{
|
||||
labels: map[string]string{},
|
||||
}
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithApp(app string) *LabelsBuilder {
|
||||
b.labels[appLabel] = app
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithInstance(instance string) *LabelsBuilder {
|
||||
b.labels[instanceLabel] = instance
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithZitadel(zitadel *zitadelv1alpha1.Cluster) *LabelsBuilder {
|
||||
return b.WithApp(appZitadel).
|
||||
WithInstance(zitadel.Name)
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithLoginUI(instance *zitadelv1alpha1.Instance) *LabelsBuilder {
|
||||
return b.WithApp(appLoginUI).
|
||||
WithInstance(instance.Name)
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithDeploymentPod(zitadel *zitadelv1alpha1.Cluster, podIndex int) *LabelsBuilder {
|
||||
b.labels[deploymentPodName] = deployment.PodName(zitadel.ObjectMeta, podIndex)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithLabels(labels map[string]string) *LabelsBuilder {
|
||||
for k, v := range labels {
|
||||
b.labels[k] = v
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithZitadelSelectorLabels(zitadel *zitadelv1alpha1.Cluster) *LabelsBuilder {
|
||||
b = b.WithZitadel(zitadel)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithLoginUISelectorLabels(instance *zitadelv1alpha1.Instance) *LabelsBuilder {
|
||||
b = b.WithLoginUI(instance)
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) WithMetricsSelectorLabels(zitadel *zitadelv1alpha1.Cluster) *LabelsBuilder {
|
||||
return b.WithApp(appExporter).
|
||||
WithInstance(zitadel.Name)
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) Build() map[string]string {
|
||||
return b.labels
|
||||
}
|
||||
Reference in New Issue
Block a user