@@ -146,6 +146,64 @@ func TestCreateOrUpdateCephExporter(t *testing.T) {
146146 })
147147}
148148
149+ func TestCephExporterLogrotateContainer (t * testing.T ) {
150+ cephCluster := & cephv1.CephCluster {
151+ ObjectMeta : metav1.ObjectMeta {
152+ Name : "test-cluster" ,
153+ Namespace : "test-namespace" ,
154+ },
155+ Spec : cephv1.ClusterSpec {
156+ LogCollector : cephv1.LogCollectorSpec {
157+ Enabled : true ,
158+ },
159+ },
160+ }
161+
162+ node := corev1.Node {}
163+ nodeSelector := map [string ]string {corev1 .LabelHostname : "testnode" }
164+ node .SetLabels (nodeSelector )
165+
166+ cephVersion := & cephver.CephVersion {Major : 18 , Minor : 0 , Extra : 0 }
167+
168+ s := scheme .Scheme
169+ err := appsv1 .AddToScheme (s )
170+ assert .NoError (t , err )
171+
172+ cl := fake .NewClientBuilder ().WithScheme (s ).Build ()
173+
174+ reconciler := & ReconcileNode {
175+ client : cl ,
176+ scheme : s ,
177+ context : & clusterd.Context {},
178+ opManagerContext : context .TODO (),
179+ }
180+
181+ result , err := reconciler .createOrUpdateCephExporter (node , []corev1.Toleration {}, * cephCluster , cephVersion )
182+ assert .NoError (t , err )
183+ assert .Equal (t , controllerutil .OperationResultCreated , result )
184+
185+ deployment := & appsv1.Deployment {}
186+ err = cl .Get (context .TODO (), types.NamespacedName {
187+ Name : "rook-ceph-exporter-testnode" ,
188+ Namespace : "test-namespace" ,
189+ }, deployment )
190+ assert .NoError (t , err )
191+
192+ // Check logrotate container is added
193+ assert .Len (t , deployment .Spec .Template .Spec .Containers , 2 )
194+
195+ var logrotateContainer * corev1.Container
196+ for _ , container := range deployment .Spec .Template .Spec .Containers {
197+ if container .Name == "log-collector" {
198+ logrotateContainer = & container
199+ break
200+ }
201+ }
202+ // Verify logrotate container configuration
203+ assert .NotNil (t , logrotateContainer )
204+ assert .Contains (t , logrotateContainer .Command [5 ], "ceph-client.ceph-exporter" )
205+ }
206+
149207func TestCephExporterBindAddress (t * testing.T ) {
150208 prioLimit , statsPeriod := defaultPrioLimit , defaultStatsPeriod
151209 prioLimitString , err := strconv .ParseInt (prioLimit , 10 , 64 )
0 commit comments