mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-21 11:48:53 +00:00
Propagate labels to all managed resources
This commit is contained in:
parent
59fe4bea39
commit
3d496e8d23
4 changed files with 37 additions and 23 deletions
pkg
|
@ -378,7 +378,7 @@ func (c *Operator) sync(key string) error {
|
|||
|
||||
// Create governing service if it doesn't exist.
|
||||
svcClient := c.kclient.Core().Services(am.Namespace)
|
||||
if err = k8sutil.CreateOrUpdateService(svcClient, makeStatefulSetService(am)); err != nil {
|
||||
if err = k8sutil.CreateOrUpdateService(svcClient, makeStatefulSetService(am, c.config)); err != nil {
|
||||
return errors.Wrap(err, "synchronizing governing service failed")
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ func makeStatefulSet(am *monitoringv1.Alertmanager, old *v1beta1.StatefulSet, co
|
|||
statefulset := &v1beta1.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: prefixedName(am.Name),
|
||||
Labels: am.ObjectMeta.Labels,
|
||||
Labels: config.Labels.Merge(am.ObjectMeta.Labels),
|
||||
Annotations: am.ObjectMeta.Annotations,
|
||||
},
|
||||
Spec: *spec,
|
||||
|
@ -106,13 +106,13 @@ func makeStatefulSet(am *monitoringv1.Alertmanager, old *v1beta1.StatefulSet, co
|
|||
return statefulset, nil
|
||||
}
|
||||
|
||||
func makeStatefulSetService(p *monitoringv1.Alertmanager) *v1.Service {
|
||||
func makeStatefulSetService(p *monitoringv1.Alertmanager, config Config) *v1.Service {
|
||||
svc := &v1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: governingServiceName,
|
||||
Labels: map[string]string{
|
||||
Labels: config.Labels.Merge(map[string]string{
|
||||
"operated-alertmanager": "true",
|
||||
},
|
||||
}),
|
||||
},
|
||||
Spec: v1.ServiceSpec{
|
||||
ClusterIP: "None",
|
||||
|
@ -215,7 +215,7 @@ func makeStatefulSetSpec(a *monitoringv1.Alertmanager, config Config) (*v1beta1.
|
|||
},
|
||||
Template: v1.PodTemplateSpec{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Labels: podLabels,
|
||||
Labels: config.Labels.Merge(podLabels),
|
||||
Annotations: podAnnotations,
|
||||
},
|
||||
Spec: v1.PodSpec{
|
||||
|
|
|
@ -80,7 +80,21 @@ type Labels struct {
|
|||
|
||||
// Implement the flag.Value interface
|
||||
func (labels *Labels) String() string {
|
||||
return fmt.Sprintf(labels.LabelsString)
|
||||
return labels.LabelsString
|
||||
}
|
||||
|
||||
// Merge labels create a new map with labels merged.
|
||||
func (labels *Labels) Merge(otherLabels map[string]string) map[string]string {
|
||||
mergedLabels := map[string]string{}
|
||||
|
||||
for key, value := range otherLabels {
|
||||
mergedLabels[key] = value
|
||||
}
|
||||
|
||||
for key, value := range labels.LabelsMap {
|
||||
mergedLabels[key] = value
|
||||
}
|
||||
return mergedLabels
|
||||
}
|
||||
|
||||
// Implement the flag.Set interface
|
||||
|
@ -358,9 +372,9 @@ func (c *Operator) syncNodeEndpoints() error {
|
|||
eps := &v1.Endpoints{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: c.kubeletObjectName,
|
||||
Labels: map[string]string{
|
||||
Labels: c.config.Labels.Merge(map[string]string{
|
||||
"k8s-app": "kubelet",
|
||||
},
|
||||
}),
|
||||
},
|
||||
Subsets: []v1.EndpointSubset{
|
||||
{
|
||||
|
@ -406,9 +420,9 @@ func (c *Operator) syncNodeEndpoints() error {
|
|||
svc := &v1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: c.kubeletObjectName,
|
||||
Labels: map[string]string{
|
||||
Labels: c.config.Labels.Merge(map[string]string{
|
||||
"k8s-app": "kubelet",
|
||||
},
|
||||
}),
|
||||
},
|
||||
Spec: v1.ServiceSpec{
|
||||
Type: v1.ServiceTypeClusterIP,
|
||||
|
@ -670,7 +684,7 @@ func (c *Operator) sync(key string) error {
|
|||
}
|
||||
|
||||
// Create Secret if it doesn't exist.
|
||||
s, err := makeEmptyConfig(p.Name, ruleFileConfigMaps)
|
||||
s, err := makeEmptyConfig(p.Name, ruleFileConfigMaps, c.config)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "generating empty config secret failed")
|
||||
}
|
||||
|
@ -680,7 +694,7 @@ func (c *Operator) sync(key string) error {
|
|||
|
||||
// Create governing service if it doesn't exist.
|
||||
svcClient := c.kclient.Core().Services(p.Namespace)
|
||||
if err := k8sutil.CreateOrUpdateService(svcClient, makeStatefulSetService(p)); err != nil {
|
||||
if err := k8sutil.CreateOrUpdateService(svcClient, makeStatefulSetService(p, c.config)); err != nil {
|
||||
return errors.Wrap(err, "synchronizing governing service failed")
|
||||
}
|
||||
|
||||
|
@ -938,7 +952,7 @@ func (c *Operator) createConfig(p *monitoringv1.Prometheus, ruleFileConfigMaps [
|
|||
return errors.Wrap(err, "generating config failed")
|
||||
}
|
||||
|
||||
s, err := makeConfigSecret(p.Name, ruleFileConfigMaps)
|
||||
s, err := makeConfigSecret(p.Name, ruleFileConfigMaps, c.config)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "generating base secret failed")
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ func makeStatefulSet(p monitoringv1.Prometheus, old *v1beta1.StatefulSet, config
|
|||
statefulset := &v1beta1.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: prefixedName(p.Name),
|
||||
Labels: p.ObjectMeta.Labels,
|
||||
Labels: config.Labels.Merge(p.ObjectMeta.Labels),
|
||||
Annotations: p.ObjectMeta.Annotations,
|
||||
},
|
||||
Spec: *spec,
|
||||
|
@ -139,8 +139,8 @@ func makeStatefulSet(p monitoringv1.Prometheus, old *v1beta1.StatefulSet, config
|
|||
return statefulset, nil
|
||||
}
|
||||
|
||||
func makeEmptyConfig(name string, configMaps []*v1.ConfigMap) (*v1.Secret, error) {
|
||||
s, err := makeConfigSecret(name, configMaps)
|
||||
func makeEmptyConfig(name string, configMaps []*v1.ConfigMap, config Config) (*v1.Secret, error) {
|
||||
s, err := makeConfigSecret(name, configMaps, config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ func makeRuleConfigMapListFile(configMaps []*v1.ConfigMap) ([]byte, error) {
|
|||
return json.Marshal(cml)
|
||||
}
|
||||
|
||||
func makeConfigSecret(name string, configMaps []*v1.ConfigMap) (*v1.Secret, error) {
|
||||
func makeConfigSecret(name string, configMaps []*v1.ConfigMap, config Config) (*v1.Secret, error) {
|
||||
b, err := makeRuleConfigMapListFile(configMaps)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -220,7 +220,7 @@ func makeConfigSecret(name string, configMaps []*v1.ConfigMap) (*v1.Secret, erro
|
|||
return &v1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: configSecretName(name),
|
||||
Labels: managedByOperatorLabels,
|
||||
Labels: config.Labels.Merge(managedByOperatorLabels),
|
||||
},
|
||||
Data: map[string][]byte{
|
||||
configFilename: []byte{},
|
||||
|
@ -229,13 +229,13 @@ func makeConfigSecret(name string, configMaps []*v1.ConfigMap) (*v1.Secret, erro
|
|||
}, nil
|
||||
}
|
||||
|
||||
func makeStatefulSetService(p *monitoringv1.Prometheus) *v1.Service {
|
||||
func makeStatefulSetService(p *monitoringv1.Prometheus, config Config) *v1.Service {
|
||||
svc := &v1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: governingServiceName,
|
||||
Labels: map[string]string{
|
||||
Labels: config.Labels.Merge(map[string]string{
|
||||
"operated-prometheus": "true",
|
||||
},
|
||||
}),
|
||||
},
|
||||
Spec: v1.ServiceSpec{
|
||||
ClusterIP: "None",
|
||||
|
@ -480,7 +480,7 @@ func makeStatefulSetSpec(p monitoringv1.Prometheus, c *Config, ruleConfigMaps []
|
|||
},
|
||||
Template: v1.PodTemplateSpec{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Labels: podLabels,
|
||||
Labels: c.Labels.Merge(podLabels),
|
||||
Annotations: podAnnotations,
|
||||
},
|
||||
Spec: v1.PodSpec{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue