diff --git a/Gopkg.lock b/Gopkg.lock index d11e6d0..90a8f23 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -2,12 +2,15 @@ [[projects]] + digest = "1:e92f5581902c345eb4ceffdcd4a854fb8f73cf436d47d837d1ec98ef1fe0a214" name = "github.com/StackExchange/wmi" packages = ["."] + pruneopts = "UT" revision = "5d049714c4a64225c3c79a7cf7d02f7fb5b96338" version = "1.0.0" [[projects]] + digest = "1:df533a8f9784468359b906351182dd8885c2822bc611fa6781df0a9b9fbee252" name = "github.com/aws/aws-sdk-go" packages = [ "aws", @@ -40,59 +43,74 @@ "private/protocol/restxml", "private/protocol/xml/xmlutil", "service/s3", - "service/sts" + "service/sts", ] + pruneopts = "UT" revision = "94b80148ea4b1b136682116294b151766a3b85c2" version = "v1.14.27" [[projects]] + digest = "1:94ffc0947c337d618b6ff5ed9abaddc1217b090c1b3a1ae4739b35b7b25851d5" name = "github.com/container-storage-interface/spec" - packages = ["lib/go/csi/v0"] - revision = "2178fdeea87f1150a17a63252eee28d4d8141f72" - version = "v0.3.0" + packages = ["lib/go/csi"] + pruneopts = "UT" + revision = "ed0bb0e1557548aa028307f48728767cfe8f6345" + version = "v1.0.0" [[projects]] branch = "master" + digest = "1:6f9339c912bbdda81302633ad7e99a28dfa5a639c864061f1929510a9a64aa74" name = "github.com/dustin/go-humanize" packages = ["."] + pruneopts = "UT" revision = "9f541cc9db5d55bce703bd99987c9d5cb8eea45e" [[projects]] + digest = "1:fe8a03a8222d5b913f256972933d26d24ad7c8286692a42943bc01633cc8fce3" name = "github.com/go-ini/ini" packages = ["."] + pruneopts = "UT" revision = "358ee7663966325963d4e8b2e1fbd570c5195153" version = "v1.38.1" [[projects]] + digest = "1:64a5a67c69b70c2420e607a8545d674a23778ed9c3e80607bfd17b77c6c87f6a" name = "github.com/go-ole/go-ole" packages = [ ".", - "oleutil" + "oleutil", ] + pruneopts = "UT" revision = "a41e3c4b706f6ae8dfbff342b06e40fa4d2d0506" version = "v1.2.1" [[projects]] branch = "master" + digest = "1:1ba1d79f2810270045c328ae5d674321db34e3aae468eb4233883b473c5c0467" name = "github.com/golang/glog" packages = ["."] + pruneopts = "UT" revision = "23def4e6c14b4da8ac2ed8007337bc5eb5007998" [[projects]] + digest = "1:35676c12b04030d448744065729d65e6f1d159447cf4d993e80cc7d4f28bfe20" name = "github.com/golang/protobuf" packages = [ "proto", + "protoc-gen-go/descriptor", "ptypes", "ptypes/any", "ptypes/duration", "ptypes/timestamp", - "ptypes/wrappers" + "ptypes/wrappers", ] + pruneopts = "UT" revision = "b4deda0973fb4c70b50d226b1af49f3da59f5265" version = "v1.1.0" [[projects]] branch = "master" + digest = "1:c19183ee1bc01433c61d026972e83a479816ffb00f29c8d7605b0668d4bdea8c" name = "github.com/jacobsa/fuse" packages = [ ".", @@ -100,46 +118,58 @@ "fuseutil", "internal/buffer", "internal/freelist", - "internal/fusekernel" + "internal/fusekernel", ] + pruneopts = "UT" revision = "cd3959611bcb6bb23d49f1598d98f2bf44476805" [[projects]] branch = "master" + digest = "1:5c3444689562053b027ef3b96372e306adbe0d7d109b6cdd48d01eb80f8bab14" name = "github.com/jinzhu/copier" packages = ["."] + pruneopts = "UT" revision = "7e38e58719c33e0d44d585c4ab477a30f8cb82dd" [[projects]] + digest = "1:e22af8c7518e1eab6f2eab2b7d7558927f816262586cd6ed9f349c97a6c285c4" name = "github.com/jmespath/go-jmespath" packages = ["."] + pruneopts = "UT" revision = "0b12d6b5" [[projects]] + digest = "1:9aa9ceb463bf7fe3de4945f89f8190d3ed4c86847ec7a864b90a5195fdba4244" name = "github.com/kahing/goofys" packages = [ "api", - "internal" + "internal", ] + pruneopts = "UT" revision = "943e017724ea820eb4185419ef3c41d6f921a324" version = "v0.19.0" [[projects]] + digest = "1:c9ba37d3709f57185b60f587a6282378feaff2aa3cddc28a56770704e3f96b98" name = "github.com/kubernetes-csi/csi-test" packages = [ "pkg/sanity", - "utils" + "utils", ] - revision = "718c9544f5e16cba31881333e0f9dff371663dea" - version = "v0.3.0-1" + pruneopts = "UT" + revision = "5b1e3786b7c8f7ca514b40e882a0b5dc36e4c842" + version = "v1.1.0" [[projects]] branch = "master" + digest = "1:596505ce72821ef663980f7ce826984a30da406f9356a92c10ac8b44012d549c" name = "github.com/kubernetes-csi/drivers" packages = ["pkg/csi-common"] - revision = "d8f283cd941f1e24e20e62653476a3722633f43e" + pruneopts = "UT" + revision = "c1e71bdcce6e89c8e4ce49f77ecb5e0a1962c716" [[projects]] + digest = "1:95c73c666919be2843b955eafc83f58c136312b74f79c703152f4c4a95fd64dc" name = "github.com/minio/minio-go" packages = [ ".", @@ -147,24 +177,30 @@ "pkg/encrypt", "pkg/s3signer", "pkg/s3utils", - "pkg/set" + "pkg/set", ] + pruneopts = "UT" revision = "70799fe8dae6ecfb6c7d7e9e048fce27f23a1992" version = "v6.0.5" [[projects]] branch = "master" + digest = "1:8eb17c2ec4df79193ae65b621cd1c0c4697db3bc317fe6afdc76d7f2746abd05" name = "github.com/mitchellh/go-homedir" packages = ["."] + pruneopts = "UT" revision = "3864e76763d94a6df2f9960b16a20a33da9f9a66" [[projects]] branch = "master" + digest = "1:d0c95a34e79df79eb96ca870d6b6fc43361d34c9c05495f93a5ad0077f7bbb24" name = "github.com/mitchellh/go-ps" packages = ["."] + pruneopts = "UT" revision = "4fdf99ab29366514c69ccccddab5dc58b8d84062" [[projects]] + digest = "1:72f35d3e412bc67b121e15ea4c88a3b3da8bcbc2264339e7ffa4a1865799840c" name = "github.com/onsi/ginkgo" packages = [ ".", @@ -184,12 +220,14 @@ "reporters/stenographer", "reporters/stenographer/support/go-colorable", "reporters/stenographer/support/go-isatty", - "types" + "types", ] + pruneopts = "UT" revision = "fa5fabab2a1bfbd924faf4c067d07ae414e2aedf" version = "v1.5.0" [[projects]] + digest = "1:d0c2c4e2d0006cd28c220a549cda1de8e67abc65ed4c572421492bbf0492ceaf" name = "github.com/onsi/gomega" packages = [ ".", @@ -203,47 +241,57 @@ "matchers/support/goraph/edge", "matchers/support/goraph/node", "matchers/support/goraph/util", - "types" + "types", ] + pruneopts = "UT" revision = "62bff4df71bdbc266561a0caee19f0594b17c240" version = "v1.4.0" [[projects]] + digest = "1:bc2cfc85e2d84e825de87a09c8b05c2bcac704b7169c8b05004c382d993775e0" name = "github.com/shirou/gopsutil" packages = [ "internal/common", - "mem" + "mem", ] + pruneopts = "UT" revision = "4a180b209f5f494e5923cfce81ea30ba23915877" version = "v2.18.06" [[projects]] + digest = "1:c3addbf9fe72664f65b519d0d629fc59e63d3112f927375a30b12ab8bb047ae8" name = "github.com/sirupsen/logrus" packages = [ ".", - "hooks/syslog" + "hooks/syslog", ] + pruneopts = "UT" revision = "c155da19408a8799da419ed3eeb0cb5db0ad5dbc" version = "v1.0.5" [[projects]] + digest = "1:b24d38b282bacf9791408a080f606370efa3d364e4b5fd9ba0f7b87786d3b679" name = "github.com/urfave/cli" packages = ["."] + pruneopts = "UT" revision = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1" version = "v1.20.0" [[projects]] branch = "master" + digest = "1:57fc8065a25e45bda6925e55b69a8ea2eb2e449d0bb69643346e70afd2f7d2ed" name = "golang.org/x/crypto" packages = [ "argon2", "blake2b", - "ssh/terminal" + "ssh/terminal", ] + pruneopts = "UT" revision = "a49355c7e3f8fe157a85be2f77e6e269a0f89602" [[projects]] branch = "master" + digest = "1:381804744ed1ae8c716cc963a95f242d804fe1f559f2c4cdfc94e4eccd478058" name = "golang.org/x/net" packages = [ "context", @@ -255,21 +303,25 @@ "http2/hpack", "idna", "internal/timeseries", - "trace" + "trace", ] + pruneopts = "UT" revision = "d0887baf81f4598189d4e12a37c6da86f0bba4d0" [[projects]] branch = "master" + digest = "1:1da9d2022068957b5a7080b0f94d3d81bdba624a5ce7467912bd6d4330ba2c3f" name = "golang.org/x/sys" packages = [ "cpu", "unix", - "windows" + "windows", ] + pruneopts = "UT" revision = "ac767d655b305d4e9612f5f6e33120b9176c4ad4" [[projects]] + digest = "1:436b24586f8fee329e0dd65fd67c817681420cda1d7f934345c13fe78c212a73" name = "golang.org/x/text" packages = [ "collate", @@ -297,18 +349,22 @@ "unicode/bidi", "unicode/cldr", "unicode/norm", - "unicode/rangetable" + "unicode/rangetable", ] + pruneopts = "UT" revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" version = "v0.3.0" [[projects]] branch = "master" + digest = "1:601e63e7d4577f907118bec825902505291918859d223bce015539e79f1160e3" name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] + pruneopts = "UT" revision = "2731d4fa720b67f9fe38e9051a2a9b38e4609260" [[projects]] + digest = "1:2dab32a43451e320e49608ff4542fdfc653c95dcc35d0065ec9c6c3dd540ed74" name = "google.golang.org/grpc" packages = [ ".", @@ -335,49 +391,75 @@ "stats", "status", "tap", - "transport" + "transport", ] + pruneopts = "UT" revision = "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" version = "v1.13.0" [[projects]] + digest = "1:fe8a03a8222d5b913f256972933d26d24ad7c8286692a42943bc01633cc8fce3" name = "gopkg.in/ini.v1" packages = ["."] + pruneopts = "UT" revision = "358ee7663966325963d4e8b2e1fbd570c5195153" version = "v1.38.1" [[projects]] + digest = "1:342378ac4dcb378a5448dd723f0784ae519383532f5e70ade24132c4c8693202" name = "gopkg.in/yaml.v2" packages = ["."] + pruneopts = "UT" revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" version = "v2.2.1" [[projects]] branch = "master" + digest = "1:f5fb6c4c9e14909a66efe7d3e49403234cd52523eb3997c5753a880635e8be2d" name = "k8s.io/apimachinery" packages = ["pkg/util/sets"] + pruneopts = "UT" revision = "705cfa51a97f837a6599d463e2e206ad65903b60" [[projects]] + digest = "1:a52efec378f1475a8ba2e034416b0fcc9de22ab6e0f8890f8af2820118d8d4a7" name = "k8s.io/kubernetes" packages = [ "pkg/util/file", "pkg/util/io", "pkg/util/mount", - "pkg/util/nsenter" + "pkg/util/nsenter", ] + pruneopts = "UT" revision = "91e7b4fd31fcd3d5f436da26c980becec37ceefe" version = "v1.11.0" [[projects]] branch = "master" + digest = "1:867d98a27033c52150eb4c01ca0f9be938d3010e9a4909ea3a881a83c3ac1b3f" name = "k8s.io/utils" packages = ["exec"] + pruneopts = "UT" revision = "ab9069044f32ba0c6da081bb46bb0b12e3862c21" [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "a655e5231fe7b5c962579c8f032338c53177a95a3160bef4628f0761f714f730" + input-imports = [ + "github.com/container-storage-interface/spec/lib/go/csi", + "github.com/golang/glog", + "github.com/kahing/goofys/api", + "github.com/kubernetes-csi/csi-test/pkg/sanity", + "github.com/kubernetes-csi/drivers/pkg/csi-common", + "github.com/minio/minio-go", + "github.com/mitchellh/go-ps", + "github.com/onsi/ginkgo", + "github.com/onsi/gomega", + "golang.org/x/net/context", + "google.golang.org/grpc/codes", + "google.golang.org/grpc/status", + "gopkg.in/ini.v1", + "k8s.io/kubernetes/pkg/util/mount", + ] solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index eef4e5a..a421ad6 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -1,6 +1,6 @@ [[constraint]] name = "github.com/container-storage-interface/spec" - version = "0.3.0" + version = "1.0.0" [[constraint]] branch = "master" @@ -12,7 +12,7 @@ [[constraint]] name = "github.com/kubernetes-csi/csi-test" - version = "v0.3.0-1" + version = "v1.0.2" [[constraint]] branch = "master" diff --git a/deploy/kubernetes/attacher.yaml b/deploy/kubernetes/attacher.yaml index a57bf2e..c08998b 100644 --- a/deploy/kubernetes/attacher.yaml +++ b/deploy/kubernetes/attacher.yaml @@ -32,7 +32,7 @@ metadata: subjects: - kind: ServiceAccount name: csi-attacher-sa - namespace: default + namespace: kube-system roleRef: kind: ClusterRole name: external-attacher-runner @@ -67,7 +67,7 @@ spec: serviceAccount: csi-attacher-sa containers: - name: csi-attacher - image: quay.io/k8scsi/csi-attacher:v0.2.0 + image: quay.io/k8scsi/csi-attacher:v1.0.1 args: - "--v=4" - "--csi-address=$(ADDRESS)" diff --git a/deploy/kubernetes/csi-s3.yaml b/deploy/kubernetes/csi-s3.yaml index 9b992be..a84a2d8 100644 --- a/deploy/kubernetes/csi-s3.yaml +++ b/deploy/kubernetes/csi-s3.yaml @@ -32,7 +32,7 @@ metadata: subjects: - kind: ServiceAccount name: csi-s3 - namespace: default + namespace: kube-system roleRef: kind: ClusterRole name: csi-s3 @@ -55,13 +55,16 @@ spec: hostNetwork: true containers: - name: driver-registrar - image: quay.io/k8scsi/driver-registrar:v0.2.0 + image: quay.io/k8scsi/csi-node-driver-registrar:v1.0.1 args: + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" - "--v=4" - "--csi-address=$(ADDRESS)" env: - name: ADDRESS value: /csi/csi.sock + - name: DRIVER_REG_SOCK_PATH + value: /var/lib/kubelet/plugins/ch.ctrox.csi.s3-driver/csi.sock - name: KUBE_NODE_NAME valueFrom: fieldRef: @@ -69,6 +72,8 @@ spec: volumeMounts: - name: plugin-dir mountPath: /csi + - name: registration-dir + mountPath: /registration/ - name: csi-s3 securityContext: privileged: true @@ -127,6 +132,10 @@ spec: - name: fuse-device mountPath: /dev/fuse volumes: + - name: registration-dir + hostPath: + path: /var/lib/kubelet/plugins_registry/ + type: DirectoryOrCreate - name: plugin-dir hostPath: path: /var/lib/kubelet/plugins/ch.ctrox.csi.s3-driver diff --git a/deploy/kubernetes/provisioner.yaml b/deploy/kubernetes/provisioner.yaml index 971f4e0..90d5ebe 100644 --- a/deploy/kubernetes/provisioner.yaml +++ b/deploy/kubernetes/provisioner.yaml @@ -32,7 +32,7 @@ metadata: subjects: - kind: ServiceAccount name: csi-provisioner-sa - namespace: default + namespace: kube-system roleRef: kind: ClusterRole name: external-provisioner-runner @@ -66,7 +66,7 @@ spec: serviceAccount: csi-provisioner-sa containers: - name: csi-provisioner - image: quay.io/k8scsi/csi-provisioner:v0.2.0 + image: quay.io/k8scsi/csi-provisioner:v1.0.1 args: - "--provisioner=ch.ctrox.csi.s3-driver" - "--csi-address=$(ADDRESS)" diff --git a/pkg/s3/controllerserver.go b/pkg/s3/controllerserver.go index 21b2900..c6f442f 100644 --- a/pkg/s3/controllerserver.go +++ b/pkg/s3/controllerserver.go @@ -28,7 +28,7 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "github.com/container-storage-interface/spec/lib/go/csi/v0" + "github.com/container-storage-interface/spec/lib/go/csi" "github.com/kubernetes-csi/drivers/pkg/csi-common" ) @@ -97,9 +97,9 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol s3Vol.VolID = volumeID return &csi.CreateVolumeResponse{ Volume: &csi.Volume{ - Id: volumeID, + VolumeId: volumeID, CapacityBytes: capacityBytes, - Attributes: req.GetParameters(), + VolumeContext: req.GetParameters(), }, }, nil } @@ -153,12 +153,17 @@ func (cs *controllerServer) ValidateVolumeCapabilities(ctx context.Context, req return nil, status.Error(codes.NotFound, fmt.Sprintf("Volume with id %s does not exist", req.GetVolumeId())) } - for _, cap := range req.VolumeCapabilities { - if cap.GetAccessMode().GetMode() != csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER { - return &csi.ValidateVolumeCapabilitiesResponse{Supported: false, Message: ""}, nil - } - } - return &csi.ValidateVolumeCapabilitiesResponse{Supported: true, Message: ""}, nil + // TODO: checkout if this code is still needed? + //for _, cap := range req.VolumeCapabilities { + // if cap.GetAccessMode().GetMode() != csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER { + // return &csi.ValidateVolumeCapabilitiesResponse{Confirmed: false, Message: ""}, nil + // } + //} + return &csi.ValidateVolumeCapabilitiesResponse{Confirmed: &csi.ValidateVolumeCapabilitiesResponse_Confirmed{ + VolumeContext: req.GetVolumeContext(), + VolumeCapabilities: req.GetVolumeCapabilities(), + Parameters: req.GetParameters(), + }, Message: ""}, nil } func sanitizeVolumeID(volumeID string) string { diff --git a/pkg/s3/nodeserver.go b/pkg/s3/nodeserver.go index 27313e3..36fbd4d 100644 --- a/pkg/s3/nodeserver.go +++ b/pkg/s3/nodeserver.go @@ -22,7 +22,7 @@ import ( "github.com/golang/glog" "golang.org/x/net/context" - "github.com/container-storage-interface/spec/lib/go/csi/v0" + "github.com/container-storage-interface/spec/lib/go/csi" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "k8s.io/kubernetes/pkg/util/mount" @@ -63,13 +63,14 @@ func (ns *nodeServer) NodePublishVolume(ctx context.Context, req *csi.NodePublis } deviceID := "" - if req.GetPublishInfo() != nil { - deviceID = req.GetPublishInfo()[deviceID] + if req.GetPublishContext() != nil { + deviceID = req.GetPublishContext()[deviceID] } // TODO: Implement readOnly & mountFlags readOnly := req.GetReadonly() - attrib := req.GetVolumeAttributes() + // TODO: check if attrib is correct with context. + attrib := req.GetVolumeContext() mountFlags := req.GetVolumeCapability().GetMount().GetMountFlags() glog.V(4).Infof("target %v\ndevice %v\nreadonly %v\nvolumeId %v\nattributes %v\nmountflags %v\n", diff --git a/pkg/s3/s3-driver.go b/pkg/s3/s3-driver.go index ca505f3..522562e 100644 --- a/pkg/s3/s3-driver.go +++ b/pkg/s3/s3-driver.go @@ -17,7 +17,7 @@ limitations under the License. package s3 import ( - "github.com/container-storage-interface/spec/lib/go/csi/v0" + "github.com/container-storage-interface/spec/lib/go/csi" "github.com/golang/glog" "github.com/kubernetes-csi/drivers/pkg/csi-common"