mirror of
https://github.com/prometheus-operator/prometheus-operator.git
synced 2025-04-21 11:48:53 +00:00
Single governing 'prometheus' service, default ConfigMaps
This commit is contained in:
parent
1358bbd2a3
commit
42907589cc
2 changed files with 41 additions and 24 deletions
pkg/controller
|
@ -308,23 +308,19 @@ func (c *Controller) reconcile(p *spec.Prometheus) error {
|
|||
}
|
||||
}
|
||||
|
||||
svcClient := c.kclient.Core().Services(p.Namespace)
|
||||
|
||||
svcQ := &v1.Service{}
|
||||
svcQ.Namespace = p.Namespace
|
||||
svcQ.Name = fmt.Sprintf("%s-petset", p.Name)
|
||||
obj, exists, err := c.svcInf.GetStore().Get(svcQ)
|
||||
if err != nil {
|
||||
// Create ConfigMaps if they don't exist.
|
||||
cmClient := c.kclient.Core().ConfigMaps(p.Namespace)
|
||||
if _, err := cmClient.Create(makeEmptyConfig(p.Name)); err != nil && !apierrors.IsAlreadyExists(err) {
|
||||
return err
|
||||
}
|
||||
if !exists {
|
||||
if _, err := svcClient.Create(makePetSetService(p)); err != nil {
|
||||
return fmt.Errorf("create petset service: %s", err)
|
||||
}
|
||||
if _, err := cmClient.Create(makeEmptyRules(p.Name)); err != nil && !apierrors.IsAlreadyExists(err) {
|
||||
return err
|
||||
}
|
||||
|
||||
svcClient := c.kclient.Core().Services(p.Namespace)
|
||||
if _, err := svcClient.Create(makePetSetService(p)); err != nil && !apierrors.IsAlreadyExists(err) {
|
||||
return fmt.Errorf("create petset service: %s", err)
|
||||
}
|
||||
// if _, err = svcClient.Update(makePetSetService(p)); err != nil {
|
||||
// return err
|
||||
// }
|
||||
|
||||
psetClient := c.kclient.Apps().PetSets(p.Namespace)
|
||||
// Ensure we have a replica set running Prometheus deployed.
|
||||
|
@ -332,7 +328,7 @@ func (c *Controller) reconcile(p *spec.Prometheus) error {
|
|||
psetQ := &v1alpha1.PetSet{}
|
||||
psetQ.Namespace = p.Namespace
|
||||
psetQ.Name = p.Name
|
||||
obj, exists, err = c.psetInf.GetStore().Get(psetQ)
|
||||
obj, exists, err := c.psetInf.GetStore().Get(psetQ)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -394,9 +390,9 @@ func (c *Controller) deletePrometheus(p *spec.Prometheus) error {
|
|||
return err
|
||||
}
|
||||
|
||||
if err := c.kclient.Core().Services(p.Namespace).Delete(fmt.Sprintf("%s-petset", p.Name), nil); err != nil {
|
||||
return err
|
||||
}
|
||||
// if err := c.kclient.Core().Services(p.Namespace).Delete(fmt.Sprintf("%s-petset", p.Name), nil); err != nil {
|
||||
// return err
|
||||
// }
|
||||
|
||||
// Delete the auto-generate configuration.
|
||||
// TODO(fabxc): add an ownerRef at creation so we don't delete config maps
|
||||
|
@ -405,6 +401,9 @@ func (c *Controller) deletePrometheus(p *spec.Prometheus) error {
|
|||
if err := cm.Delete(p.Name, nil); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cm.Delete(fmt.Sprintf("%s-rules", p.Name), nil); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -64,16 +64,31 @@ func makePetSet(p *spec.Prometheus, old *v1alpha1.PetSet) *v1alpha1.PetSet {
|
|||
return petset
|
||||
}
|
||||
|
||||
func makeEmptyConfig(name string) *v1.ConfigMap {
|
||||
return &v1.ConfigMap{
|
||||
ObjectMeta: v1.ObjectMeta{
|
||||
Name: fmt.Sprintf("%s", name),
|
||||
},
|
||||
Data: map[string]string{
|
||||
"prometheus.yaml": "",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func makeEmptyRules(name string) *v1.ConfigMap {
|
||||
return &v1.ConfigMap{
|
||||
ObjectMeta: v1.ObjectMeta{
|
||||
Name: fmt.Sprintf("%s-rules", name),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func makePetSetService(p *spec.Prometheus) *v1.Service {
|
||||
svc := &v1.Service{
|
||||
ObjectMeta: v1.ObjectMeta{
|
||||
Name: fmt.Sprintf("%s-petset", p.Name),
|
||||
Name: "prometheus",
|
||||
},
|
||||
Spec: v1.ServiceSpec{
|
||||
Selector: map[string]string{
|
||||
"prometheus.coreos.com/name": p.Name,
|
||||
"prometheus.coreos.com/type": "prometheus",
|
||||
},
|
||||
ClusterIP: "None",
|
||||
Ports: []v1.ServicePort{
|
||||
{
|
||||
|
@ -82,6 +97,9 @@ func makePetSetService(p *spec.Prometheus) *v1.Service {
|
|||
TargetPort: intstr.FromString("web"),
|
||||
},
|
||||
},
|
||||
Selector: map[string]string{
|
||||
"prometheus.coreos.com/type": "prometheus",
|
||||
},
|
||||
},
|
||||
}
|
||||
return svc
|
||||
|
@ -93,7 +111,7 @@ func makePetSetSpec(name, image string, replicas int32) v1alpha1.PetSetSpec {
|
|||
terminationGracePeriod := int64(600)
|
||||
|
||||
return v1alpha1.PetSetSpec{
|
||||
ServiceName: fmt.Sprintf("%s-petset", name),
|
||||
ServiceName: "prometheus",
|
||||
Replicas: &replicas,
|
||||
Template: v1.PodTemplateSpec{
|
||||
ObjectMeta: v1.ObjectMeta{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue