@@ -1325,6 +1325,101 @@ func TestEnsurePod_Sync_Worker(t *testing.T) {
13251325 },
13261326 },
13271327 },
1328+ {
1329+ DropInit : true ,
1330+ Name : "Sync Worker Pod with monitoring, service account, node selector, lifecycle, license " +
1331+ "liveness probe, priority class name, resource requirements without alpine, with init-containers-copy-resources feature off" ,
1332+ Features : testCaseFeatures {
1333+ InitContainersCopyResources : util .NewType (false ),
1334+ },
1335+ config : Config {
1336+ OperatorImage : testImageOperator ,
1337+ },
1338+ ArangoDeployment : & api.ArangoDeployment {
1339+ Spec : api.DeploymentSpec {
1340+ Image : util.NewType [string ](testImage ),
1341+ Authentication : noAuthentication ,
1342+ Sync : api.SyncSpec {
1343+ Enabled : util.NewType [bool ](true ),
1344+ },
1345+ SyncWorkers : api.ServerGroupSpec {
1346+ ServiceAccountName : util.NewType [string ](testServiceAccountName ),
1347+ NodeSelector : nodeSelectorTest ,
1348+ PriorityClassName : testPriorityClassName ,
1349+ Resources : resourcesUnfiltered ,
1350+ },
1351+ License : api.LicenseSpec {
1352+ SecretName : util.NewType [string ](testLicense ),
1353+ },
1354+ },
1355+ },
1356+ Helper : func (t * testing.T , deployment * Deployment , testCase * testCaseStruct ) {
1357+ deployment .currentObjectStatus = & api.DeploymentStatus {
1358+ Members : api.DeploymentStatusMembers {
1359+ SyncWorkers : api.MemberStatusList {
1360+ firstSyncWorker ,
1361+ },
1362+ },
1363+ Images : createTestImages (true ),
1364+ }
1365+
1366+ testCase .createTestPodData (deployment , api .ServerGroupSyncWorkers , firstSyncWorker )
1367+
1368+ name := testCase .ArangoDeployment .Spec .Sync .Monitoring .GetTokenSecretName ()
1369+ auth , err := k8sutil .GetTokenSecret (context .Background (), deployment .GetCachedStatus ().Secret ().V1 ().Read (), name )
1370+ require .NoError (t , err )
1371+
1372+ testCase .ExpectedPod .Spec .Containers [0 ].LivenessProbe = createTestLivenessProbe ("" , true , "bearer " + auth , shared .ServerPortName )
1373+ },
1374+ ExpectedEvent : "member syncworker is created" ,
1375+ ExpectedPod : core.Pod {
1376+ Spec : core.PodSpec {
1377+ Volumes : []core.Volume {
1378+ k8sutil .LifecycleVolume (),
1379+ k8sutil .CreateVolumeWithSecret (shared .MasterJWTSecretVolumeName , testDeploymentName + "-sync-jwt" ),
1380+ },
1381+ InitContainers : []core.Container {
1382+ createTestLifecycleContainer (emptyResources ),
1383+ },
1384+ Containers : []core.Container {
1385+ {
1386+ Name : shared .ServerContainerName ,
1387+ Image : testImage ,
1388+ Command : createTestCommandForSyncWorker (firstSyncWorker .ID , true , true ),
1389+ Ports : createTestPorts (api .ServerGroupSyncWorkers ),
1390+ Env : []core.EnvVar {
1391+ k8sutil .CreateEnvSecretKeySelector (constants .EnvArangoSyncMonitoringToken ,
1392+ testDeploymentName + "-sync-mt" , constants .SecretKeyToken ),
1393+ k8sutil .CreateEnvSecretKeySelector (constants .EnvArangoLicenseKey ,
1394+ testLicense , constants .SecretKeyToken ),
1395+ k8sutil .CreateEnvFieldPath (constants .EnvOperatorPodName , "metadata.name" ),
1396+ k8sutil .CreateEnvFieldPath (constants .EnvOperatorPodNamespace , "metadata.namespace" ),
1397+ k8sutil .CreateEnvFieldPath (constants .EnvOperatorNodeName , "spec.nodeName" ),
1398+ k8sutil .CreateEnvFieldPath (constants .EnvOperatorNodeNameArango , "spec.nodeName" ),
1399+ },
1400+ ImagePullPolicy : core .PullIfNotPresent ,
1401+ Lifecycle : createTestLifecycle (api .ServerGroupSyncMasters ),
1402+ Resources : k8sutil .ExtractPodResourceRequirement (resourcesUnfiltered ),
1403+ SecurityContext : securityContext .NewSecurityContext (),
1404+ VolumeMounts : []core.VolumeMount {
1405+ k8sutil .LifecycleVolumeMount (),
1406+ k8sutil .MasterJWTVolumeMount (),
1407+ },
1408+ },
1409+ },
1410+ PriorityClassName : testPriorityClassName ,
1411+ RestartPolicy : core .RestartPolicyNever ,
1412+ ServiceAccountName : testServiceAccountName ,
1413+ NodeSelector : nodeSelectorTest ,
1414+ TerminationGracePeriodSeconds : & defaultSyncWorkerTerminationTimeout ,
1415+ Hostname : testDeploymentName + "-" + api .ServerGroupSyncWorkersString + "-" +
1416+ firstSyncWorker .ID ,
1417+ Subdomain : testDeploymentName + "-int" ,
1418+ Affinity : k8sutil .CreateAffinity (testDeploymentName , api .ServerGroupSyncWorkersString ,
1419+ false , api .ServerGroupDBServersString ),
1420+ },
1421+ },
1422+ },
13281423 }
13291424
13301425 runTestCases (t , testCases ... )
0 commit comments