Skip to content

Commit f558d59

Browse files
committed
Added compile time vendorVersion injection
1 parent 222489f commit f558d59

File tree

6 files changed

+28
-27
lines changed

6 files changed

+28
-27
lines changed

Dockerfile

+4-1
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
16+
1517
FROM golang:1.10.1-alpine3.7 as builder
1618
WORKDIR /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver
1719
ADD . .
18-
RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o bin/gce-pd-csi-driver ./cmd/
20+
ARG TAG
21+
RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-X main.vendorVersion='"${TAG:-latest}"' -extldflags "-static"' -o bin/gce-pd-csi-driver ./cmd/
1922

2023
# Start from Google Debian base
2124
FROM gcr.io/google-containers/debian-base-amd64:0.3

Makefile

+7-5
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,23 @@ STAGINGVERSION=latest
1717

1818
PRODIMAGE=gcr.io/google-containers/volume-csi/compute-persistent-disk-csi-driver
1919
PRODVERSION=v0.2.0.alpha
20+
2021
all: gce-pd-driver
2122

2223
gce-pd-driver:
2324
mkdir -p bin
24-
go build -o bin/gce-pd-csi-driver ./cmd/
25+
go build -ldflags "-X main.vendorVersion=${STAGINGVERSION}" -o bin/gce-pd-csi-driver ./cmd/
2526
go test -c sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/test/e2e -o bin/e2e.test
2627

27-
build-container: gce-pd-driver
28-
docker build -t $(STAGINGIMAGE):$(STAGINGVERSION) .
28+
build-container:
29+
# TODO CHANGE PRODVERSION TO STAGINGVERSION AFTER TESTING
30+
docker build --build-arg TAG=$(STAGINGVERSION) -t $(STAGINGIMAGE):$(STAGINGVERSION) .
2931

3032
push-container: build-container
3133
gcloud docker -- push $(STAGINGIMAGE):$(STAGINGVERSION)
3234

33-
prod-build-container: gce-pd-driver
34-
docker build -t $(PRODIMAGE):$(PRODVERSION)
35+
prod-build-container:
36+
docker build --build-arg TAG=$(PRODVERSION) -t $(PRODIMAGE):$(PRODVERSION)
3537

3638
prod-push-container: prod-build-container
3739
gcloud docker -- push $(PRODIMAGE):$(PRODVERSION)

cmd/main.go

+11-6
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,28 @@ func init() {
3030
}
3131

3232
var (
33-
endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint")
34-
driverName = flag.String("drivername", "com.google.csi.gcepd", "name of the driver")
35-
nodeID = flag.String("nodeid", "", "node id")
33+
endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint")
34+
driverName = flag.String("drivername", "com.google.csi.gcepd", "name of the driver")
35+
nodeID = flag.String("nodeid", "", "node id")
36+
vendorVersion string
3637
)
3738

3839
func main() {
3940
flag.Parse()
40-
4141
handle()
4242
os.Exit(0)
4343
}
4444

4545
func handle() {
46+
if vendorVersion == "" {
47+
glog.Fatalf("vendorVersion must be set at compile time")
48+
}
49+
glog.Infof("Driver vendor version %v", vendorVersion)
50+
4651
gceDriver := driver.GetGCEDriver()
4752

4853
//Initialize GCE Driver (Move setup to main?)
49-
cloudProvider, err := gce.CreateCloudProvider(gceDriver.GetVendorVersion())
54+
cloudProvider, err := gce.CreateCloudProvider(vendorVersion)
5055
if err != nil {
5156
glog.Fatalf("Failed to get cloud provider: %v", err)
5257
}
@@ -56,7 +61,7 @@ func handle() {
5661
glog.Fatalf("Failed to get mounter: %v", err)
5762
}
5863

59-
err = gceDriver.SetupGCEDriver(cloudProvider, mounter, *driverName, *nodeID)
64+
err = gceDriver.SetupGCEDriver(cloudProvider, mounter, *driverName, *nodeID, vendorVersion)
6065
if err != nil {
6166
glog.Fatalf("Failed to initialize GCE CSI Driver: %v", err)
6267
}

pkg/gce-cloud-provider/gce.go

-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ func createCloudServiceWithDefaultServiceAccount(vendorVersion string) (*compute
8181
if err != nil {
8282
return nil, err
8383
}
84-
// TODO(dyzz) parameterize version number
8584
service.UserAgent = fmt.Sprintf("GCE CSI Driver/%s (%s %s)", vendorVersion, runtime.GOOS, runtime.GOARCH)
8685
return service, nil
8786
}

pkg/gce-pd-csi-driver/gce-pd-driver.go

+3-12
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,11 @@ type GCEDriver struct {
3939
nscap []*csi.NodeServiceCapability
4040
}
4141

42-
const (
43-
vendorVersion = "v0.3.0-alpha"
44-
)
45-
4642
func GetGCEDriver() *GCEDriver {
47-
return &GCEDriver{
48-
vendorVersion: vendorVersion,
49-
}
50-
}
51-
52-
func (gceDriver *GCEDriver) GetVendorVersion() string {
53-
return gceDriver.vendorVersion
43+
return &GCEDriver{}
5444
}
5545

56-
func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter mountmanager.Mounter, name, nodeID string) error {
46+
func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter mountmanager.Mounter, name, nodeID, vendorVersion string) error {
5747
if name == "" {
5848
return fmt.Errorf("Driver name missing")
5949
}
@@ -63,6 +53,7 @@ func (gceDriver *GCEDriver) SetupGCEDriver(cloudProvider gce.GCECompute, mounter
6353

6454
gceDriver.name = name
6555
gceDriver.nodeID = nodeID
56+
gceDriver.vendorVersion = vendorVersion
6657

6758
// Adding Capabilities
6859
vcam := []csi.VolumeCapability_AccessMode_Mode{

test/e2e/gce_pd_e2e_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,11 @@ var _ = BeforeSuite(func() {
7878
// TODO(dyzz): better defaults
7979
driverName := "testdriver"
8080
nodeID = "gce-pd-csi-e2e"
81+
vendorVersion := "testVendor"
8182

8283
// TODO(dyzz): Start a driver
8384
gceDriver := driver.GetGCEDriver()
84-
gceCloud, err = gce.CreateCloudProvider(gceDriver.GetVendorVersion())
85+
gceCloud, err = gce.CreateCloudProvider(vendorVersion)
8586

8687
Expect(err).To(BeNil(), "Failed to get cloud provider: %v", err)
8788

@@ -91,7 +92,7 @@ var _ = BeforeSuite(func() {
9192
Expect(err).To(BeNil(), "Failed to get mounter %v", err)
9293

9394
//Initialize GCE Driver
94-
err = gceDriver.SetupGCEDriver(gceCloud, mounter, driverName, nodeID)
95+
err = gceDriver.SetupGCEDriver(gceCloud, mounter, driverName, nodeID, vendorVersion)
9596
Expect(err).To(BeNil(), "Failed to initialize GCE CSI Driver: %v", err)
9697

9798
go func() {

0 commit comments

Comments
 (0)