@@ -29,17 +29,23 @@ var (
29
29
// based on the object storage type. Currently supported amendments:
30
30
// - All: Ensure object storage secret mounted and auth projected as env vars.
31
31
// - GCS: Ensure env var GOOGLE_APPLICATION_CREDENTIALS in container
32
- // - S3: Ensure mounting custom CA configmap if any TLSConfig given
32
+ // - S3 & Swift : Ensure mounting custom CA configmap if any TLSConfig given
33
33
func ConfigureDeployment (d * appsv1.Deployment , opts Options ) error {
34
34
switch opts .SharedStore {
35
- case lokiv1 .ObjectStorageSecretAlibabaCloud , lokiv1 .ObjectStorageSecretAzure , lokiv1 .ObjectStorageSecretGCS , lokiv1 . ObjectStorageSecretSwift :
35
+ case lokiv1 .ObjectStorageSecretAlibabaCloud , lokiv1 .ObjectStorageSecretAzure , lokiv1 .ObjectStorageSecretGCS :
36
36
return configureDeployment (d , opts )
37
37
case lokiv1 .ObjectStorageSecretS3 :
38
38
err := configureDeployment (d , opts )
39
39
if err != nil {
40
40
return err
41
41
}
42
- return configureDeploymentCA (d , opts .TLS )
42
+ return configureDeploymentCA (d , opts .TLS , lokiv1 .ObjectStorageSecretS3 )
43
+ case lokiv1 .ObjectStorageSecretSwift :
44
+ err := configureDeployment (d , opts )
45
+ if err != nil {
46
+ return err
47
+ }
48
+ return configureDeploymentCA (d , opts .TLS , lokiv1 .ObjectStorageSecretSwift )
43
49
default :
44
50
return nil
45
51
}
@@ -49,16 +55,21 @@ func ConfigureDeployment(d *appsv1.Deployment, opts Options) error {
49
55
// based on the object storage type. Currently supported amendments:
50
56
// - All: Ensure object storage secret mounted and auth projected as env vars.
51
57
// - GCS: Ensure env var GOOGLE_APPLICATION_CREDENTIALS in container
52
- // - S3: Ensure mounting custom CA configmap if any TLSConfig given
58
+ // - S3 & Swift : Ensure mounting custom CA configmap if any TLSConfig given
53
59
func ConfigureStatefulSet (d * appsv1.StatefulSet , opts Options ) error {
54
60
switch opts .SharedStore {
55
- case lokiv1 .ObjectStorageSecretAlibabaCloud , lokiv1 .ObjectStorageSecretAzure , lokiv1 .ObjectStorageSecretGCS , lokiv1 . ObjectStorageSecretSwift :
61
+ case lokiv1 .ObjectStorageSecretAlibabaCloud , lokiv1 .ObjectStorageSecretAzure , lokiv1 .ObjectStorageSecretGCS :
56
62
return configureStatefulSet (d , opts )
57
63
case lokiv1 .ObjectStorageSecretS3 :
58
64
if err := configureStatefulSet (d , opts ); err != nil {
59
65
return err
60
66
}
61
- return configureStatefulSetCA (d , opts .TLS )
67
+ return configureStatefulSetCA (d , opts .TLS , lokiv1 .ObjectStorageSecretS3 )
68
+ case lokiv1 .ObjectStorageSecretSwift :
69
+ if err := configureStatefulSet (d , opts ); err != nil {
70
+ return err
71
+ }
72
+ return configureStatefulSetCA (d , opts .TLS , lokiv1 .ObjectStorageSecretSwift )
62
73
default :
63
74
return nil
64
75
}
@@ -75,16 +86,22 @@ func configureDeployment(d *appsv1.Deployment, opts Options) error {
75
86
return nil
76
87
}
77
88
78
- // ConfigureDeploymentCA merges a S3 CA ConfigMap volume into the deployment spec.
79
- func configureDeploymentCA (d * appsv1.Deployment , tls * TLSConfig ) error {
89
+ // ConfigureDeploymentCA merges a S3 or Swift CA ConfigMap volume into the deployment spec.
90
+ func configureDeploymentCA (d * appsv1.Deployment , tls * TLSConfig , secretType lokiv1. ObjectStorageSecretType ) error {
80
91
if tls == nil {
81
92
return nil
82
93
}
83
94
84
- p := ensureCAForS3 (& d .Spec .Template .Spec , tls )
95
+ var p corev1.PodSpec
96
+ switch secretType {
97
+ case lokiv1 .ObjectStorageSecretS3 :
98
+ p = ensureCAForObjectStorage (& d .Spec .Template .Spec , tls , lokiv1 .ObjectStorageSecretS3 )
99
+ case lokiv1 .ObjectStorageSecretSwift :
100
+ p = ensureCAForObjectStorage (& d .Spec .Template .Spec , tls , lokiv1 .ObjectStorageSecretSwift )
101
+ }
85
102
86
103
if err := mergo .Merge (& d .Spec .Template .Spec , p , mergo .WithOverride ); err != nil {
87
- return kverrors .Wrap (err , "failed to merge s3 object storage ca options " )
104
+ return kverrors .Wrap (err , "failed to merge object storage ca options " )
88
105
}
89
106
90
107
return nil
@@ -101,16 +118,22 @@ func configureStatefulSet(s *appsv1.StatefulSet, opts Options) error {
101
118
return nil
102
119
}
103
120
104
- // ConfigureStatefulSetCA merges a S3 CA ConfigMap volume into the statefulset spec.
105
- func configureStatefulSetCA (s * appsv1.StatefulSet , tls * TLSConfig ) error {
121
+ // ConfigureStatefulSetCA merges a S3 or Swift CA ConfigMap volume into the statefulset spec.
122
+ func configureStatefulSetCA (s * appsv1.StatefulSet , tls * TLSConfig , secretType lokiv1. ObjectStorageSecretType ) error {
106
123
if tls == nil {
107
124
return nil
108
125
}
126
+ var p corev1.PodSpec
109
127
110
- p := ensureCAForS3 (& s .Spec .Template .Spec , tls )
128
+ switch secretType {
129
+ case lokiv1 .ObjectStorageSecretS3 :
130
+ p = ensureCAForObjectStorage (& s .Spec .Template .Spec , tls , lokiv1 .ObjectStorageSecretS3 )
131
+ case lokiv1 .ObjectStorageSecretSwift :
132
+ p = ensureCAForObjectStorage (& s .Spec .Template .Spec , tls , lokiv1 .ObjectStorageSecretSwift )
133
+ }
111
134
112
135
if err := mergo .Merge (& s .Spec .Template .Spec , p , mergo .WithOverride ); err != nil {
113
- return kverrors .Wrap (err , "failed to merge s3 object storage ca options " )
136
+ return kverrors .Wrap (err , "failed to merge object storage ca options " )
114
137
}
115
138
116
139
return nil
@@ -254,7 +277,7 @@ func serverSideEncryption(opts Options) []corev1.EnvVar {
254
277
}
255
278
}
256
279
257
- func ensureCAForS3 (p * corev1.PodSpec , tls * TLSConfig ) corev1.PodSpec {
280
+ func ensureCAForObjectStorage (p * corev1.PodSpec , tls * TLSConfig , secretType lokiv1. ObjectStorageSecretType ) corev1.PodSpec {
258
281
container := p .Containers [0 ].DeepCopy ()
259
282
volumes := p .Volumes
260
283
@@ -275,9 +298,16 @@ func ensureCAForS3(p *corev1.PodSpec, tls *TLSConfig) corev1.PodSpec {
275
298
MountPath : caDirectory ,
276
299
})
277
300
278
- container .Args = append (container .Args ,
279
- fmt .Sprintf ("-s3.http.ca-file=%s" , path .Join (caDirectory , tls .Key )),
280
- )
301
+ switch secretType {
302
+ case lokiv1 .ObjectStorageSecretS3 :
303
+ container .Args = append (container .Args ,
304
+ fmt .Sprintf ("-s3.http.ca-file=%s" , path .Join (caDirectory , tls .Key )),
305
+ )
306
+ case lokiv1 .ObjectStorageSecretSwift :
307
+ container .Args = append (container .Args ,
308
+ fmt .Sprintf ("-swift.http.tls-ca-path=%s" , path .Join (caDirectory , tls .Key )),
309
+ )
310
+ }
281
311
282
312
return corev1.PodSpec {
283
313
Containers : []corev1.Container {
0 commit comments