@@ -344,6 +344,17 @@ func KotsadmDeployment(deployOptions types.DeployOptions) (*appsv1.Deployment, e
344
344
})
345
345
}
346
346
347
+ if deployOptions .TrustedCAsConfigmap != "" {
348
+ env = append (env , corev1.EnvVar {
349
+ Name : "SSL_CERT_DIR" ,
350
+ Value : "/certs" ,
351
+ })
352
+ env = append (env , corev1.EnvVar {
353
+ Name : "SSL_CERT_CONFIGMAP" ,
354
+ Value : deployOptions .TrustedCAsConfigmap ,
355
+ })
356
+ }
357
+
347
358
podAnnotations := map [string ]string {
348
359
"backup.velero.io/backup-volumes" : "backup" ,
349
360
"pre.hook.backup.velero.io/command" : `["/backup.sh"]` ,
@@ -359,6 +370,60 @@ func KotsadmDeployment(deployOptions types.DeployOptions) (*appsv1.Deployment, e
359
370
podLabels [k ] = v
360
371
}
361
372
373
+ volumes := []corev1.Volume {
374
+ {
375
+ Name : "migrations" ,
376
+ VolumeSource : corev1.VolumeSource {
377
+ EmptyDir : & corev1.EmptyDirVolumeSource {
378
+ Medium : corev1 .StorageMediumMemory ,
379
+ },
380
+ },
381
+ },
382
+ {
383
+ Name : "backup" ,
384
+ VolumeSource : corev1.VolumeSource {
385
+ EmptyDir : & corev1.EmptyDirVolumeSource {},
386
+ },
387
+ },
388
+ {
389
+ Name : "tmp" ,
390
+ VolumeSource : corev1.VolumeSource {
391
+ EmptyDir : & corev1.EmptyDirVolumeSource {},
392
+ },
393
+ },
394
+ }
395
+
396
+ if deployOptions .TrustedCAsConfigmap != "" {
397
+ volumes = append (volumes , corev1.Volume {
398
+ Name : "kotsadm-private-cas" ,
399
+ VolumeSource : corev1.VolumeSource {
400
+ ConfigMap : & corev1.ConfigMapVolumeSource {
401
+ LocalObjectReference : corev1.LocalObjectReference {
402
+ Name : deployOptions .TrustedCAsConfigmap ,
403
+ },
404
+ },
405
+ },
406
+ })
407
+ }
408
+
409
+ volumeMounts := []corev1.VolumeMount {
410
+ {
411
+ Name : "backup" ,
412
+ MountPath : "/backup" ,
413
+ },
414
+ {
415
+ Name : "tmp" ,
416
+ MountPath : "/tmp" ,
417
+ },
418
+ }
419
+
420
+ if deployOptions .TrustedCAsConfigmap != "" {
421
+ volumeMounts = append (volumeMounts , corev1.VolumeMount {
422
+ Name : "kotsadm-private-cas" ,
423
+ MountPath : "/certs" ,
424
+ })
425
+ }
426
+
362
427
deployment := & appsv1.Deployment {
363
428
TypeMeta : metav1.TypeMeta {
364
429
APIVersion : "apps/v1" ,
@@ -385,29 +450,8 @@ func KotsadmDeployment(deployOptions types.DeployOptions) (*appsv1.Deployment, e
385
450
Affinity : & corev1.Affinity {
386
451
NodeAffinity : defaultKOTSNodeAffinity (),
387
452
},
388
- SecurityContext : securityContext ,
389
- Volumes : []corev1.Volume {
390
- {
391
- Name : "migrations" ,
392
- VolumeSource : corev1.VolumeSource {
393
- EmptyDir : & corev1.EmptyDirVolumeSource {
394
- Medium : corev1 .StorageMediumMemory ,
395
- },
396
- },
397
- },
398
- {
399
- Name : "backup" ,
400
- VolumeSource : corev1.VolumeSource {
401
- EmptyDir : & corev1.EmptyDirVolumeSource {},
402
- },
403
- },
404
- {
405
- Name : "tmp" ,
406
- VolumeSource : corev1.VolumeSource {
407
- EmptyDir : & corev1.EmptyDirVolumeSource {},
408
- },
409
- },
410
- },
453
+ SecurityContext : securityContext ,
454
+ Volumes : volumes ,
411
455
ServiceAccountName : "kotsadm" ,
412
456
RestartPolicy : corev1 .RestartPolicyAlways ,
413
457
ImagePullSecrets : pullSecrets ,
@@ -631,17 +675,8 @@ func KotsadmDeployment(deployOptions types.DeployOptions) (*appsv1.Deployment, e
631
675
},
632
676
},
633
677
},
634
- VolumeMounts : []corev1.VolumeMount {
635
- {
636
- Name : "backup" ,
637
- MountPath : "/backup" ,
638
- },
639
- {
640
- Name : "tmp" ,
641
- MountPath : "/tmp" ,
642
- },
643
- },
644
- Env : env ,
678
+ VolumeMounts : volumeMounts ,
679
+ Env : env ,
645
680
Resources : corev1.ResourceRequirements {
646
681
Limits : corev1.ResourceList {
647
682
"cpu" : resource .MustParse ("1" ),
@@ -694,6 +729,7 @@ func UpdateKotsadmStatefulSet(existingStatefulset *appsv1.StatefulSet, desiredSt
694
729
return nil
695
730
}
696
731
732
+ // TODO add configmap for additional CAs
697
733
func KotsadmStatefulSet (deployOptions types.DeployOptions , size resource.Quantity ) (* appsv1.StatefulSet , error ) {
698
734
securityContext := k8sutil .SecurePodContext (1001 , 1001 , deployOptions .StrictSecurityContext )
699
735
if deployOptions .IsOpenShift {
@@ -846,6 +882,17 @@ func KotsadmStatefulSet(deployOptions types.DeployOptions, size resource.Quantit
846
882
})
847
883
}
848
884
885
+ if deployOptions .TrustedCAsConfigmap != "" {
886
+ env = append (env , corev1.EnvVar {
887
+ Name : "SSL_CERT_DIR" ,
888
+ Value : "/certs" ,
889
+ })
890
+ env = append (env , corev1.EnvVar {
891
+ Name : "SSL_CERT_CONFIGMAP" ,
892
+ Value : deployOptions .TrustedCAsConfigmap ,
893
+ })
894
+ }
895
+
849
896
var storageClassName * string
850
897
if deployOptions .StorageClassName != "" {
851
898
storageClassName = & deployOptions .StorageClassName
@@ -866,6 +913,72 @@ func KotsadmStatefulSet(deployOptions types.DeployOptions, size resource.Quantit
866
913
podLabels [k ] = v
867
914
}
868
915
916
+ volumes := []corev1.Volume {
917
+ {
918
+ Name : "kotsadmdata" ,
919
+ VolumeSource : corev1.VolumeSource {
920
+ PersistentVolumeClaim : & corev1.PersistentVolumeClaimVolumeSource {
921
+ ClaimName : "kotsadmdata" ,
922
+ },
923
+ },
924
+ },
925
+ {
926
+ Name : "migrations" ,
927
+ VolumeSource : corev1.VolumeSource {
928
+ EmptyDir : & corev1.EmptyDirVolumeSource {
929
+ Medium : corev1 .StorageMediumMemory ,
930
+ },
931
+ },
932
+ },
933
+ {
934
+ Name : "backup" ,
935
+ VolumeSource : corev1.VolumeSource {
936
+ EmptyDir : & corev1.EmptyDirVolumeSource {},
937
+ },
938
+ },
939
+ {
940
+ Name : "tmp" ,
941
+ VolumeSource : corev1.VolumeSource {
942
+ EmptyDir : & corev1.EmptyDirVolumeSource {},
943
+ },
944
+ },
945
+ }
946
+
947
+ if deployOptions .TrustedCAsConfigmap != "" {
948
+ volumes = append (volumes , corev1.Volume {
949
+ Name : "kotsadm-private-cas" ,
950
+ VolumeSource : corev1.VolumeSource {
951
+ ConfigMap : & corev1.ConfigMapVolumeSource {
952
+ LocalObjectReference : corev1.LocalObjectReference {
953
+ Name : deployOptions .TrustedCAsConfigmap ,
954
+ },
955
+ },
956
+ },
957
+ })
958
+ }
959
+
960
+ volumeMounts := []corev1.VolumeMount {
961
+ {
962
+ Name : "kotsadmdata" ,
963
+ MountPath : "/kotsadmdata" ,
964
+ },
965
+ {
966
+ Name : "backup" ,
967
+ MountPath : "/backup" ,
968
+ },
969
+ {
970
+ Name : "tmp" ,
971
+ MountPath : "/tmp" ,
972
+ },
973
+ }
974
+
975
+ if deployOptions .TrustedCAsConfigmap != "" {
976
+ volumeMounts = append (volumeMounts , corev1.VolumeMount {
977
+ Name : "kotsadm-private-cas" ,
978
+ MountPath : "/certs" ,
979
+ })
980
+ }
981
+
869
982
statefulset := & appsv1.StatefulSet {
870
983
TypeMeta : metav1.TypeMeta {
871
984
APIVersion : "apps/v1" ,
@@ -893,37 +1006,8 @@ func KotsadmStatefulSet(deployOptions types.DeployOptions, size resource.Quantit
893
1006
Affinity : & corev1.Affinity {
894
1007
NodeAffinity : defaultKOTSNodeAffinity (),
895
1008
},
896
- SecurityContext : securityContext ,
897
- Volumes : []corev1.Volume {
898
- {
899
- Name : "kotsadmdata" ,
900
- VolumeSource : corev1.VolumeSource {
901
- PersistentVolumeClaim : & corev1.PersistentVolumeClaimVolumeSource {
902
- ClaimName : "kotsadmdata" ,
903
- },
904
- },
905
- },
906
- {
907
- Name : "migrations" ,
908
- VolumeSource : corev1.VolumeSource {
909
- EmptyDir : & corev1.EmptyDirVolumeSource {
910
- Medium : corev1 .StorageMediumMemory ,
911
- },
912
- },
913
- },
914
- {
915
- Name : "backup" ,
916
- VolumeSource : corev1.VolumeSource {
917
- EmptyDir : & corev1.EmptyDirVolumeSource {},
918
- },
919
- },
920
- {
921
- Name : "tmp" ,
922
- VolumeSource : corev1.VolumeSource {
923
- EmptyDir : & corev1.EmptyDirVolumeSource {},
924
- },
925
- },
926
- },
1009
+ SecurityContext : securityContext ,
1010
+ Volumes : volumes ,
927
1011
ServiceAccountName : "kotsadm" ,
928
1012
RestartPolicy : corev1 .RestartPolicyAlways ,
929
1013
ImagePullSecrets : pullSecrets ,
@@ -1153,21 +1237,8 @@ func KotsadmStatefulSet(deployOptions types.DeployOptions, size resource.Quantit
1153
1237
},
1154
1238
},
1155
1239
},
1156
- VolumeMounts : []corev1.VolumeMount {
1157
- {
1158
- Name : "kotsadmdata" ,
1159
- MountPath : "/kotsadmdata" ,
1160
- },
1161
- {
1162
- Name : "backup" ,
1163
- MountPath : "/backup" ,
1164
- },
1165
- {
1166
- Name : "tmp" ,
1167
- MountPath : "/tmp" ,
1168
- },
1169
- },
1170
- Env : env ,
1240
+ VolumeMounts : volumeMounts ,
1241
+ Env : env ,
1171
1242
Resources : corev1.ResourceRequirements {
1172
1243
Limits : corev1.ResourceList {
1173
1244
"cpu" : resource .MustParse ("1" ),
0 commit comments