Browse code

Fix password issue in cascade cloud provider

Change-Id: I0872e8f6d92b410fd8d61c8b716651b292687de7
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4725
Reviewed-by: Sharath George
Tested-by: Sharath George

Vinay Kulkarni authored on 2018/01/31 14:31:20
Showing 2 changed files
... ...
@@ -1,6 +1,6 @@
1 1
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1alpha1.json cascade-kubernetes/api/swagger-spec/apps_v1alpha1.json
2
-+++ cascade-kubernetes/api/swagger-spec/apps_v1alpha1.json	2018-01-25 06:19:37.000000000 +0000
2
+--- kubernetes-1.8.1/api/swagger-spec/apps_v1alpha1.json	2018-01-31 02:55:29.836980990 +0000
3 3
 @@ -1459,6 +1459,10 @@
4 4
       "photonPersistentDisk": {
5 5
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
... ...
@@ -37,8 +37,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1alpha1.json
37 37
       }
38 38
      }
39 39
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta1.json cascade-kubernetes/api/swagger-spec/apps_v1beta1.json
40
-+++ cascade-kubernetes/api/swagger-spec/apps_v1beta1.json	2018-01-25 06:19:37.000000000 +0000
40
+--- kubernetes-1.8.1/api/swagger-spec/apps_v1beta1.json	2018-01-31 02:55:29.836980990 +0000
41 41
 @@ -4400,6 +4400,10 @@
42 42
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
43 43
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
... ...
@@ -75,8 +75,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta1.json c
75 75
       }
76 76
      }
77 77
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta2.json cascade-kubernetes/api/swagger-spec/apps_v1beta2.json
78
-+++ cascade-kubernetes/api/swagger-spec/apps_v1beta2.json	2018-01-25 06:19:37.000000000 +0000
78
+--- kubernetes-1.8.1/api/swagger-spec/apps_v1beta2.json	2018-01-31 02:55:29.836980990 +0000
79 79
 @@ -6730,6 +6730,10 @@
80 80
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
81 81
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
... ...
@@ -113,8 +113,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta2.json c
113 113
       }
114 114
      }
115 115
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1beta1.json cascade-kubernetes/api/swagger-spec/batch_v1beta1.json
116
-+++ cascade-kubernetes/api/swagger-spec/batch_v1beta1.json	2018-01-25 06:19:37.000000000 +0000
116
+--- kubernetes-1.8.1/api/swagger-spec/batch_v1beta1.json	2018-01-31 02:55:29.836980990 +0000
117 117
 @@ -1850,6 +1850,10 @@
118 118
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
119 119
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
... ...
@@ -151,8 +151,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1beta1.json
151 151
       }
152 152
      }
153 153
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1.json cascade-kubernetes/api/swagger-spec/batch_v1.json
154
-+++ cascade-kubernetes/api/swagger-spec/batch_v1.json	2018-01-25 06:19:37.000000000 +0000
154
+--- kubernetes-1.8.1/api/swagger-spec/batch_v1.json	2018-01-31 02:55:29.836980990 +0000
155 155
 @@ -1795,6 +1795,10 @@
156 156
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
157 157
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
... ...
@@ -189,8 +189,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1.json casca
189 189
       }
190 190
      }
191 191
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v2alpha1.json cascade-kubernetes/api/swagger-spec/batch_v2alpha1.json
192
-+++ cascade-kubernetes/api/swagger-spec/batch_v2alpha1.json	2018-01-25 06:19:37.000000000 +0000
192
+--- kubernetes-1.8.1/api/swagger-spec/batch_v2alpha1.json	2018-01-31 02:55:29.836980990 +0000
193 193
 @@ -1865,6 +1865,10 @@
194 194
       "storageos": {
195 195
        "$ref": "v1.StorageOSVolumeSource",
... ...
@@ -227,8 +227,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v2alpha1.json
227 227
      "id": "v1.Container",
228 228
      "description": "A single application container that you want to run within a pod.",
229 229
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/extensions_v1beta1.json cascade-kubernetes/api/swagger-spec/extensions_v1beta1.json
230
-+++ cascade-kubernetes/api/swagger-spec/extensions_v1beta1.json	2018-01-25 06:19:37.000000000 +0000
230
+--- kubernetes-1.8.1/api/swagger-spec/extensions_v1beta1.json	2018-01-31 02:55:29.840980990 +0000
231 231
 @@ -7363,6 +7363,10 @@
232 232
       "storageos": {
233 233
        "$ref": "v1.StorageOSVolumeSource",
... ...
@@ -265,8 +265,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/extensions_v1beta1.
265 265
       }
266 266
      }
267 267
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/settings.k8s.io_v1alpha1.json cascade-kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json
268
-+++ cascade-kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json	2018-01-25 06:19:37.000000000 +0000
268
+--- kubernetes-1.8.1/api/swagger-spec/settings.k8s.io_v1alpha1.json	2018-01-31 02:55:29.840980990 +0000
269 269
 @@ -1661,6 +1661,10 @@
270 270
       "storageos": {
271 271
        "$ref": "v1.StorageOSVolumeSource",
... ...
@@ -303,8 +303,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/settings.k8s.io_v1a
303 303
       }
304 304
      }
305 305
 diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/v1.json cascade-kubernetes/api/swagger-spec/v1.json
306
-+++ cascade-kubernetes/api/swagger-spec/v1.json	2018-01-25 06:19:37.000000000 +0000
306
+--- kubernetes-1.8.1/api/swagger-spec/v1.json	2018-01-31 02:55:29.844980990 +0000
307 307
 @@ -20271,6 +20271,10 @@
308 308
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
309 309
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
... ...
@@ -352,8 +352,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/v1.json cascade-kub
352 352
      }
353 353
     },
354 354
 diff -uNr --no-dereference kubernetes-1.8.1/cmd/kube-controller-manager/app/BUILD cascade-kubernetes/cmd/kube-controller-manager/app/BUILD
355
-+++ cascade-kubernetes/cmd/kube-controller-manager/app/BUILD	2018-01-25 06:19:37.000000000 +0000
355
+--- kubernetes-1.8.1/cmd/kube-controller-manager/app/BUILD	2018-01-31 02:55:30.164981002 +0000
356 356
 @@ -42,6 +42,7 @@
357 357
          "//pkg/cloudprovider/providers:go_default_library",
358 358
          "//pkg/cloudprovider/providers/aws:go_default_library",
... ...
@@ -371,8 +371,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/cmd/kube-controller-manager/app/BUIL
371 371
          "//pkg/volume/fc:go_default_library",
372 372
          "//pkg/volume/flexvolume:go_default_library",
373 373
 diff -uNr --no-dereference kubernetes-1.8.1/cmd/kube-controller-manager/app/plugins.go cascade-kubernetes/cmd/kube-controller-manager/app/plugins.go
374
-+++ cascade-kubernetes/cmd/kube-controller-manager/app/plugins.go	2018-01-25 06:19:37.000000000 +0000
374
+--- kubernetes-1.8.1/cmd/kube-controller-manager/app/plugins.go	2018-01-31 02:55:30.164981002 +0000
375 375
 @@ -32,6 +32,7 @@
376 376
  	"k8s.io/kubernetes/pkg/cloudprovider"
377 377
  	"k8s.io/kubernetes/pkg/cloudprovider/providers/aws"
... ...
@@ -415,8 +415,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/cmd/kube-controller-manager/app/plug
415 415
  	}
416 416
  
417 417
 diff -uNr --no-dereference kubernetes-1.8.1/cmd/kubelet/app/BUILD cascade-kubernetes/cmd/kubelet/app/BUILD
418
-+++ cascade-kubernetes/cmd/kubelet/app/BUILD	2018-01-25 06:19:37.000000000 +0000
418
+--- kubernetes-1.8.1/cmd/kubelet/app/BUILD	2018-01-31 02:55:30.160981001 +0000
419 419
 @@ -73,6 +73,7 @@
420 420
          "//pkg/volume/aws_ebs:go_default_library",
421 421
          "//pkg/volume/azure_dd:go_default_library",
... ...
@@ -426,8 +426,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/cmd/kubelet/app/BUILD cascade-kubern
426 426
          "//pkg/volume/cinder:go_default_library",
427 427
          "//pkg/volume/configmap:go_default_library",
428 428
 diff -uNr --no-dereference kubernetes-1.8.1/cmd/kubelet/app/plugins.go cascade-kubernetes/cmd/kubelet/app/plugins.go
429
-+++ cascade-kubernetes/cmd/kubelet/app/plugins.go	2018-01-25 06:19:37.000000000 +0000
429
+--- kubernetes-1.8.1/cmd/kubelet/app/plugins.go	2018-01-31 02:55:30.160981001 +0000
430 430
 @@ -32,6 +32,7 @@
431 431
  	"k8s.io/kubernetes/pkg/volume/aws_ebs"
432 432
  	"k8s.io/kubernetes/pkg/volume/azure_dd"
... ...
@@ -445,8 +445,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/cmd/kubelet/app/plugins.go cascade-k
445 445
  }
446 446
  
447 447
 diff -uNr --no-dereference kubernetes-1.8.1/federation/apis/openapi-spec/swagger.json cascade-kubernetes/federation/apis/openapi-spec/swagger.json
448
-+++ cascade-kubernetes/federation/apis/openapi-spec/swagger.json	2018-01-25 06:19:37.000000000 +0000
448
+--- kubernetes-1.8.1/federation/apis/openapi-spec/swagger.json	2018-01-31 02:55:29.044980962 +0000
449 449
 @@ -10540,6 +10540,22 @@
450 450
       }
451 451
      }
... ...
@@ -482,8 +482,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/federation/apis/openapi-spec/swagger
482 482
      }
483 483
     },
484 484
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/types.go cascade-kubernetes/pkg/api/types.go
485
-+++ cascade-kubernetes/pkg/api/types.go	2018-01-25 06:19:37.000000000 +0000
485
+--- kubernetes-1.8.1/pkg/api/types.go	2018-01-31 02:55:29.552980980 +0000
486 486
 @@ -316,6 +316,8 @@
487 487
  	// StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
488 488
  	// +optional
... ...
@@ -520,8 +520,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/types.go cascade-kubernetes/
520 520
  //
521 521
  // The contents of the target ConfigMap's Data field will be presented in a
522 522
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/validation/validation.go cascade-kubernetes/pkg/api/validation/validation.go
523
-+++ cascade-kubernetes/pkg/api/validation/validation.go	2018-01-25 06:19:37.000000000 +0000
523
+--- kubernetes-1.8.1/pkg/api/validation/validation.go	2018-01-31 02:55:29.560980980 +0000
524 524
 @@ -612,6 +612,14 @@
525 525
  			allErrs = append(allErrs, validateScaleIOVolumeSource(source.ScaleIO, fldPath.Child("scaleIO"))...)
526 526
  		}
... ...
@@ -568,8 +568,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/validation/validation.go cas
568 568
  	if numVolumes == 0 {
569 569
  		allErrs = append(allErrs, field.Required(specPath, "must specify a volume type"))
570 570
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/apis/extensions/types.go cascade-kubernetes/pkg/apis/extensions/types.go
571
-+++ cascade-kubernetes/pkg/apis/extensions/types.go	2018-01-25 06:19:37.000000000 +0000
571
+--- kubernetes-1.8.1/pkg/apis/extensions/types.go	2018-01-31 02:55:29.576980981 +0000
572 572
 @@ -1002,6 +1002,7 @@
573 573
  	Projected             FSType = "projected"
574 574
  	PortworxVolume        FSType = "portworxVolume"
... ...
@@ -579,8 +579,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/apis/extensions/types.go cascade
579 579
  )
580 580
  
581 581
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/BUILD cascade-kubernetes/pkg/cloudprovider/providers/BUILD
582
-+++ cascade-kubernetes/pkg/cloudprovider/providers/BUILD	2018-01-25 06:19:37.000000000 +0000
582
+--- kubernetes-1.8.1/pkg/cloudprovider/providers/BUILD	2018-01-31 02:55:29.700980985 +0000
583 583
 @@ -11,6 +11,7 @@
584 584
      deps = [
585 585
          "//pkg/cloudprovider/providers/aws:go_default_library",
... ...
@@ -599,7 +599,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/BUILD ca
599 599
          "//pkg/cloudprovider/providers/gce:all-srcs",
600 600
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/apitypes.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/apitypes.go
601 601
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/apitypes.go	1970-01-01 00:00:00.000000000 +0000
602
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/apitypes.go	2018-01-25 06:19:37.000000000 +0000
603 602
 @@ -0,0 +1,224 @@
604 603
 +package cascade
605 604
 +
... ...
@@ -828,8 +828,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
828 828
 \ No newline at end of file
829 829
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/auth.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/auth.go
830 830
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/auth.go	1970-01-01 00:00:00.000000000 +0000
831
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/auth.go	2018-01-25 06:19:37.000000000 +0000
832
-@@ -0,0 +1,129 @@
831
+@@ -0,0 +1,145 @@
833 832
 +package cascade
834 833
 +
835 834
 +import (
... ...
@@ -841,6 +841,11 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
841 841
 +
842 842
 +const (
843 843
 +	tScope = "openid offline_access rs_admin_server at_groups rs_vmdir"
844
++
845
++	afdCli                     = "/opt/vmware/bin/vmafd-cli"
846
++	afdCliMachineAccountCmd    = "get-machine-account-info"
847
++	afdCliPasswordPrefix       = "Password: "
848
++	afdCliSeparator            = "\n"
844 849
 +)
845 850
 +
846 851
 +// AuthConfig contains configuration information for the authentication client.
... ...
@@ -867,20 +872,19 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
867 867
 +}
868 868
 +
869 869
 +func (c *AuthClient) GetTokensByMachineAccount() (*TokenOptions, error) {
870
-+	// Execute a lwregshell command which gets the machine account password, trims it and un-escapes it.
871
-+	cmd := "/opt/likewise/bin/lwregshell list_values '[\\Services\\vmdir]' | grep dcAccountPassword | " +
872
-+		"awk '{print $NF}' | rev | cut -c2- | rev | cut -c2-"
873
-+	output, err := exec.Command("bash", "-c", cmd).Output()
870
++	// Use the VMAFD CLI to get the machine account password
871
++	cmd := exec.Command(afdCli, afdCliMachineAccountCmd)
872
++	output, err := cmd.Output()
874 873
 +	if err != nil {
875 874
 +		glog.Errorf("Cascade Cloud Provider: Failed to get machine account credentials. Cannot create Client.")
876 875
 +		return nil, fmt.Errorf("Failed to get machine account credentials, err: %v", err)
877 876
 +	}
878
-+	// Unescape the escaped machine account password. This could not be done as a part of the shell command itself
879
-+	// because characters like ` are not escaped correctly by Lightwave causing failures while unescaping using shell
880
-+	// commands like echo or printf. So this is done by the unescape function below which is written based on
881
-+	// recommendation from the Lightwave team.
882
-+	escapedPassword := strings.TrimSpace(string(output))
883
-+	password := unescape(escapedPassword)
877
++
878
++	password, err := parseMachineAccountInfo(output)
879
++	if err != nil {
880
++		glog.Errorf("Cascade Cloud Provider: Failed to parse machine account credentials. Cannot create Client.")
881
++		return nil, fmt.Errorf("Failed to parse machine account credentials, err: %v", err)
882
++	}
884 883
 +
885 884
 +	return c.GetTokensByCredentials(c.cfg.machineAccountName, password)
886 885
 +}
... ...
@@ -942,27 +946,39 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
942 942
 +	}
943 943
 +}
944 944
 +
945
-+// unescape function unescapes an escaped string. It does so by removing a backslash character and keeping the character
946
-+// following the backslash character.
947
-+func unescape(input string) string {
948
-+	var output string
949
-+	escaped := false
950
-+	for _, character := range input {
951
-+		if character == '\\' && !escaped {
952
-+			escaped = true
953
-+		} else {
954
-+			if escaped {
955
-+				escaped = false
956
-+			}
957
-+			output = output + string(character)
958
-+		}
945
++// parseMachineAccountInfo parses the machine account password from the machine-account-info output which looks like
946
++// this:
947
++//MachineAccount: photon-8rwdscr1.lw-testdom.com
948
++//Password: FT`])}]d/3\EPwRpz9k1
949
++func parseMachineAccountInfo(output []byte) (string, error) {
950
++	if len(output) <= 0 {
951
++		return "", fmt.Errorf("account info is not specified")
959 952
 +	}
960
-+	return output
953
++
954
++	strOut := string(output)
955
++	strOutLen := len(strOut)
956
++
957
++	pwdStart := strings.Index(strOut, afdCliPasswordPrefix)
958
++	if pwdStart < 0 {
959
++		return "", fmt.Errorf("account info is not in expected format")
960
++	}
961
++	pwdStart = pwdStart + len(afdCliPasswordPrefix)
962
++	if pwdStart >= strOutLen {
963
++		return "", fmt.Errorf("account info is not in expected format")
964
++	}
965
++	pwdEnd := strings.LastIndex(strOut, afdCliSeparator)
966
++	if pwdEnd < 0 || pwdEnd <= pwdStart || pwdEnd >= strOutLen {
967
++		return "", fmt.Errorf("account info is not in expected format")
968
++	}
969
++
970
++	pwd := strOut[pwdStart:pwdEnd]
971
++
972
++	return pwd, nil
961 973
 +}
962 974
 \ No newline at end of file
963 975
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/BUILD cascade-kubernetes/pkg/cloudprovider/providers/cascade/BUILD
964 976
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/BUILD	1970-01-01 00:00:00.000000000 +0000
965
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/BUILD	2018-01-25 06:19:37.000000000 +0000
966 977
 @@ -0,0 +1,44 @@
967 978
 +package(default_visibility = ["//visibility:public"])
968 979
 +
... ...
@@ -1010,7 +1026,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1010 1010
 +)
1011 1011
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_disks.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_disks.go
1012 1012
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_disks.go	1970-01-01 00:00:00.000000000 +0000
1013
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_disks.go	2018-01-25 06:19:37.000000000 +0000
1014 1013
 @@ -0,0 +1,197 @@
1015 1014
 +package cascade
1016 1015
 +
... ...
@@ -1212,7 +1228,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1212 1212
 \ No newline at end of file
1213 1213
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade.go
1214 1214
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade.go	1970-01-01 00:00:00.000000000 +0000
1215
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade.go	2018-01-25 06:19:37.000000000 +0000
1216 1215
 @@ -0,0 +1,216 @@
1217 1216
 +// The use of Cascade cloud provider requires the kubelet, kube-apiserver, and kube-controller-manager to be started
1218 1217
 +// with config flag: '--cloud-provider=cascade --cloud-config=[path_to_config_file]'.
... ...
@@ -1433,7 +1449,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1433 1433
 \ No newline at end of file
1434 1434
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_instances.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_instances.go
1435 1435
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_instances.go	1970-01-01 00:00:00.000000000 +0000
1436
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_instances.go	2018-01-25 06:19:37.000000000 +0000
1437 1436
 @@ -0,0 +1,90 @@
1438 1437
 +package cascade
1439 1438
 +
... ...
@@ -1527,7 +1543,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1527 1527
 +}
1528 1528
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go
1529 1529
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go	1970-01-01 00:00:00.000000000 +0000
1530
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go	2018-01-25 06:19:37.000000000 +0000
1531 1530
 @@ -0,0 +1,283 @@
1532 1531
 +package cascade
1533 1532
 +
... ...
@@ -1815,7 +1831,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1815 1815
 \ No newline at end of file
1816 1816
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/client.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/client.go
1817 1817
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/client.go	1970-01-01 00:00:00.000000000 +0000
1818
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/client.go	2018-01-25 06:19:37.000000000 +0000
1819 1818
 @@ -0,0 +1,382 @@
1820 1819
 +package cascade
1821 1820
 +
... ...
@@ -2202,7 +2218,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2202 2202
 \ No newline at end of file
2203 2203
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/oidcclient.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/oidcclient.go
2204 2204
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/oidcclient.go	1970-01-01 00:00:00.000000000 +0000
2205
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/oidcclient.go	2018-01-25 06:19:37.000000000 +0000
2206 2205
 @@ -0,0 +1,297 @@
2207 2206
 +package cascade
2208 2207
 +
... ...
@@ -2503,14 +2519,14 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2503 2503
 +}
2504 2504
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/OWNERS cascade-kubernetes/pkg/cloudprovider/providers/cascade/OWNERS
2505 2505
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/OWNERS	1970-01-01 00:00:00.000000000 +0000
2506
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/OWNERS	2018-01-25 06:19:37.000000000 +0000
2507 2506
 @@ -0,0 +1,3 @@
2508 2507
 +maintainers:
2509 2508
 +- ashokc
2510 2509
 +- ysheng
2511 2510
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/restclient.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/restclient.go
2512 2511
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/restclient.go	1970-01-01 00:00:00.000000000 +0000
2513
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/restclient.go	2018-01-25 06:19:37.000000000 +0000
2514 2512
 @@ -0,0 +1,262 @@
2515 2513
 +package cascade
2516 2514
 +
... ...
@@ -2776,7 +2792,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2776 2776
 +}
2777 2777
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/utils.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/utils.go
2778 2778
 --- kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/utils.go	1970-01-01 00:00:00.000000000 +0000
2779
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/utils.go	2018-01-25 06:19:37.000000000 +0000
2780 2779
 @@ -0,0 +1,25 @@
2781 2780
 +package cascade
2782 2781
 +
... ...
@@ -2805,8 +2821,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2805 2805
 +}
2806 2806
 \ No newline at end of file
2807 2807
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/providers.go cascade-kubernetes/pkg/cloudprovider/providers/providers.go
2808
-+++ cascade-kubernetes/pkg/cloudprovider/providers/providers.go	2018-01-25 06:19:37.000000000 +0000
2808
+--- kubernetes-1.8.1/pkg/cloudprovider/providers/providers.go	2018-01-31 02:55:29.700980985 +0000
2809 2809
 @@ -20,6 +20,7 @@
2810 2810
  	// Cloud providers
2811 2811
  	_ "k8s.io/kubernetes/pkg/cloudprovider/providers/aws"
... ...
@@ -2816,8 +2832,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/provider
2816 2816
  	_ "k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
2817 2817
  	_ "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack"
2818 2818
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/printers/internalversion/describe.go cascade-kubernetes/pkg/printers/internalversion/describe.go
2819
-+++ cascade-kubernetes/pkg/printers/internalversion/describe.go	2018-01-25 06:19:37.000000000 +0000
2819
+--- kubernetes-1.8.1/pkg/printers/internalversion/describe.go	2018-01-31 02:55:29.752980987 +0000
2820 2820
 @@ -764,6 +764,8 @@
2821 2821
  			printFlexVolumeSource(volume.VolumeSource.FlexVolume, w)
2822 2822
  		case volume.VolumeSource.Flocker != nil:
... ...
@@ -2851,8 +2867,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/printers/internalversion/describ
2851 2851
  			w.Write(LEVEL_1, "<unknown>\n")
2852 2852
  		}
2853 2853
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/security/podsecuritypolicy/util/util.go cascade-kubernetes/pkg/security/podsecuritypolicy/util/util.go
2854
-+++ cascade-kubernetes/pkg/security/podsecuritypolicy/util/util.go	2018-01-25 06:19:37.000000000 +0000
2854
+--- kubernetes-1.8.1/pkg/security/podsecuritypolicy/util/util.go	2018-01-31 02:55:29.792980988 +0000
2855 2855
 @@ -67,6 +67,7 @@
2856 2856
  		string(extensions.Projected),
2857 2857
  		string(extensions.PortworxVolume),
... ...
@@ -2872,7 +2888,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/security/podsecuritypolicy/util/
2872 2872
  	return "", fmt.Errorf("unknown volume type for volume: %#v", v)
2873 2873
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go cascade-kubernetes/pkg/volume/cascade_disk/attacher.go
2874 2874
 --- kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go	1970-01-01 00:00:00.000000000 +0000
2875
-+++ cascade-kubernetes/pkg/volume/cascade_disk/attacher.go	2018-01-25 06:19:37.000000000 +0000
2876 2875
 @@ -0,0 +1,278 @@
2877 2876
 +package cascade_disk
2878 2877
 +
... ...
@@ -3154,7 +3170,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
3154 3154
 +}
3155 3155
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/BUILD cascade-kubernetes/pkg/volume/cascade_disk/BUILD
3156 3156
 --- kubernetes-1.8.1/pkg/volume/cascade_disk/BUILD	1970-01-01 00:00:00.000000000 +0000
3157
-+++ cascade-kubernetes/pkg/volume/cascade_disk/BUILD	2018-01-25 06:19:37.000000000 +0000
3158 3157
 @@ -0,0 +1,43 @@
3159 3158
 +package(default_visibility = ["//visibility:public"])
3160 3159
 +
... ...
@@ -3201,7 +3217,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/BUILD cascad
3201 3201
 +)
3202 3202
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_disk.go cascade-kubernetes/pkg/volume/cascade_disk/cascade_disk.go
3203 3203
 --- kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_disk.go	1970-01-01 00:00:00.000000000 +0000
3204
-+++ cascade-kubernetes/pkg/volume/cascade_disk/cascade_disk.go	2018-01-25 06:19:37.000000000 +0000
3205 3204
 @@ -0,0 +1,391 @@
3206 3205
 +package cascade_disk
3207 3206
 +
... ...
@@ -3597,7 +3613,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_disk
3597 3597
 \ No newline at end of file
3598 3598
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_util.go cascade-kubernetes/pkg/volume/cascade_disk/cascade_util.go
3599 3599
 --- kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_util.go	1970-01-01 00:00:00.000000000 +0000
3600
-+++ cascade-kubernetes/pkg/volume/cascade_disk/cascade_util.go	2018-01-25 06:19:37.000000000 +0000
3601 3600
 @@ -0,0 +1,107 @@
3602 3601
 +package cascade_disk
3603 3602
 +
... ...
@@ -3708,13 +3724,13 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_util
3708 3708
 +}
3709 3709
 diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/OWNERS cascade-kubernetes/pkg/volume/cascade_disk/OWNERS
3710 3710
 --- kubernetes-1.8.1/pkg/volume/cascade_disk/OWNERS	1970-01-01 00:00:00.000000000 +0000
3711
-+++ cascade-kubernetes/pkg/volume/cascade_disk/OWNERS	2018-01-25 06:19:37.000000000 +0000
3712 3711
 @@ -0,0 +1,2 @@
3713 3712
 +maintainers:
3714 3713
 +- ashokc
3715 3714
 diff -uNr --no-dereference kubernetes-1.8.1/plugin/pkg/admission/persistentvolume/label/admission.go cascade-kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go
3716
-+++ cascade-kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go	2018-01-25 06:19:37.000000000 +0000
3715
+--- kubernetes-1.8.1/plugin/pkg/admission/persistentvolume/label/admission.go	2018-01-31 02:55:29.812980989 +0000
3717 3716
 @@ -31,6 +31,7 @@
3718 3717
  	kubeapiserveradmission "k8s.io/kubernetes/pkg/kubeapiserver/admission"
3719 3718
  	kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
... ...
@@ -3796,8 +3812,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/plugin/pkg/admission/persistentvolum
3796 3796
 +}
3797 3797
 \ No newline at end of file
3798 3798
 diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/generated.pb.go cascade-kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go
3799
-+++ cascade-kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go	2018-01-25 06:19:37.000000000 +0000
3799
+--- kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/generated.pb.go	2018-01-31 02:55:29.880980991 +0000
3800 3800
 @@ -34,6 +34,7 @@
3801 3801
  		AzureFileVolumeSource
3802 3802
  		Binding
... ...
@@ -4167,8 +4183,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/gener
4167 4167
  			iNdEx = preIndex
4168 4168
  			skippy, err := skipGenerated(dAtA[iNdEx:])
4169 4169
 diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/types.go cascade-kubernetes/staging/src/k8s.io/api/core/v1/types.go
4170
-+++ cascade-kubernetes/staging/src/k8s.io/api/core/v1/types.go	2018-01-25 06:19:37.000000000 +0000
4170
+--- kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/types.go	2018-01-31 02:55:29.880980991 +0000
4171 4171
 @@ -350,6 +350,8 @@
4172 4172
  	// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
4173 4173
  	// +optional
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:        Kubernetes cluster management
2 2
 Name:           kubernetes
3 3
 Version:        1.8.1
4
-Release:        4%{?dist}
4
+Release:        5%{?dist}
5 5
 License:        ASL 2.0
6 6
 URL:            https://github.com/kubernetes/kubernetes/archive/v%{version}.tar.gz
7 7
 Source0:        kubernetes-v%{version}.tar.gz
... ...
@@ -185,6 +185,8 @@ fi
185 185
 %{_bindir}/pause-amd64
186 186
 
187 187
 %changelog
188
+*   Tue Jan 30 2018 Ashok Chandrasekar <ashokc@vmware.com> 1.8.1-5
189
+-   Fix issue in Cascade cloud provider.
188 190
 *   Tue Jan 23 2018 Ashok Chandrasekar <ashokc@vmware.com> 1.8.1-4
189 191
 -   Add Cascade cloud provider.
190 192
 *   Fri Nov 15 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.8.1-3