Skip to content

Commit 4b1d767

Browse files
authored
Merge pull request #730 from saikat-royc/release-1.2
Cherrypick #682, #684, #693, #703, #718, #719, #720 to release-1.2 from master
2 parents 29b0a50 + c2b08a0 commit 4b1d767

File tree

191 files changed

+32438
-1071
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

191 files changed

+32438
-1071
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ See Github [Issues](https://github.com/kubernetes-sigs/gcp-compute-persistent-di
5757
| type | `pd-ssd` OR `pd-standard` | `pd-standard` | Type allows you to choose between standard Persistent Disks or Solid State Drive Persistent Disks |
5858
| replication-type | `none` OR `regional-pd` | `none` | Replication type allows you to choose between Zonal Persistent Disks or Regional Persistent Disks |
5959
| disk-encryption-kms-key | Fully qualified resource identifier for the key to use to encrypt new disks. | Empty string. | Encrypt disk using Customer Managed Encryption Key (CMEK). See [GKE Docs](https://cloud.google.com/kubernetes-engine/docs/how-to/using-cmek#create_a_cmek_protected_attached_disk) for details. |
60+
| labels | `key1=value1,key2=value2` | | Labels allow you to assign custom [GCE Disk labels](https://cloud.google.com/compute/docs/labeling-resources). |
6061

6162
### Topology
6263

cmd/gce-pd-csi-driver/main.go

+20-1
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ import (
2424

2525
"k8s.io/klog"
2626

27+
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
2728
gce "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/compute"
2829
metadataservice "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/metadata"
2930
driver "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-pd-csi-driver"
31+
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/metrics"
3032
mountmanager "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/mount-manager"
3133
)
3234

@@ -35,6 +37,9 @@ var (
3537
endpoint = flag.String("endpoint", "unix:/tmp/csi.sock", "CSI endpoint")
3638
runControllerService = flag.Bool("run-controller-service", true, "If set to false then the CSI driver does not activate its controller service (default: true)")
3739
runNodeService = flag.Bool("run-node-service", true, "If set to false then the CSI driver does not activate its node service (default: true)")
40+
httpEndpoint = flag.String("http-endpoint", "", "The TCP network address where the prometheus metrics endpoint will listen (example: `:8080`). The default is empty string, which means metrics endpoint is disabled.")
41+
metricsPath = flag.String("metrics-path", "/metrics", "The HTTP path where prometheus metrics will be exposed. Default is `/metrics`.")
42+
extraVolumeLabelsStr = flag.String("extra-labels", "", "Extra labels to attach to each PD created. It is a comma separated list of key value pairs like '<key1>=<value1>,<key2>=<value2>'. See https://cloud.google.com/compute/docs/labeling-resources for details")
3843
version string
3944
)
4045

@@ -67,6 +72,20 @@ func handle() {
6772
}
6873
klog.V(2).Infof("Driver vendor version %v", version)
6974

75+
if *runControllerService && *httpEndpoint != "" && metrics.IsGKEComponentVersionAvailable() {
76+
mm := metrics.NewMetricsManager()
77+
mm.InitializeHttpHandler(*httpEndpoint, *metricsPath)
78+
mm.EmitGKEComponentVersion()
79+
}
80+
81+
if len(*extraVolumeLabelsStr) > 0 && !*runControllerService {
82+
klog.Fatalf("Extra volume labels provided but not running controller")
83+
}
84+
extraVolumeLabels, err := common.ConvertLabelsStringToMap(*extraVolumeLabelsStr)
85+
if err != nil {
86+
klog.Fatalf("Bad extra volume labels: %v", err)
87+
}
88+
7089
gceDriver := driver.GetGCEDriver()
7190

7291
//Initialize GCE Driver
@@ -104,7 +123,7 @@ func handle() {
104123
nodeServer = driver.NewNodeServer(gceDriver, mounter, deviceUtils, meta, statter)
105124
}
106125

107-
err = gceDriver.SetupGCEDriver(driverName, version, identityServer, controllerServer, nodeServer)
126+
err = gceDriver.SetupGCEDriver(driverName, version, extraVolumeLabels, identityServer, controllerServer, nodeServer)
108127
if err != nil {
109128
klog.Fatalf("Failed to initialize GCE CSI Driver: %v", err)
110129
}

deploy/kubernetes/install-kustomize.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases |\
5050
grep browser_download |\
5151
grep $opsys |\
5252
cut -d '"' -f 4 |\
53-
grep /kustomize/v3.8.6 |\
53+
grep /kustomize/v3.9.4 |\
5454
sort | tail -n 1 |\
5555
xargs curl -s -O -L
5656

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# for gce-pd-driver
2+
- op: add
3+
path: /spec/template/spec/containers/4/args/2
4+
value: "--extra-labels=csi=gce-pd-driver # Used for testing, not to be merged to stable"
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Example StorageClass that adds labels to the GCP PD.
2+
# This requires v1.2.1 or higher.
3+
apiVersion: storage.k8s.io/v1
4+
kind: StorageClass
5+
metadata:
6+
name: csi-gce-pd
7+
provisioner: pd.csi.storage.gke.io
8+
parameters:
9+
labels: key1=value1,key2=value2
10+
volumeBindingMode: WaitForFirstConsumer

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ require (
2323
gopkg.in/warnings.v0 v0.1.2 // indirect
2424
k8s.io/apimachinery v0.18.0
2525
k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible
26+
k8s.io/component-base v0.18.0
2627
k8s.io/klog v1.0.0
2728
k8s.io/kubernetes v1.18.0
2829
k8s.io/test-infra v0.0.0-20200115230622-70a5174aa78d

0 commit comments

Comments
 (0)