Skip to content

Commit

Permalink
feat: Consistent labelling
Browse files Browse the repository at this point in the history
  • Loading branch information
a-thaler committed Jan 29, 2025
1 parent a46e676 commit 1463331
Show file tree
Hide file tree
Showing 18 changed files with 186 additions and 46 deletions.
3 changes: 1 addition & 2 deletions config/default/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@ labels:
- includeSelectors: false
pairs:
kyma-project.io/module: telemetry
app.kubernetes.io/component: manager
app.kubernetes.io/part-of: telemetry
app.kubernetes.io/name: telemetry-manager
app.kubernetes.io/instance: telemetry-manager

resources:
- ../crd
- ../rbac
Expand Down
2 changes: 0 additions & 2 deletions config/development/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@ labels:
- includeSelectors: false
pairs:
kyma-project.io/module: telemetry
app.kubernetes.io/component: manager
app.kubernetes.io/part-of: telemetry
app.kubernetes.io/name: telemetry-manager
app.kubernetes.io/instance: telemetry-manager

patches:
- patch: |-
Expand Down
6 changes: 0 additions & 6 deletions config/samples/operator_v1alpha1_telemetry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,5 @@
apiVersion: operator.kyma-project.io/v1alpha1
kind: Telemetry
metadata:
labels:
app.kubernetes.io/name: telemetry
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: telemetry-manager
app.kubernetes.io/managed-by: kustomize
app.kubernetes.io/created-by: telemetry-manager
name: default

2 changes: 1 addition & 1 deletion internal/reconciler/logpipeline/fluentbit/reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ func (r *Reconciler) createOrUpdateFluentBitResources(ctx context.Context, pipel
allowedPorts = append(allowedPorts, ports.IstioEnvoy)
}

networkPolicy := commonresources.MakeNetworkPolicy(r.config.DaemonSet, allowedPorts, fluentbit.Labels())
networkPolicy := commonresources.MakeNetworkPolicy(r.config.DaemonSet, allowedPorts, fluentbit.Labels(), fluentbit.SelectorLabels())
if err := k8sutils.CreateOrUpdateNetworkPolicy(ctx, ownerRefSetter, networkPolicy); err != nil {
return fmt.Errorf("failed to create fluent bit network policy: %w", err)
}
Expand Down
14 changes: 13 additions & 1 deletion internal/resources/common/labels.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
package common

const (
nameLabelKey = "app.kubernetes.io/name"
nameLabelKey = "app.kubernetes.io/name"
moduleLabelKey = "kyma-project.io/module"
moduleLabelValue = "telemetry"
partOfLabelKey = "app.kubernetes.io/part-of"
partOfLabelValue = "telemetry"
)

func MakeDefaultLabels(baseName string) map[string]string {
return map[string]string{
nameLabelKey: baseName,
moduleLabelKey: moduleLabelValue,
partOfLabelKey: partOfLabelValue,
}
}

func MakeDefaultSelectorLabels(baseName string) map[string]string {
return map[string]string{
nameLabelKey: baseName,
}
Expand Down
4 changes: 2 additions & 2 deletions internal/resources/common/resources.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func MakeClusterRoleBinding(name types.NamespacedName) *rbacv1.ClusterRoleBindin
return &clusterRoleBinding
}

func MakeNetworkPolicy(name types.NamespacedName, allowedPorts []int32, labels map[string]string) *networkingv1.NetworkPolicy {
func MakeNetworkPolicy(name types.NamespacedName, allowedPorts []int32, labels map[string]string, selectorLabels map[string]string) *networkingv1.NetworkPolicy {
return &networkingv1.NetworkPolicy{
ObjectMeta: metav1.ObjectMeta{
Name: name.Name,
Expand All @@ -51,7 +51,7 @@ func MakeNetworkPolicy(name types.NamespacedName, allowedPorts []int32, labels m
},
Spec: networkingv1.NetworkPolicySpec{
PodSelector: metav1.LabelSelector{
MatchLabels: labels,
MatchLabels: selectorLabels,
},
PolicyTypes: []networkingv1.PolicyType{
networkingv1.PolicyTypeIngress,
Expand Down
20 changes: 13 additions & 7 deletions internal/resources/fluentbit/resources.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"k8s.io/utils/ptr"

"github.com/kyma-project/telemetry-manager/internal/fluentbit/ports"
"github.com/kyma-project/telemetry-manager/internal/resources/common"

Check failure on line 18 in internal/resources/fluentbit/resources.go

View workflow job for this annotation

GitHub Actions / lint

import "github.com/kyma-project/telemetry-manager/internal/resources/common" imported without alias but must be with alias "commonresources" according to config (importas)
)

const checksumAnnotationKey = "checksum/logpipeline-config"
Expand Down Expand Up @@ -70,7 +71,7 @@ func MakeDaemonSet(name types.NamespacedName, checksum string, dsConfig DaemonSe
},
Spec: appsv1.DaemonSetSpec{
Selector: &metav1.LabelSelector{
MatchLabels: Labels(),
MatchLabels: SelectorLabels(),
},
Template: corev1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Expand Down Expand Up @@ -292,7 +293,7 @@ func MakeMetricsService(name types.NamespacedName) *corev1.Service {
TargetPort: intstr.FromString("http"),
},
},
Selector: Labels(),
Selector: SelectorLabels(),
Type: corev1.ServiceTypeClusterIP,
},
}
Expand Down Expand Up @@ -322,7 +323,7 @@ func MakeExporterMetricsService(name types.NamespacedName) *corev1.Service {
TargetPort: intstr.FromString("http-metrics"),
},
},
Selector: Labels(),
Selector: SelectorLabels(),
Type: corev1.ServiceTypeClusterIP,
},
}
Expand Down Expand Up @@ -423,8 +424,13 @@ end
}

func Labels() map[string]string {
return map[string]string{
"app.kubernetes.io/name": "fluent-bit",
"app.kubernetes.io/instance": "telemetry",
}
result := common.MakeDefaultLabels("fluent-bit")
result["app.kubernetes.io/instance"] = "telemetry"
return result

Check failure on line 429 in internal/resources/fluentbit/resources.go

View workflow job for this annotation

GitHub Actions / lint

return statements should not be cuddled if block has more than two lines (wsl)
}

func SelectorLabels() map[string]string {
result := common.MakeDefaultSelectorLabels("fluent-bit")
result["app.kubernetes.io/instance"] = "telemetry"
return result

Check failure on line 435 in internal/resources/fluentbit/resources.go

View workflow job for this annotation

GitHub Actions / lint

return statements should not be cuddled if block has more than two lines (wsl)
}
2 changes: 2 additions & 0 deletions internal/resources/fluentbit/resources_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ func TestMakeDaemonSet(t *testing.T) {
}, daemonSet.Spec.Selector.MatchLabels)
require.Equal(t, map[string]string{
"app.kubernetes.io/name": "fluent-bit",
"kyma-project.io/module": "telemetry",
"app.kubernetes.io/part-of": "telemetry",
"app.kubernetes.io/instance": "telemetry",
"sidecar.istio.io/inject": "true",
"telemetry.kyma-project.io/log-export": "true",
Expand Down
8 changes: 4 additions & 4 deletions internal/resources/otelcollector/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,6 @@ func (aad *AgentApplierDeleter) DeleteResources(ctx context.Context, c client.Cl
}

func (aad *AgentApplierDeleter) makeAgentDaemonSet(configChecksum string) *appsv1.DaemonSet {
selectorLabels := commonresources.MakeDefaultLabels(aad.baseName)

annotations := map[string]string{"checksum/config": configChecksum}
maps.Copy(annotations, makeIstioAnnotations(IstioCertPath))

Expand Down Expand Up @@ -150,15 +148,17 @@ func (aad *AgentApplierDeleter) makeAgentDaemonSet(configChecksum string) *appsv

podSpec := makePodSpec(aad.baseName, aad.image, opts...)

selectorLabels := commonresources.MakeDefaultSelectorLabels(aad.baseName)
labels := commonresources.MakeDefaultLabels(aad.baseName)
podLabels := make(map[string]string)
maps.Copy(podLabels, selectorLabels)
maps.Copy(podLabels, labels)
maps.Copy(podLabels, aad.extraPodLabel)

return &appsv1.DaemonSet{
ObjectMeta: metav1.ObjectMeta{
Name: aad.baseName,
Namespace: aad.namespace,
Labels: selectorLabels,
Labels: labels,
},
Spec: appsv1.DaemonSetSpec{
Selector: &metav1.LabelSelector{
Expand Down
7 changes: 3 additions & 4 deletions internal/resources/otelcollector/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"context"
"errors"
"fmt"
"maps"
"strconv"

corev1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -64,7 +63,7 @@ func applyCommonResources(ctx context.Context, c client.Client, name types.Names
return fmt.Errorf("failed to create metrics service: %w", err)
}

if err := k8sutils.CreateOrUpdateNetworkPolicy(ctx, c, commonresources.MakeNetworkPolicy(name, allowedPorts, commonresources.MakeDefaultLabels(name.Name))); err != nil {
if err := k8sutils.CreateOrUpdateNetworkPolicy(ctx, c, commonresources.MakeNetworkPolicy(name, allowedPorts, commonresources.MakeDefaultLabels(name.Name), commonresources.MakeDefaultSelectorLabels(name.Name))); err != nil {
return fmt.Errorf("failed to create network policy: %w", err)
}

Expand Down Expand Up @@ -156,10 +155,10 @@ func makeSecret(name types.NamespacedName, secretData map[string][]byte) *corev1

func makeMetricsService(name types.NamespacedName) *corev1.Service {
labels := commonresources.MakeDefaultLabels(name.Name)
selectorLabels := make(map[string]string)
maps.Copy(selectorLabels, labels)
labels["telemetry.kyma-project.io/self-monitor"] = "enabled"

selectorLabels := commonresources.MakeDefaultSelectorLabels(name.Name)

return &corev1.Service{
ObjectMeta: metav1.ObjectMeta{
Name: name.Name + "-metrics",
Expand Down
26 changes: 14 additions & 12 deletions internal/resources/otelcollector/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,11 @@ func (gad *GatewayApplierDeleter) DeleteResources(ctx context.Context, c client.
}

func (gad *GatewayApplierDeleter) makeGatewayDeployment(configChecksum string, opts GatewayApplyOptions) *appsv1.Deployment {
selectorLabels := commonresources.MakeDefaultLabels(gad.baseName)
labels := commonresources.MakeDefaultLabels(gad.baseName)
selectorLabels := commonresources.MakeDefaultSelectorLabels(gad.baseName)
podLabels := make(map[string]string)
maps.Copy(podLabels, labels)
maps.Copy(podLabels, gad.extraPodLabels)

annotations := gad.makeAnnotations(configChecksum, opts)

Expand All @@ -270,15 +274,11 @@ func (gad *GatewayApplierDeleter) makeGatewayDeployment(configChecksum string, o
commonresources.WithGoMemLimitEnvVar(resources.Limits[corev1.ResourceMemory]),
)

podLabels := make(map[string]string)
maps.Copy(podLabels, selectorLabels)
maps.Copy(podLabels, gad.extraPodLabels)

return &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: gad.baseName,
Namespace: gad.namespace,
Labels: selectorLabels,
Labels: labels,
},
Spec: appsv1.DeploymentSpec{
Replicas: ptr.To(opts.Replicas),
Expand Down Expand Up @@ -348,13 +348,14 @@ func makePodAffinity(labels map[string]string) corev1.Affinity {
}

func (gad *GatewayApplierDeleter) makeOTLPService() *corev1.Service {
labels := commonresources.MakeDefaultLabels(gad.baseName)
commonLabels := commonresources.MakeDefaultLabels(gad.baseName)
selectorLabels := commonresources.MakeDefaultSelectorLabels(gad.baseName)

return &corev1.Service{
ObjectMeta: metav1.ObjectMeta{
Name: gad.otlpServiceName,
Namespace: gad.namespace,
Labels: labels,
Labels: commonLabels,
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
Expand All @@ -371,23 +372,24 @@ func (gad *GatewayApplierDeleter) makeOTLPService() *corev1.Service {
TargetPort: intstr.FromInt32(ports.OTLPHTTP),
},
},
Selector: labels,
Selector: selectorLabels,
Type: corev1.ServiceTypeClusterIP,
},
}
}

func (gad *GatewayApplierDeleter) makePeerAuthentication() *istiosecurityclientv1.PeerAuthentication {
labels := commonresources.MakeDefaultLabels(gad.baseName)
commonLabels := commonresources.MakeDefaultLabels(gad.baseName)
selectorLabels := commonresources.MakeDefaultSelectorLabels(gad.baseName)

return &istiosecurityclientv1.PeerAuthentication{
ObjectMeta: metav1.ObjectMeta{
Name: gad.baseName,
Namespace: gad.namespace,
Labels: labels,
Labels: commonLabels,
},
Spec: istiosecurityv1.PeerAuthentication{
Selector: &istiotypev1beta1.WorkloadSelector{MatchLabels: labels},
Selector: &istiotypev1beta1.WorkloadSelector{MatchLabels: selectorLabels},
Mtls: &istiosecurityv1.PeerAuthentication_MutualTLS{Mode: istiosecurityv1.PeerAuthentication_MutualTLS_PERMISSIVE},
},
}
Expand Down
20 changes: 20 additions & 0 deletions internal/resources/otelcollector/testdata/log-gateway.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-log-gateway
namespace: kyma-system
---
Expand All @@ -17,6 +19,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-log-gateway
namespace: kyma-system
---
Expand All @@ -30,6 +34,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
telemetry.kyma-project.io/self-monitor: enabled
name: telemetry-log-gateway-metrics
namespace: kyma-system
Expand All @@ -51,6 +57,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-otlp-logs
namespace: kyma-system
spec:
Expand All @@ -75,6 +83,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-log-gateway
namespace: kyma-system
---
Expand All @@ -84,6 +94,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-log-gateway
namespace: kyma-system
spec:
Expand All @@ -99,6 +111,8 @@ spec:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
sidecar.istio.io/inject: "true"
telemetry.kyma-project.io/log-export: "true"
telemetry.kyma-project.io/log-ingest: "true"
Expand Down Expand Up @@ -190,6 +204,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-log-gateway
namespace: kyma-system
spec:
Expand Down Expand Up @@ -223,6 +239,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-log-gateway
namespace: kyma-system
rules:
Expand Down Expand Up @@ -250,6 +268,8 @@ metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: telemetry-log-gateway
app.kubernetes.io/part-of: telemetry
kyma-project.io/module: telemetry
name: telemetry-log-gateway
namespace: kyma-system
roleRef:
Expand Down
Loading

0 comments on commit 1463331

Please sign in to comment.