mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-21 11:48:53 +00:00
*: add owner references to statefulsets and secrets
This commit is contained in:
parent
9d68ecf289
commit
51c5a8f422
4 changed files with 44 additions and 6 deletions
pkg
|
@ -471,6 +471,8 @@ func needsUpdate(pod *v1.Pod, tmpl v1.PodTemplateSpec) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// TODO(brancz): Remove this function once Kubernetes 1.7 compatibility is dropped.
|
||||
// Starting with Kubernetes 1.8 OwnerReferences are properly handled for CRDs.
|
||||
func (c *Operator) destroyAlertmanager(key string) error {
|
||||
ssetKey := alertmanagerKeyToStatefulSetKey(key)
|
||||
obj, exists, err := c.ssetInf.GetStore().GetByKey(ssetKey)
|
||||
|
|
|
@ -69,11 +69,23 @@ func makeStatefulSet(am *monitoringv1.Alertmanager, old *v1beta1.StatefulSet, co
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
boolTrue := true
|
||||
statefulset := &v1beta1.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: prefixedName(am.Name),
|
||||
Labels: config.Labels.Merge(am.ObjectMeta.Labels),
|
||||
Annotations: am.ObjectMeta.Annotations,
|
||||
OwnerReferences: []metav1.OwnerReference{
|
||||
{
|
||||
APIVersion: am.APIVersion,
|
||||
BlockOwnerDeletion: &boolTrue,
|
||||
Controller: &boolTrue,
|
||||
Kind: am.Kind,
|
||||
Name: am.Name,
|
||||
UID: am.UID,
|
||||
},
|
||||
},
|
||||
},
|
||||
Spec: *spec,
|
||||
}
|
||||
|
|
|
@ -684,7 +684,7 @@ func (c *Operator) sync(key string) error {
|
|||
}
|
||||
|
||||
// Create Secret if it doesn't exist.
|
||||
s, err := makeEmptyConfig(p.Name, ruleFileConfigMaps, c.config)
|
||||
s, err := makeEmptyConfig(p, ruleFileConfigMaps, c.config)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "generating empty config secret failed")
|
||||
}
|
||||
|
@ -808,6 +808,8 @@ func needsUpdate(pod *v1.Pod, tmpl v1.PodTemplateSpec) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// TODO(brancz): Remove this function once Kubernetes 1.7 compatibility is dropped.
|
||||
// Starting with Kubernetes 1.8 OwnerReferences are properly handled for CRDs.
|
||||
func (c *Operator) destroyPrometheus(key string) error {
|
||||
ssetKey := prometheusKeyToStatefulSetKey(key)
|
||||
obj, exists, err := c.ssetInf.GetStore().GetByKey(ssetKey)
|
||||
|
@ -952,7 +954,7 @@ func (c *Operator) createConfig(p *monitoringv1.Prometheus, ruleFileConfigMaps [
|
|||
return errors.Wrap(err, "generating config failed")
|
||||
}
|
||||
|
||||
s, err := makeConfigSecret(p.Name, ruleFileConfigMaps, c.config)
|
||||
s, err := makeConfigSecret(p, ruleFileConfigMaps, c.config)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "generating base secret failed")
|
||||
}
|
||||
|
|
|
@ -103,11 +103,22 @@ func makeStatefulSet(p monitoringv1.Prometheus, old *v1beta1.StatefulSet, config
|
|||
return nil, errors.Wrap(err, "make StatefulSet spec")
|
||||
}
|
||||
|
||||
boolTrue := true
|
||||
statefulset := &v1beta1.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: prefixedName(p.Name),
|
||||
Labels: config.Labels.Merge(p.ObjectMeta.Labels),
|
||||
Annotations: p.ObjectMeta.Annotations,
|
||||
OwnerReferences: []metav1.OwnerReference{
|
||||
{
|
||||
APIVersion: p.APIVersion,
|
||||
BlockOwnerDeletion: &boolTrue,
|
||||
Controller: &boolTrue,
|
||||
Kind: p.Kind,
|
||||
Name: p.Name,
|
||||
UID: p.UID,
|
||||
},
|
||||
},
|
||||
},
|
||||
Spec: *spec,
|
||||
}
|
||||
|
@ -139,8 +150,8 @@ func makeStatefulSet(p monitoringv1.Prometheus, old *v1beta1.StatefulSet, config
|
|||
return statefulset, nil
|
||||
}
|
||||
|
||||
func makeEmptyConfig(name string, configMaps []*v1.ConfigMap, config Config) (*v1.Secret, error) {
|
||||
s, err := makeConfigSecret(name, configMaps, config)
|
||||
func makeEmptyConfig(p *monitoringv1.Prometheus, configMaps []*v1.ConfigMap, config Config) (*v1.Secret, error) {
|
||||
s, err := makeConfigSecret(p, configMaps, config)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -211,16 +222,27 @@ func makeRuleConfigMapListFile(configMaps []*v1.ConfigMap) ([]byte, error) {
|
|||
return json.Marshal(cml)
|
||||
}
|
||||
|
||||
func makeConfigSecret(name string, configMaps []*v1.ConfigMap, config Config) (*v1.Secret, error) {
|
||||
func makeConfigSecret(p *monitoringv1.Prometheus, configMaps []*v1.ConfigMap, config Config) (*v1.Secret, error) {
|
||||
b, err := makeRuleConfigMapListFile(configMaps)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
boolTrue := true
|
||||
return &v1.Secret{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: configSecretName(name),
|
||||
Name: configSecretName(p.Name),
|
||||
Labels: config.Labels.Merge(managedByOperatorLabels),
|
||||
OwnerReferences: []metav1.OwnerReference{
|
||||
{
|
||||
APIVersion: p.APIVersion,
|
||||
BlockOwnerDeletion: &boolTrue,
|
||||
Controller: &boolTrue,
|
||||
Kind: p.Kind,
|
||||
Name: p.Name,
|
||||
UID: p.UID,
|
||||
},
|
||||
},
|
||||
},
|
||||
Data: map[string][]byte{
|
||||
configFilename: []byte{},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue