@@ -26,6 +26,7 @@ import (
26
26
)
27
27
28
28
func TestSecretStore (t * testing.T ) {
29
+ var test = true
29
30
startTime := 1501569018
30
31
metav1StartTime := metav1 .Unix (int64 (startTime ), 0 )
31
32
cases := []generateMetricsTestCase {
@@ -43,17 +44,20 @@ func TestSecretStore(t *testing.T) {
43
44
# HELP kube_secret_info [STABLE] Information about secret.
44
45
# HELP kube_secret_labels [STABLE] Kubernetes labels converted to Prometheus labels.
45
46
# 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.
46
48
# HELP kube_secret_type [STABLE] Type about secret.
47
49
# TYPE kube_secret_created gauge
48
50
# TYPE kube_secret_info gauge
49
51
# TYPE kube_secret_labels gauge
50
52
# TYPE kube_secret_metadata_resource_version gauge
53
+ # TYPE kube_secret_owner gauge
51
54
# TYPE kube_secret_type gauge
52
55
kube_secret_info{namespace="ns1",secret="secret1"} 1
56
+ kube_secret_owner{namespace="ns1",owner_is_controller="",owner_kind="",owner_name="",secret="secret1"} 1
53
57
kube_secret_type{namespace="ns1",secret="secret1",type="Opaque"} 1
54
58
kube_secret_metadata_resource_version{namespace="ns1",secret="secret1"} 0
55
59
` ,
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" },
57
61
},
58
62
{
59
63
Obj : & v1.Secret {
@@ -70,17 +74,20 @@ func TestSecretStore(t *testing.T) {
70
74
# HELP kube_secret_info [STABLE] Information about secret.
71
75
# HELP kube_secret_labels [STABLE] Kubernetes labels converted to Prometheus labels.
72
76
# 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.
73
78
# HELP kube_secret_type [STABLE] Type about secret.
74
79
# TYPE kube_secret_created gauge
75
80
# TYPE kube_secret_info gauge
76
81
# TYPE kube_secret_labels gauge
77
82
# TYPE kube_secret_metadata_resource_version gauge
83
+ # TYPE kube_secret_owner gauge
78
84
# TYPE kube_secret_type gauge
79
85
kube_secret_info{namespace="ns2",secret="secret2"} 1
86
+ kube_secret_owner{namespace="ns2",owner_is_controller="",owner_kind="",owner_name="",secret="secret2"} 1
80
87
kube_secret_type{namespace="ns2",secret="secret2",type="kubernetes.io/service-account-token"} 1
81
88
kube_secret_created{namespace="ns2",secret="secret2"} 1.501569018e+09
82
89
` ,
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" },
84
91
},
85
92
{
86
93
Obj : & v1.Secret {
@@ -98,18 +105,60 @@ func TestSecretStore(t *testing.T) {
98
105
# HELP kube_secret_info [STABLE] Information about secret.
99
106
# HELP kube_secret_labels [STABLE] Kubernetes labels converted to Prometheus labels.
100
107
# 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.
101
109
# HELP kube_secret_type [STABLE] Type about secret.
102
110
# TYPE kube_secret_created gauge
103
111
# TYPE kube_secret_info gauge
104
112
# TYPE kube_secret_labels gauge
105
113
# TYPE kube_secret_metadata_resource_version gauge
114
+ # TYPE kube_secret_owner gauge
106
115
# TYPE kube_secret_type gauge
107
116
kube_secret_info{namespace="ns3",secret="secret3"} 1
117
+ kube_secret_owner{namespace="ns3",owner_is_controller="",owner_kind="",owner_name="",secret="secret3"} 1
108
118
kube_secret_type{namespace="ns3",secret="secret3",type="kubernetes.io/dockercfg"} 1
109
119
kube_secret_created{namespace="ns3",secret="secret3"} 1.501569018e+09
110
120
kube_secret_metadata_resource_version{namespace="ns3",secret="secret3"} 0
111
121
` ,
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" },
113
162
},
114
163
}
115
164
for i , c := range cases {
0 commit comments