@@ -26,6 +26,7 @@ import (
2626)
2727
2828func TestSecretStore (t * testing.T ) {
29+ var test = true
2930 startTime := 1501569018
3031 metav1StartTime := metav1 .Unix (int64 (startTime ), 0 )
3132 cases := []generateMetricsTestCase {
@@ -43,17 +44,20 @@ func TestSecretStore(t *testing.T) {
4344 # HELP kube_secret_info [STABLE] Information about secret.
4445 # HELP kube_secret_labels [STABLE] Kubernetes labels converted to Prometheus labels.
4546 # HELP kube_secret_metadata_resource_version Resource version representing a specific version of secret.
47+ # HELP kube_secret_owner Information about the Secret's owner.
4648 # HELP kube_secret_type [STABLE] Type about secret.
4749 # TYPE kube_secret_created gauge
4850 # TYPE kube_secret_info gauge
4951 # TYPE kube_secret_labels gauge
5052 # TYPE kube_secret_metadata_resource_version gauge
53+ # TYPE kube_secret_owner gauge
5154 # TYPE kube_secret_type gauge
5255 kube_secret_info{namespace="ns1",secret="secret1"} 1
56+ kube_secret_owner{namespace="ns1",owner_is_controller="",owner_kind="",owner_name="",secret="secret1"} 1
5357 kube_secret_type{namespace="ns1",secret="secret1",type="Opaque"} 1
5458 kube_secret_metadata_resource_version{namespace="ns1",secret="secret1"} 0
5559` ,
56- MetricNames : []string {"kube_secret_info" , "kube_secret_metadata_resource_version" , "kube_secret_created" , "kube_secret_labels" , "kube_secret_type" },
60+ MetricNames : []string {"kube_secret_info" , "kube_secret_metadata_resource_version" , "kube_secret_created" , "kube_secret_labels" , "kube_secret_type" , "kube_secret_owner" },
5761 },
5862 {
5963 Obj : & v1.Secret {
@@ -70,17 +74,20 @@ func TestSecretStore(t *testing.T) {
7074 # HELP kube_secret_info [STABLE] Information about secret.
7175 # HELP kube_secret_labels [STABLE] Kubernetes labels converted to Prometheus labels.
7276 # HELP kube_secret_metadata_resource_version Resource version representing a specific version of secret.
77+ # HELP kube_secret_owner Information about the Secret's owner.
7378 # HELP kube_secret_type [STABLE] Type about secret.
7479 # TYPE kube_secret_created gauge
7580 # TYPE kube_secret_info gauge
7681 # TYPE kube_secret_labels gauge
7782 # TYPE kube_secret_metadata_resource_version gauge
83+ # TYPE kube_secret_owner gauge
7884 # TYPE kube_secret_type gauge
7985 kube_secret_info{namespace="ns2",secret="secret2"} 1
86+ kube_secret_owner{namespace="ns2",owner_is_controller="",owner_kind="",owner_name="",secret="secret2"} 1
8087 kube_secret_type{namespace="ns2",secret="secret2",type="kubernetes.io/service-account-token"} 1
8188 kube_secret_created{namespace="ns2",secret="secret2"} 1.501569018e+09
8289 ` ,
83- MetricNames : []string {"kube_secret_info" , "kube_secret_metadata_resource_version" , "kube_secret_created" , "kube_secret_labels" , "kube_secret_type" },
90+ MetricNames : []string {"kube_secret_info" , "kube_secret_metadata_resource_version" , "kube_secret_created" , "kube_secret_labels" , "kube_secret_type" , "kube_secret_owner" },
8491 },
8592 {
8693 Obj : & v1.Secret {
@@ -98,18 +105,60 @@ func TestSecretStore(t *testing.T) {
98105 # HELP kube_secret_info [STABLE] Information about secret.
99106 # HELP kube_secret_labels [STABLE] Kubernetes labels converted to Prometheus labels.
100107 # HELP kube_secret_metadata_resource_version Resource version representing a specific version of secret.
108+ # HELP kube_secret_owner Information about the Secret's owner.
101109 # HELP kube_secret_type [STABLE] Type about secret.
102110 # TYPE kube_secret_created gauge
103111 # TYPE kube_secret_info gauge
104112 # TYPE kube_secret_labels gauge
105113 # TYPE kube_secret_metadata_resource_version gauge
114+ # TYPE kube_secret_owner gauge
106115 # TYPE kube_secret_type gauge
107116 kube_secret_info{namespace="ns3",secret="secret3"} 1
117+ kube_secret_owner{namespace="ns3",owner_is_controller="",owner_kind="",owner_name="",secret="secret3"} 1
108118 kube_secret_type{namespace="ns3",secret="secret3",type="kubernetes.io/dockercfg"} 1
109119 kube_secret_created{namespace="ns3",secret="secret3"} 1.501569018e+09
110120 kube_secret_metadata_resource_version{namespace="ns3",secret="secret3"} 0
111121` ,
112- MetricNames : []string {"kube_secret_info" , "kube_secret_metadata_resource_version" , "kube_secret_created" , "kube_secret_labels" , "kube_secret_type" },
122+ MetricNames : []string {"kube_secret_info" , "kube_secret_metadata_resource_version" , "kube_secret_created" , "kube_secret_labels" , "kube_secret_type" , "kube_secret_owner" },
123+ },
124+ {
125+ Obj : & v1.Secret {
126+ ObjectMeta : metav1.ObjectMeta {
127+ Name : "secret4" ,
128+ Namespace : "ns4" ,
129+ CreationTimestamp : metav1StartTime ,
130+ Labels : map [string ]string {"test-4" : "test-4" },
131+ ResourceVersion : "0" ,
132+ OwnerReferences : []metav1.OwnerReference {
133+ {
134+ Name : "managed-secret4" ,
135+ Kind : "ManagedSecret" ,
136+ Controller : & test ,
137+ },
138+ },
139+ },
140+ Type : v1 .SecretTypeOpaque ,
141+ },
142+ Want : `
143+ # HELP kube_secret_created [STABLE] Unix creation timestamp
144+ # HELP kube_secret_info [STABLE] Information about secret.
145+ # HELP kube_secret_labels [STABLE] Kubernetes labels converted to Prometheus labels.
146+ # HELP kube_secret_metadata_resource_version Resource version representing a specific version of secret.
147+ # HELP kube_secret_owner Information about the Secret's owner.
148+ # HELP kube_secret_type [STABLE] Type about secret.
149+ # TYPE kube_secret_created gauge
150+ # TYPE kube_secret_info gauge
151+ # TYPE kube_secret_labels gauge
152+ # TYPE kube_secret_metadata_resource_version gauge
153+ # TYPE kube_secret_owner gauge
154+ # TYPE kube_secret_type gauge
155+ kube_secret_info{namespace="ns4",secret="secret4"} 1
156+ kube_secret_owner{namespace="ns4",owner_is_controller="true",owner_kind="ManagedSecret",owner_name="managed-secret4",secret="secret4"} 1
157+ kube_secret_type{namespace="ns4",secret="secret4",type="Opaque"} 1
158+ kube_secret_created{namespace="ns4",secret="secret4"} 1.501569018e+09
159+ kube_secret_metadata_resource_version{namespace="ns4",secret="secret4"} 0
160+ ` ,
161+ MetricNames : []string {"kube_secret_info" , "kube_secret_metadata_resource_version" , "kube_secret_created" , "kube_secret_labels" , "kube_secret_type" , "kube_secret_owner" },
113162 },
114163 }
115164 for i , c := range cases {
0 commit comments