Skip to content

Commit bc1b7fc

Browse files
committed
add support for multiple cosi drivers in k8s cluster
Fixes: #27 Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
1 parent e1f4ab2 commit bc1b7fc

File tree

4 files changed

+29
-7
lines changed

4 files changed

+29
-7
lines changed

cmd/ceph-cosi-driver/cmd.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package main
1919
import (
2020
"context"
2121
"flag"
22+
"os"
2223
"strings"
2324

2425
"github.com/ceph/cosi-driver-ceph/pkg/driver"
@@ -34,9 +35,7 @@ const provisionerName = "ceph.objectstorage.k8s.io"
3435

3536
var (
3637
driverAddress = "unix:///var/lib/cosi/cosi.sock"
37-
AccessKey = ""
38-
SecretKey = ""
39-
Endpoint = ""
38+
driverPrefix = ""
4039
)
4140

4241
var cmd = &cobra.Command{
@@ -78,7 +77,12 @@ func init() {
7877
}
7978

8079
func run(ctx context.Context, args []string) error {
81-
identityServer, bucketProvisioner, err := driver.NewDriver(ctx, provisionerName)
80+
driverPrefix := os.Getenv("DRIVER_PREFIX")
81+
if driverPrefix == "" {
82+
driverPrefix = os.Getenv("POD_NAMESPACE")
83+
}
84+
driverName := driverPrefix + "." + provisionerName
85+
identityServer, bucketProvisioner, err := driver.NewDriver(ctx, driverName)
8286
if err != nil {
8387
return err
8488
}

pkg/driver/driver.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ import (
2323
cosispec "sigs.k8s.io/container-object-storage-interface-spec"
2424
)
2525

26-
func NewDriver(ctx context.Context, provisionerName string) (cosispec.IdentityServer, cosispec.ProvisionerServer, error) {
27-
provisionerServer, err := NewProvisionerServer(provisionerName)
26+
func NewDriver(ctx context.Context, driverName string) (cosispec.IdentityServer, cosispec.ProvisionerServer, error) {
27+
provisionerServer, err := NewProvisionerServer(driverName)
2828
if err != nil {
2929
klog.Fatal(err, "failed to create provisioner server")
3030
return nil, nil, err
3131
}
32-
identityServer, err := NewIdentityServer(provisionerName)
32+
identityServer, err := NewIdentityServer(driverName)
3333
if err != nil {
3434
klog.Fatal(err, "failed to create provisioner server")
3535
return nil, nil, err

resources/deployment.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ spec:
3939
- name: ceph-cosi-driver
4040
image: $(CEPH_IMAGE_ORG)/ceph-cosi-driver:$(CEPH_IMAGE_VERSION)
4141
imagePullPolicy: IfNotPresent
42+
envFrom:
43+
- secretRef:
44+
name: objectstorage-provisioner
4245
volumeMounts:
4346
- mountPath: /var/lib/cosi
4447
name: socket
@@ -47,6 +50,9 @@ spec:
4750
imagePullPolicy: IfNotPresent
4851
args:
4952
- "--v=5"
53+
envFrom:
54+
- secretRef:
55+
name: objectstorage-provisioner
5056
env:
5157
- name: POD_NAMESPACE
5258
valueFrom:

resources/secret.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: objectstorage-provisioner
5+
labels:
6+
app.kubernetes.io/part-of: container-object-storage-interface
7+
app.kubernetes.io/component: driver-ceph
8+
app.kubernetes.io/version: main
9+
app.kubernetes.io/name: cosi-driver-ceph
10+
type: Opaque
11+
#stringData:
12+
# DRIVER_PREFIX: ""

0 commit comments

Comments
 (0)