@@ -15,11 +15,13 @@ import (
1515 "sigs.k8s.io/controller-runtime/pkg/client/fake"
1616
1717 "github.com/open-telemetry/opentelemetry-operator/apis/v1beta1"
18+ "github.com/open-telemetry/opentelemetry-operator/internal/config"
1819)
1920
2021func TestUpdateCollectorStatusUnsupported (t * testing.T ) {
2122 ctx := context .TODO ()
2223 cli := client .Client (fake .NewFakeClient ())
24+ cfg := config.Config {}
2325
2426 changed := & v1beta1.OpenTelemetryCollector {
2527 ObjectMeta : metav1.ObjectMeta {
@@ -31,7 +33,7 @@ func TestUpdateCollectorStatusUnsupported(t *testing.T) {
3133 },
3234 }
3335
34- err := updateCollectorStatus (ctx , cli , changed )
36+ err := updateCollectorStatus (ctx , cli , changed , cfg )
3537 assert .NoError (t , err )
3638
3739 assert .Equal (t , int32 (0 ), changed .Status .Scale .Replicas , "expected replicas to be 0" )
@@ -67,6 +69,7 @@ func createMockKubernetesClientDeployment() client.Client {
6769func TestUpdateCollectorStatusDeploymentMode (t * testing.T ) {
6870 ctx := context .TODO ()
6971 cli := createMockKubernetesClientDeployment ()
72+ cfg := config.Config {}
7073
7174 changed := & v1beta1.OpenTelemetryCollector {
7275 ObjectMeta : metav1.ObjectMeta {
@@ -78,7 +81,7 @@ func TestUpdateCollectorStatusDeploymentMode(t *testing.T) {
7881 },
7982 }
8083
81- err := updateCollectorStatus (ctx , cli , changed )
84+ err := updateCollectorStatus (ctx , cli , changed , cfg )
8285 assert .NoError (t , err )
8386
8487 assert .Equal (t , int32 (1 ), changed .Status .Scale .Replicas , "expected replicas to be 1" )
@@ -115,6 +118,7 @@ func createMockKubernetesClientStatefulset() client.Client {
115118func TestUpdateCollectorStatusStatefulset (t * testing.T ) {
116119 ctx := context .TODO ()
117120 cli := createMockKubernetesClientStatefulset ()
121+ cfg := config.Config {}
118122
119123 changed := & v1beta1.OpenTelemetryCollector {
120124 ObjectMeta : metav1.ObjectMeta {
@@ -126,7 +130,7 @@ func TestUpdateCollectorStatusStatefulset(t *testing.T) {
126130 },
127131 }
128132
129- err := updateCollectorStatus (ctx , cli , changed )
133+ err := updateCollectorStatus (ctx , cli , changed , cfg )
130134 assert .NoError (t , err )
131135
132136 assert .Equal (t , int32 (1 ), changed .Status .Scale .Replicas , "expected replicas to be 1" )
@@ -163,6 +167,7 @@ func createMockKubernetesClientDaemonset() client.Client {
163167func TestUpdateCollectorStatusDaemonsetMode (t * testing.T ) {
164168 ctx := context .TODO ()
165169 cli := createMockKubernetesClientDaemonset ()
170+ cfg := config.Config {}
166171
167172 changed := & v1beta1.OpenTelemetryCollector {
168173 ObjectMeta : metav1.ObjectMeta {
@@ -177,11 +182,79 @@ func TestUpdateCollectorStatusDaemonsetMode(t *testing.T) {
177182 },
178183 }
179184
180- err := updateCollectorStatus (ctx , cli , changed )
185+ err := updateCollectorStatus (ctx , cli , changed , cfg )
181186 assert .NoError (t , err )
182187
183188 assert .Equal (t , int32 (1 ), changed .Status .Scale .Replicas , "expected replicas to be 1" )
184189 assert .Equal (t , "1/1" , changed .Status .Scale .StatusReplicas , "expected status replicas to be 1/1" )
185190 assert .Contains (t , changed .Status .Scale .Selector , "customLabel=customValue" , "expected selector to contain customlabel=customValue" )
186191 assert .Equal (t , "app:latest" , changed .Status .Image , "expected image to be app:latest" )
187192}
193+
194+ func TestUpdateCollectorStatusVersionLabelFromSpec (t * testing.T ) {
195+ ctx := context .TODO ()
196+ cli := createMockKubernetesClientDeployment ()
197+ cfg := config.Config {}
198+
199+ changed := & v1beta1.OpenTelemetryCollector {
200+ ObjectMeta : metav1.ObjectMeta {
201+ Name : "test-deployment" ,
202+ Namespace : "default" ,
203+ },
204+ Spec : v1beta1.OpenTelemetryCollectorSpec {
205+ Mode : v1beta1 .ModeDeployment ,
206+ OpenTelemetryCommonFields : v1beta1.OpenTelemetryCommonFields {
207+ Image : "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.129.1" ,
208+ },
209+ },
210+ }
211+
212+ err := updateCollectorStatus (ctx , cli , changed , cfg )
213+ assert .NoError (t , err )
214+
215+ assert .Contains (t , changed .Status .Scale .Selector , "app.kubernetes.io/version=0.129.1" , "expected selector to contain version label from spec" )
216+ }
217+
218+ func TestUpdateCollectorStatusVersionLabelFromConfig (t * testing.T ) {
219+ ctx := context .TODO ()
220+ cli := createMockKubernetesClientDeployment ()
221+ cfg := config.Config {
222+ CollectorImage : "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.130.0" ,
223+ }
224+
225+ changed := & v1beta1.OpenTelemetryCollector {
226+ ObjectMeta : metav1.ObjectMeta {
227+ Name : "test-deployment" ,
228+ Namespace : "default" ,
229+ },
230+ Spec : v1beta1.OpenTelemetryCollectorSpec {
231+ Mode : v1beta1 .ModeDeployment ,
232+ },
233+ }
234+
235+ err := updateCollectorStatus (ctx , cli , changed , cfg )
236+ assert .NoError (t , err )
237+
238+ assert .Contains (t , changed .Status .Scale .Selector , "app.kubernetes.io/version=0.130.0" , "expected selector to contain version label from config" )
239+ }
240+
241+ func TestUpdateCollectorStatusVersionLabelLatest (t * testing.T ) {
242+ ctx := context .TODO ()
243+ cli := createMockKubernetesClientDeployment ()
244+ cfg := config.Config {}
245+
246+ changed := & v1beta1.OpenTelemetryCollector {
247+ ObjectMeta : metav1.ObjectMeta {
248+ Name : "test-deployment" ,
249+ Namespace : "default" ,
250+ },
251+ Spec : v1beta1.OpenTelemetryCollectorSpec {
252+ Mode : v1beta1 .ModeDeployment ,
253+ },
254+ }
255+
256+ err := updateCollectorStatus (ctx , cli , changed , cfg )
257+ assert .NoError (t , err )
258+
259+ assert .Contains (t , changed .Status .Scale .Selector , "app.kubernetes.io/version=latest" , "expected selector to contain latest version label" )
260+ }
0 commit comments