1
0
Fork 0
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:
Fabian Reinartz 2016-10-30 10:14:32 +01:00
parent 1358bbd2a3
commit 42907589cc
2 changed files with 41 additions and 24 deletions

View file

@ -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
}

View file

@ -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{