Skip to content

Commit 43fcd3c

Browse files
authored
Merge pull request #429 from brancz/cut-1.3.1
Cut 1.3.1
2 parents b1bf9a0 + cd3b284 commit 43fcd3c

43 files changed

Lines changed: 15386 additions & 15 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.travis.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ sudo: required
22

33
language: go
44

5-
go:
6-
- "1.10"
7-
85
install:
96
- mkdir -p $HOME/gopath/src/k8s.io
107
- mv $TRAVIS_BUILD_DIR $HOME/gopath/src/k8s.io/kube-state-metrics

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## v1.3.1 / 2018-04-12
2+
3+
* [BUGFIX] Use Go 1.10.1 fixing TLS and memory issues.
4+
* [BUGFIX] Fix Pod unknown state.
5+
16
## v1.3.0 / 2018-04-04
27

38
After a testing period of 12 days, there were no additional bugs found or features introduced.

Godeps/Godeps.json

Lines changed: 38 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
FLAGS =
2-
BUILDENVVAR = CGO_ENABLED=0
32
TESTENVVAR =
43
REGISTRY = quay.io/coreos
54
TAG = $(shell git describe --abbrev=0)
@@ -9,6 +8,7 @@ BuildDate = $(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
98
Commit = $(shell git rev-parse --short HEAD)
109
ALL_ARCH = amd64 arm arm64 ppc64le s390x
1110
PKG=k8s.io/kube-state-metrics
11+
GO_VERSION=1.10.1
1212

1313
IMAGE = $(REGISTRY)/kube-state-metrics
1414
MULTI_ARCH_IMG = $(IMAGE)-$(ARCH)
@@ -28,7 +28,7 @@ doccheck:
2828
@echo OK
2929

3030
build: clean
31-
GOOS=$(shell uname -s | tr A-Z a-z) GOARCH=$(ARCH) $(BUILDENVVAR) go build -ldflags "-s -w -X ${PKG}/version.Release=${TAG} -X ${PKG}/version.Commit=${Commit} -X ${PKG}/version.BuildDate=${BuildDate}" -o kube-state-metrics
31+
docker run --rm -v "$$PWD":/go/src/k8s.io/kube-state-metrics -w /go/src/k8s.io/kube-state-metrics -e GOOS=$(shell uname -s | tr A-Z a-z) -e GOARCH=$(ARCH) -e CGO_ENABLED=0 golang:${GO_VERSION} go build -ldflags "-s -w -X ${PKG}/version.Release=${TAG} -X ${PKG}/version.Commit=${Commit} -X ${PKG}/version.BuildDate=${BuildDate}" -o kube-state-metrics
3232

3333
test-unit: clean build
3434
GOOS=$(shell uname -s | tr A-Z a-z) GOARCH=$(ARCH) $(TESTENVVAR) go test --race $(FLAGS) $(PKGS)
@@ -49,8 +49,8 @@ all-push: $(addprefix sub-push-,$(ALL_ARCH))
4949

5050
container: .container-$(ARCH)
5151
.container-$(ARCH):
52+
docker run --rm -v "$$PWD":/go/src/k8s.io/kube-state-metrics -w /go/src/k8s.io/kube-state-metrics -e GOOS=linux -e GOARCH=$(ARCH) -e CGO_ENABLED=0 golang:${GO_VERSION} go build -ldflags "-s -w -X ${PKG}/version.Release=${TAG} -X ${PKG}/version.Commit=${Commit} -X ${PKG}/version.BuildDate=${BuildDate}" -o kube-state-metrics
5253
cp -r * $(TEMP_DIR)
53-
GOOS=linux GOARCH=$(ARCH) $(BUILDENVVAR) go build -o $(TEMP_DIR)/kube-state-metrics
5454
docker build -t $(MULTI_ARCH_IMG):$(TAG) $(TEMP_DIR)
5555

5656
ifeq ($(ARCH), amd64)

collectors/pod.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"k8s.io/api/core/v1"
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828
"k8s.io/client-go/kubernetes"
29+
"k8s.io/kubernetes/pkg/util/node"
2930
)
3031

3132
var (
@@ -352,12 +353,14 @@ func (pc *podCollector) collectPod(ch chan<- prometheus.Metric, p v1.Pod) {
352353
labelKeys, labelValues := kubeLabelsToPrometheusLabels(p.Labels)
353354
addGauge(podLabelsDesc(labelKeys), 1, labelValues...)
354355

355-
if p := p.Status.Phase; p != "" {
356-
addGauge(descPodStatusPhase, boolFloat64(p == v1.PodPending), string(v1.PodPending))
357-
addGauge(descPodStatusPhase, boolFloat64(p == v1.PodRunning), string(v1.PodRunning))
358-
addGauge(descPodStatusPhase, boolFloat64(p == v1.PodSucceeded), string(v1.PodSucceeded))
359-
addGauge(descPodStatusPhase, boolFloat64(p == v1.PodFailed), string(v1.PodFailed))
360-
addGauge(descPodStatusPhase, boolFloat64(p == v1.PodUnknown), string(v1.PodUnknown))
356+
if phase := p.Status.Phase; phase != "" {
357+
addGauge(descPodStatusPhase, boolFloat64(phase == v1.PodPending), string(v1.PodPending))
358+
addGauge(descPodStatusPhase, boolFloat64(phase == v1.PodSucceeded), string(v1.PodSucceeded))
359+
addGauge(descPodStatusPhase, boolFloat64(phase == v1.PodFailed), string(v1.PodFailed))
360+
// This logic is directly copied from: https://github.com/kubernetes/kubernetes/blob/d39bfa0d138368bbe72b0eaf434501dcb4ec9908/pkg/printers/internalversion/printers.go#L597-L601
361+
// For more info, please go to: https://github.com/kubernetes/kube-state-metrics/issues/410
362+
addGauge(descPodStatusPhase, boolFloat64(phase == v1.PodRunning && !(p.DeletionTimestamp != nil && p.Status.Reason == node.NodeUnreachablePodReason)), string(v1.PodRunning))
363+
addGauge(descPodStatusPhase, boolFloat64(phase == v1.PodUnknown || (p.DeletionTimestamp != nil && p.Status.Reason == node.NodeUnreachablePodReason)), string(v1.PodUnknown))
361364
}
362365

363366
if !p.CreationTimestamp.IsZero() {

collectors/pod_test.go

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"k8s.io/api/core/v1"
2424
"k8s.io/apimachinery/pkg/api/resource"
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26+
"k8s.io/kubernetes/pkg/util/node"
2627
)
2728

2829
type mockPodStore struct {
@@ -481,15 +482,35 @@ func TestPodCollector(t *testing.T) {
481482
Namespace: "ns1",
482483
},
483484
Status: v1.PodStatus{
484-
Phase: "Running",
485+
Phase: v1.PodRunning,
485486
},
486487
}, {
487488
ObjectMeta: metav1.ObjectMeta{
488489
Name: "pod2",
489490
Namespace: "ns2",
490491
},
491492
Status: v1.PodStatus{
492-
Phase: "Pending",
493+
Phase: v1.PodPending,
494+
},
495+
},
496+
{
497+
ObjectMeta: metav1.ObjectMeta{
498+
Name: "pod3",
499+
Namespace: "ns3",
500+
},
501+
Status: v1.PodStatus{
502+
Phase: v1.PodUnknown,
503+
},
504+
},
505+
{
506+
ObjectMeta: metav1.ObjectMeta{
507+
Name: "pod4",
508+
Namespace: "ns4",
509+
DeletionTimestamp: &metav1.Time{},
510+
},
511+
Status: v1.PodStatus{
512+
Phase: v1.PodRunning,
513+
Reason: node.NodeUnreachablePodReason,
493514
},
494515
},
495516
},
@@ -504,6 +525,16 @@ func TestPodCollector(t *testing.T) {
504525
kube_pod_status_phase{namespace="ns2",phase="Running",pod="pod2"} 0
505526
kube_pod_status_phase{namespace="ns2",phase="Succeeded",pod="pod2"} 0
506527
kube_pod_status_phase{namespace="ns2",phase="Unknown",pod="pod2"} 0
528+
kube_pod_status_phase{namespace="ns3",phase="Failed",pod="pod3"} 0
529+
kube_pod_status_phase{namespace="ns3",phase="Pending",pod="pod3"} 0
530+
kube_pod_status_phase{namespace="ns3",phase="Running",pod="pod3"} 0
531+
kube_pod_status_phase{namespace="ns3",phase="Succeeded",pod="pod3"} 0
532+
kube_pod_status_phase{namespace="ns3",phase="Unknown",pod="pod3"} 1
533+
kube_pod_status_phase{namespace="ns4",phase="Failed",pod="pod4"} 0
534+
kube_pod_status_phase{namespace="ns4",phase="Pending",pod="pod4"} 0
535+
kube_pod_status_phase{namespace="ns4",phase="Running",pod="pod4"} 0
536+
kube_pod_status_phase{namespace="ns4",phase="Succeeded",pod="pod4"} 0
537+
kube_pod_status_phase{namespace="ns4",phase="Unknown",pod="pod4"} 1
507538
`,
508539
metrics: []string{"kube_pod_status_phase"},
509540
}, {

scripts/e2e.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ PROMETHEUS_VERSION=2.0.0
2626
mkdir -p $KUBE_STATE_METRICS_LOG_DIR
2727

2828
# setup a Kubernetes cluster
29-
curl -sLo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
29+
curl -sLo minikube https://storage.googleapis.com/minikube/releases/v0.25.2/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
3030

3131
minikube version
3232

vendor/golang.org/x/text/internal/gen.go

Lines changed: 52 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/golang.org/x/text/internal/internal.go

Lines changed: 51 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/golang.org/x/text/internal/match.go

Lines changed: 65 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)