Add explicit version to name of monitoring RCs

This commit is contained in:
Satnam Singh 2015-05-18 16:44:41 -07:00
parent c5da035d51
commit 702bf625ce
6 changed files with 54 additions and 40 deletions

View File

@ -1,18 +1,22 @@
apiVersion: v1beta3 apiVersion: v1beta3
kind: ReplicationController kind: ReplicationController
metadata: metadata:
name: monitoring-heapster-v1
namespace: default
labels: labels:
name: heapster k8s-app: heapster
version: v1
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
name: monitoring-heapster-controller
spec: spec:
replicas: 1 replicas: 1
selector: selector:
name: heapster k8s-app: heapster
version: v1
template: template:
metadata: metadata:
labels: labels:
name: heapster k8s-app: heapster
version: v1
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
spec: spec:
containers: containers:

View File

@ -1,14 +1,15 @@
apiVersion: v1beta3 apiVersion: v1beta3
kind: Service kind: Service
metadata: metadata:
name: monitoring-grafana
namespace: default
labels: labels:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
kubernetes.io/name: "Grafana" kubernetes.io/name: "Grafana"
name: monitoring-grafana
spec: spec:
ports: ports:
- port: 80 - port: 80
targetPort: 8080 targetPort: 8080
selector: selector:
name: influxGrafana k8s-app: influxGrafana

View File

@ -1,18 +1,22 @@
apiVersion: v1beta3 apiVersion: v1beta3
kind: ReplicationController kind: ReplicationController
metadata: metadata:
name: monitoring-heapster-v1
namespace: default
labels: labels:
name: heapster k8s-app: heapster
version: v1
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
name: monitoring-heapster-controller
spec: spec:
replicas: 1 replicas: 1
selector: selector:
name: heapster k8s-app: heapster
version: v1
template: template:
metadata: metadata:
labels: labels:
name: heapster k8s-app: heapster
version: v1
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
spec: spec:
containers: containers:

View File

@ -1,18 +1,22 @@
apiVersion: v1beta3 apiVersion: v1beta3
kind: ReplicationController kind: ReplicationController
metadata: metadata:
name: monitoring-influx-grafana-v1
namespace: default
labels: labels:
name: influxGrafana k8s-app: influxGrafana
version: v1
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
name: monitoring-influx-grafana-controller
spec: spec:
replicas: 1 replicas: 1
selector: selector:
name: influxGrafana k8s-app: influxGrafana
version: v1
template: template:
metadata: metadata:
labels: labels:
name: influxGrafana k8s-app: influxGrafana
version: v1
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
spec: spec:
containers: containers:

View File

@ -1,9 +1,10 @@
apiVersion: v1beta3 apiVersion: v1beta3
kind: Service kind: Service
metadata: metadata:
labels:
name: influxGrafana
name: monitoring-influxdb name: monitoring-influxdb
namespace: default
labels:
k8s-app: influxGrafana
spec: spec:
ports: ports:
- name: http - name: http
@ -13,5 +14,5 @@ spec:
port: 8086 port: 8086
targetPort: 8086 targetPort: 8086
selector: selector:
name: influxGrafana k8s-app: influxGrafana

View File

@ -63,10 +63,7 @@ const (
) )
var ( var (
expectedRcs = map[string]bool{ rcLabels = []string{"heapster", "influxGrafana"}
"monitoring-heapster-controller": false,
"monitoring-influx-grafana-controller": false,
}
expectedServices = map[string]bool{ expectedServices = map[string]bool{
influxdbService: false, influxdbService: false,
"monitoring-grafana": false, "monitoring-grafana": false,
@ -74,17 +71,25 @@ var (
) )
func verifyExpectedRcsExistAndGetExpectedPods(c *client.Client) ([]string, error) { func verifyExpectedRcsExistAndGetExpectedPods(c *client.Client) ([]string, error) {
rcList, err := c.ReplicationControllers(api.NamespaceDefault).List(labels.Everything())
if err != nil {
return nil, err
}
expectedPods := []string{} expectedPods := []string{}
for _, rc := range rcList.Items { // Iterate over the labels that identify the replication controllers that we
if _, ok := expectedRcs[rc.Name]; ok { // want to check. The rcLabels contains the value values for the k8s-app key
if rc.Status.Replicas != 1 { // that identify the replication controllers that we want to check. Using a label
return nil, fmt.Errorf("expected to find only one replica for rc %q, found %d", rc.Name, rc.Status.Replicas) // rather than an explicit name is preferred because the names will typically have
} // a version suffix e.g. heapster-monitoring-v1 and this will change after a rolling
expectedRcs[rc.Name] = true // update e.g. to heapster-monitoring-v2. By using a label query we can check for the
// situaiton when a heapster-monitoring-v1 and heapster-monitoring-v2 replication controller
// is running (which would be an error except during a rolling update).
for _, rcLabel := range rcLabels {
rcList, err := c.ReplicationControllers(api.NamespaceDefault).List(labels.Set{"k8s-app": rcLabel}.AsSelector())
if err != nil {
return nil, err
}
if len(rcList.Items) != 1 {
return nil, fmt.Errorf("expected to find one replicat for RC with label %s but got %d",
rcLabel, len(rcList.Items))
}
for _, rc := range rcList.Items {
podList, err := c.Pods(api.NamespaceDefault).List(labels.Set(rc.Spec.Selector).AsSelector(), fields.Everything()) podList, err := c.Pods(api.NamespaceDefault).List(labels.Set(rc.Spec.Selector).AsSelector(), fields.Everything())
if err != nil { if err != nil {
return nil, err return nil, err
@ -94,11 +99,6 @@ func verifyExpectedRcsExistAndGetExpectedPods(c *client.Client) ([]string, error
} }
} }
} }
for rc, found := range expectedRcs {
if !found {
return nil, fmt.Errorf("Replication Controller %q not found.", rc)
}
}
return expectedPods, nil return expectedPods, nil
} }