Update driver version during build time

update driver version and add git commit
to the image. This will help us to identify
what latest git commit image contains.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
Madhu Rajanna 2019-07-12 15:48:00 +05:30
parent 0d566ee30c
commit 3f8bd3b2a6
6 changed files with 24 additions and 11 deletions

View File

@ -21,6 +21,16 @@ CSI_IMAGE_VERSION=$(if $(ENV_CSI_IMAGE_VERSION),$(ENV_CSI_IMAGE_VERSION),canary)
$(info cephcsi image settings: $(CSI_IMAGE_NAME) version $(CSI_IMAGE_VERSION)) $(info cephcsi image settings: $(CSI_IMAGE_NAME) version $(CSI_IMAGE_VERSION))
GIT_COMMIT=$(shell git rev-list -1 HEAD)
GO_PROJECT=github.com/ceph/ceph-csi
# go build flags
LDFLAGS ?=
LDFLAGS += -X $(GO_PROJECT)/pkg/util.GitCommit=$(GIT_COMMIT)
# CSI_IMAGE_VERSION will be considered as the driver version
LDFLAGS += -X $(GO_PROJECT)/pkg/util.DriverVersion=$(CSI_IMAGE_VERSION)
all: cephcsi all: cephcsi
test: go-test static-check test: go-test static-check
@ -38,7 +48,7 @@ func-test:
.PHONY: cephcsi .PHONY: cephcsi
cephcsi: cephcsi:
if [ ! -d ./vendor ]; then dep ensure -vendor-only; fi if [ ! -d ./vendor ]; then dep ensure -vendor-only; fi
CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o _output/cephcsi ./cmd/ CGO_ENABLED=0 GOOS=linux go build -a -ldflags '$(LDFLAGS) -extldflags "-static"' -o _output/cephcsi ./cmd/
image-cephcsi: cephcsi image-cephcsi: cephcsi
cp _output/cephcsi deploy/cephcsi/image/cephcsi cp _output/cephcsi deploy/cephcsi/image/cephcsi

View File

@ -93,6 +93,7 @@ func getDriverName() string {
} }
func main() { func main() {
klog.Infof("Driver version: %s and Git version: %s", util.DriverVersion, util.GitCommit)
var cp util.CachePersister var cp util.CachePersister
driverType := getType() driverType := getType()

View File

@ -26,8 +26,6 @@ import (
) )
const ( const (
// version of ceph driver
version = "1.0.0"
// volIDVersion is the version number of volume ID encoding scheme // volIDVersion is the version number of volume ID encoding scheme
volIDVersion uint16 = 1 volIDVersion uint16 = 1
@ -94,7 +92,6 @@ func NewNodeServer(d *csicommon.CSIDriver) *NodeServer {
// Run start a non-blocking grpc controller,node and identityserver for // Run start a non-blocking grpc controller,node and identityserver for
// ceph CSI driver which can serve multiple parallel requests // ceph CSI driver which can serve multiple parallel requests
func (fs *Driver) Run(driverName, nodeID, endpoint, volumeMounter, mountCacheDir, instanceID string, cachePersister util.CachePersister) { func (fs *Driver) Run(driverName, nodeID, endpoint, volumeMounter, mountCacheDir, instanceID string, cachePersister util.CachePersister) {
klog.Infof("Driver: %v version: %v", driverName, version)
// Configuration // Configuration
@ -144,7 +141,7 @@ func (fs *Driver) Run(driverName, nodeID, endpoint, volumeMounter, mountCacheDir
} }
// Initialize default library driver // Initialize default library driver
fs.cd = csicommon.NewCSIDriver(driverName, version, nodeID) fs.cd = csicommon.NewCSIDriver(driverName, util.DriverVersion, nodeID)
if fs.cd == nil { if fs.cd == nil {
klog.Fatalln("failed to initialize CSI driver") klog.Fatalln("failed to initialize CSI driver")
} }

View File

@ -39,7 +39,7 @@ func initVolumeMountCache(driverName, mountCacheDir string) {
volumeMountCache.nodeCacheStore.BasePath = mountCacheDir volumeMountCache.nodeCacheStore.BasePath = mountCacheDir
volumeMountCache.nodeCacheStore.CacheDir = driverName volumeMountCache.nodeCacheStore.CacheDir = driverName
klog.Infof("mount-cache: name: %s, version: %s, mountCacheDir: %s", driverName, version, mountCacheDir) klog.Infof("mount-cache: name: %s, version: %s, mountCacheDir: %s", driverName, util.DriverVersion, mountCacheDir)
} }
func remountCachedVolumes() error { func remountCachedVolumes() error {
@ -228,7 +228,7 @@ func (mc *volumeMountCacheMap) nodeStageVolume(volID, stagingTargetPath, mounter
klog.Warningf("mount-cache: node stage volume ignore last cache entry for volume %s", volID) klog.Warningf("mount-cache: node stage volume ignore last cache entry for volume %s", volID)
} }
me = volumeMountCacheEntry{DriverVersion: version} me = volumeMountCacheEntry{DriverVersion: util.DriverVersion}
me.VolumeID = volID me.VolumeID = volID
me.Secrets = encodeCredentials(secrets) me.Secrets = encodeCredentials(secrets)

View File

@ -46,7 +46,6 @@ type Driver struct {
} }
var ( var (
version = "1.0.0"
// PluginFolder defines the location of ceph plugin // PluginFolder defines the location of ceph plugin
PluginFolder = "/var/lib/kubelet/plugins/" PluginFolder = "/var/lib/kubelet/plugins/"
@ -102,8 +101,6 @@ func NewNodeServer(d *csicommon.CSIDriver, containerized bool) (*NodeServer, err
func (r *Driver) Run(driverName, nodeID, endpoint, instanceID string, containerized bool, cachePersister util.CachePersister) { func (r *Driver) Run(driverName, nodeID, endpoint, instanceID string, containerized bool, cachePersister util.CachePersister) {
var err error var err error
klog.Infof("Driver: %v version: %v", driverName, version)
// Create ceph.conf for use with CLI commands // Create ceph.conf for use with CLI commands
if err = util.WriteCephConfig(); err != nil { if err = util.WriteCephConfig(); err != nil {
klog.Fatalf("failed to write ceph configuration file (%v)", err) klog.Fatalf("failed to write ceph configuration file (%v)", err)
@ -123,7 +120,7 @@ func (r *Driver) Run(driverName, nodeID, endpoint, instanceID string, containeri
snapJournal.SetCSIDirectorySuffix(CSIInstanceID) snapJournal.SetCSIDirectorySuffix(CSIInstanceID)
// Initialize default library driver // Initialize default library driver
r.cd = csicommon.NewCSIDriver(driverName, version, nodeID) r.cd = csicommon.NewCSIDriver(driverName, util.DriverVersion, nodeID)
if r.cd == nil { if r.cd == nil {
klog.Fatalln("Failed to initialize CSI Driver.") klog.Fatalln("Failed to initialize CSI Driver.")
} }

View File

@ -39,6 +39,14 @@ func RoundUpToMiB(size int64) int64 {
return roundUpSize(requestBytes, MiB) return roundUpSize(requestBytes, MiB)
} }
// variables which will be set during the build time
var (
// GitCommit tell the latest git commit image is built from
GitCommit string
// DriverVersion which will be driver version
DriverVersion string
)
func roundUpSize(volumeSizeBytes, allocationUnitBytes int64) int64 { func roundUpSize(volumeSizeBytes, allocationUnitBytes int64) int64 {
roundedUp := volumeSizeBytes / allocationUnitBytes roundedUp := volumeSizeBytes / allocationUnitBytes
if volumeSizeBytes%allocationUnitBytes > 0 { if volumeSizeBytes%allocationUnitBytes > 0 {