1
0
Fork 0
mirror of https://github.com/prometheus-operator/prometheus-operator.git synced 2025-04-21 11:48:53 +00:00

*: no subPath for emptyDir volumes

This commit is contained in:
Frederic Branczyk 2016-12-22 14:43:21 +01:00
parent 8e17baa9bb
commit 3e83b79bd5
No known key found for this signature in database
GPG key ID: CA14788B1E48B256
2 changed files with 35 additions and 21 deletions
pkg
alertmanager
prometheus

View file

@ -30,25 +30,21 @@ func makeStatefulSet(am *spec.Alertmanager, old *v1beta1.StatefulSet) *v1beta1.S
// Ideally we would do it before storing but that's currently not possible.
// Potentially an update handler on first insertion.
baseImage := am.Spec.BaseImage
if baseImage == "" {
baseImage = "quay.io/prometheus/alertmanager"
if am.Spec.BaseImage == "" {
am.Spec.BaseImage = "quay.io/prometheus/alertmanager"
}
version := am.Spec.Version
if version == "" {
version = "v0.5.1"
if am.Spec.Version == "" {
am.Spec.Version = "v0.5.1"
}
replicas := am.Spec.Replicas
if replicas < 1 {
replicas = 1
if am.Spec.Replicas < 1 {
am.Spec.Replicas = 1
}
image := fmt.Sprintf("%s:%s", baseImage, version)
statefulset := &v1beta1.StatefulSet{
ObjectMeta: v1.ObjectMeta{
Name: am.Name,
},
Spec: makeStatefulSetSpec(am.Namespace, am.Name, image, version, replicas),
Spec: makeStatefulSetSpec(am),
}
if vc := am.Spec.Storage; vc == nil {
statefulset.Spec.Template.Spec.Volumes = append(statefulset.Spec.Template.Spec.Volumes, v1.Volume{
@ -111,7 +107,9 @@ func makeStatefulSetService(p *spec.Alertmanager) *v1.Service {
return svc
}
func makeStatefulSetSpec(ns, name, image, version string, replicas int32) v1beta1.StatefulSetSpec {
func makeStatefulSetSpec(a *spec.Alertmanager) v1beta1.StatefulSetSpec {
image := fmt.Sprintf("%s:%s", a.Spec.BaseImage, a.Spec.Version)
commands := []string{
"/bin/alertmanager",
fmt.Sprintf("-config.file=%s", "/etc/alertmanager/config/alertmanager.yaml"),
@ -119,19 +117,19 @@ func makeStatefulSetSpec(ns, name, image, version string, replicas int32) v1beta
fmt.Sprintf("-mesh.listen-address=:%d", 6783),
fmt.Sprintf("-storage.path=%s", "/etc/alertmanager/data"),
}
for i := int32(0); i < replicas; i++ {
commands = append(commands, fmt.Sprintf("-mesh.peer=%s-%d.%s.%s.svc", name, i, "alertmanager", ns))
for i := int32(0); i < a.Spec.Replicas; i++ {
commands = append(commands, fmt.Sprintf("-mesh.peer=%s-%d.%s.%s.svc", a.Name, i, "alertmanager", a.Namespace))
}
terminationGracePeriod := int64(0)
return v1beta1.StatefulSetSpec{
ServiceName: "alertmanager",
Replicas: &replicas,
Replicas: &a.Spec.Replicas,
Template: v1.PodTemplateSpec{
ObjectMeta: v1.ObjectMeta{
Labels: map[string]string{
"app": "alertmanager",
"alertmanager": name,
"alertmanager": a.Name,
},
},
Spec: v1.PodSpec{
@ -139,7 +137,7 @@ func makeStatefulSetSpec(ns, name, image, version string, replicas int32) v1beta
Containers: []v1.Container{
{
Command: commands,
Name: name,
Name: a.Name,
Image: image,
Ports: []v1.ContainerPort{
{
@ -159,9 +157,9 @@ func makeStatefulSetSpec(ns, name, image, version string, replicas int32) v1beta
MountPath: "/etc/alertmanager/config",
},
{
Name: fmt.Sprintf("%s-db", name),
Name: fmt.Sprintf("%s-db", a.Name),
MountPath: "/var/alertmanager/data",
SubPath: "alertmanager-db",
SubPath: subPathForStorage(a.Spec.Storage),
},
},
}, {
@ -192,7 +190,7 @@ func makeStatefulSetSpec(ns, name, image, version string, replicas int32) v1beta
VolumeSource: v1.VolumeSource{
ConfigMap: &v1.ConfigMapVolumeSource{
LocalObjectReference: v1.LocalObjectReference{
Name: name,
Name: a.Name,
},
},
},
@ -202,3 +200,11 @@ func makeStatefulSetSpec(ns, name, image, version string, replicas int32) v1beta
},
}
}
func subPathForStorage(s *spec.StorageSpec) string {
if s == nil {
return ""
}
return "alertmanager-db"
}

View file

@ -190,7 +190,7 @@ func makeStatefulSetSpec(p spec.Prometheus) v1beta1.StatefulSetSpec {
{
Name: fmt.Sprintf("%s-db", p.Name),
MountPath: "/var/prometheus/data",
SubPath: "prometheus-db",
SubPath: subPathForStorage(p.Spec.Storage),
},
},
ReadinessProbe: &v1.Probe{
@ -271,3 +271,11 @@ func makeStatefulSetSpec(p spec.Prometheus) v1beta1.StatefulSetSpec {
},
}
}
func subPathForStorage(s *spec.StorageSpec) string {
if s == nil {
return ""
}
return "prometheus-db"
}