Browse code

Upgrade k8s,calico,calico-ci,k8s-dashboard,k8s-dns and nginx-ingress

Change-Id: If97e9331891502f297df3de44d271f47cdb8b0f3
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4929
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>

DheerajSShetty authored on 2018/03/23 04:46:09
Showing 7 changed files
... ...
@@ -1,13 +1,13 @@
1 1
 Summary:        Calico networking for CNI
2 2
 Name:           calico-cni
3
-Version:        1.11.0
4
-Release:        2%{?dist}
3
+Version:        1.11.2
4
+Release:        1%{?dist}
5 5
 License:        ASL 2.0
6 6
 URL:            https://github.com/projectcalico/cni-plugin
7 7
 Source0:        %{name}-%{version}.tar.gz
8
-%define sha1 calico-cni=0fee124daa5e3a5f72e9af28ca1df61e6c2443c3
8
+%define sha1 calico-cni=c12ce655eb5b1cd42c3976d6bf4ac3ebcbc4dc86
9 9
 Source1:        %{name}-vendor-cache-%{version}.tar.gz
10
-%define sha1 calico-cni-vendor-cache=8683bb5598d807c8c1c85e0cd13944ac09f6f450
10
+%define sha1 calico-cni-vendor-cache=7c64de41b90cc74231090441ff359936689737df
11 11
 Group:          Development/Tools
12 12
 Vendor:         VMware, Inc.
13 13
 Distribution:   Photon
... ...
@@ -59,6 +59,8 @@ install -vpm 0755 -t %{buildroot}/usr/share/calico-cni/k8s/ k8s-install/scripts/
59 59
 /usr/share/calico-cni/k8s/calico.conf.default
60 60
 
61 61
 %changelog
62
+*   Tue Mar 20 2018 Dheeraj Shetty <dheerajs@vmware.com> 1.11.2-1
63
+-   calico-cni v1.11.2.
62 64
 *   Thu Dec 07 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.11.0-2
63 65
 -   Cache build dependencies in our repo.
64 66
 *   Fri Nov 03 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.11.0-1
... ...
@@ -1,11 +1,11 @@
1 1
 Summary:        Calico node and documentation for project calico.
2 2
 Name:           calico
3
-Version:        2.6.3
3
+Version:        2.6.7
4 4
 Release:        1%{?dist}
5 5
 License:        Apache-2.0
6 6
 URL:            https://github.com/projectcalico/calico
7 7
 Source0:        %{name}-%{version}.tar.gz
8
-%define sha1 calico=6cc983c49618c95fbe6b3d63d6f45725df577c7c
8
+%define sha1 calico=d74b2103f84ed470322b5f33b75cf552db93d830
9 9
 Group:          Development/Tools
10 10
 Vendor:         VMware, Inc.
11 11
 Distribution:   Photon
... ...
@@ -50,6 +50,8 @@ sed -i 's/. startup.env/source \/startup.env/g' %{buildroot}/usr/share/calico/do
50 50
 /usr/share/calico/docker/fs/*
51 51
 
52 52
 %changelog
53
+*   Tue Mar 20 2018 Dheeraj Shetty <dheerajs@vmware.com> 2.6.7-1
54
+-   Calico Node v2.6.7.
53 55
 *   Tue Dec 05 2017 Vinay Kulkarni <kulkarniv@vmware.com> 2.6.3-1
54 56
 -   Calico Node v2.6.3.
55 57
 *   Fri Nov 03 2017 Vinay Kulkarni <kulkarniv@vmware.com> 2.6.2-1
... ...
@@ -1,11 +1,11 @@
1 1
 Summary:        Kubernetes Dashboard UI
2 2
 Name:           kubernetes-dashboard
3
-Version:        1.6.3
3
+Version:        1.8.3
4 4
 Release:        1%{?dist}
5 5
 License:        Apache-2.0
6 6
 URL:            https://github.com/kubernetes/dashboard
7 7
 Source0:        %{name}-v%{version}.tar.gz
8
-%define sha1    kubernetes-dashboard=8e06cb5cd145ffa5c691c3af5fc6e49caececfb2
8
+%define sha1    kubernetes-dashboard=4003c4a6d3ef311fe72ac81fa7b1b92b7d6cc04e
9 9
 Group:          Development/Tools
10 10
 Vendor:         VMware, Inc.
11 11
 Distribution:   Photon
... ...
@@ -15,7 +15,6 @@ BuildRequires:  glibc-devel
15 15
 BuildRequires:  go
16 16
 BuildRequires:  linux-api-headers
17 17
 BuildRequires:  nodejs
18
-BuildRequires:  nodejs
19 18
 BuildRequires:  openjre8
20 19
 BuildRequires:  which
21 20
 Requires:       nodejs
... ...
@@ -29,9 +28,12 @@ Kubernetes Dashboard UI.
29 29
 
30 30
 %build
31 31
 export PATH=${PATH}:/usr/bin
32
-npm install
33
-npm install babel-loader@7.1.1
34
-./build/postinstall.sh
32
+mkdir vendor/src
33
+cd vendor
34
+cp -rf {github.com/,golang.org/,gopkg.in/,k8s.io/} src/
35
+cd ../
36
+#Remove the lines which strips the debuginfo. 
37
+sed -i '/https:\/\/golang.org\/cmd\/link\//,+2d' ./build/backend.js
35 38
 ./node_modules/.bin/gulp build
36 39
 
37 40
 %install
... ...
@@ -53,6 +55,8 @@ cp -p -r ./src/deploy/Dockerfile %{buildroot}/opt/k8dashboard/
53 53
 /opt/k8dashboard/public/*
54 54
 
55 55
 %changelog
56
+*    Tue Mar 13 2018 Dheeraj Shetty <dheerajs@vmware.com> 1.8.3-1
57
+-    kubernetes-dashboard 1.8.3.
56 58
 *    Mon Sep 11 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.6.3-1
57 59
 -    kubernetes-dashboard 1.6.3.
58 60
 *    Fri Jul 14 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.6.1-1
... ...
@@ -1,11 +1,11 @@
1 1
 Summary:        Kubernetes DNS
2 2
 Name:           kubernetes-dns
3
-Version:        1.14.6
4
-Release:        2%{?dist}
3
+Version:        1.14.8
4
+Release:        1%{?dist}
5 5
 License:        ASL 2.0
6 6
 URL:            https://github.com/kubernetes/dns/archive/%{version}.tar.gz
7 7
 Source0:        kubernetes-dns-%{version}.tar.gz
8
-%define sha1    kubernetes-dns-%{version}.tar.gz=456f28dcb52d5338ce076d62051e33b827172b2a
8
+%define sha1    kubernetes-dns-%{version}.tar.gz=cad22fbc8499901262dfea3da504eabb7f616129
9 9
 Group:          Development/Tools
10 10
 Vendor:         VMware, Inc.
11 11
 Distribution:   Photon
... ...
@@ -64,6 +64,8 @@ rm -rf %{buildroot}/*
64 64
 %{_bindir}/sidecar-e2e
65 65
 
66 66
 %changelog
67
+*   Tue Mar 13 2018 Dheeraj Shetty <dheerajs@vmware.com> 1.14.8-1
68
+-   kubernetes-dns 1.14.8.
67 69
 *   Wed Nov 01 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.14.6-2
68 70
 -   Remove go testing framework binary.
69 71
 *   Mon Oct 02 2017 Vinay Kulkarni <kulkarniv@vmware.com> 1.14.6-1
... ...
@@ -1,6 +1,8 @@
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-31 02:12:47.000000000 +0000
1
+Binary files kubernetes-original/api/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/api/._.DS_Store differ
2
+Binary files kubernetes-original/api/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/api/.DS_Store differ
3
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/apps_v1alpha1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/apps_v1alpha1.json
4
+--- kubernetes-original/api/swagger-spec/apps_v1alpha1.json	2018-03-20 19:21:10.000000000 +0000
3 5
 @@ -1459,6 +1459,10 @@
4 6
       "photonPersistentDisk": {
5 7
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
... ...
@@ -36,10 +38,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1alpha1.json
36 36
        "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
37 37
       }
38 38
      }
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-31 02:12:47.000000000 +0000
41
-@@ -4400,6 +4400,10 @@
39
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/apps_v1beta1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/apps_v1beta1.json
40
+--- kubernetes-original/api/swagger-spec/apps_v1beta1.json	2018-03-20 19:21:10.000000000 +0000
41
+@@ -4479,6 +4479,10 @@
42 42
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
43 43
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
44 44
       },
... ...
@@ -50,7 +52,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta1.json c
50 50
       "projected": {
51 51
        "$ref": "v1.ProjectedVolumeSource",
52 52
        "description": "Items for all in one resources secrets, configmaps, and downward API"
53
-@@ -5123,6 +5127,23 @@
53
+@@ -5202,6 +5206,23 @@
54 54
       },
55 55
       "fsType": {
56 56
        "type": "string",
... ...
@@ -74,10 +76,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta1.json c
74 74
        "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
75 75
       }
76 76
      }
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-31 02:12:47.000000000 +0000
79
-@@ -6730,6 +6730,10 @@
77
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/apps_v1beta2.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/apps_v1beta2.json
78
+--- kubernetes-original/api/swagger-spec/apps_v1beta2.json	2018-03-20 19:21:10.000000000 +0000
79
+@@ -6845,6 +6845,10 @@
80 80
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
81 81
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
82 82
       },
... ...
@@ -88,7 +90,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta2.json c
88 88
       "projected": {
89 89
        "$ref": "v1.ProjectedVolumeSource",
90 90
        "description": "Items for all in one resources secrets, configmaps, and downward API"
91
-@@ -7453,6 +7457,23 @@
91
+@@ -7568,6 +7572,23 @@
92 92
       },
93 93
       "fsType": {
94 94
        "type": "string",
... ...
@@ -112,10 +114,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/apps_v1beta2.json c
112 112
        "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
113 113
       }
114 114
      }
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-31 02:12:47.000000000 +0000
117
-@@ -1850,6 +1850,10 @@
115
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/batch_v1beta1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/batch_v1beta1.json
116
+--- kubernetes-original/api/swagger-spec/batch_v1beta1.json	2018-03-20 19:21:10.000000000 +0000
117
+@@ -1874,6 +1874,10 @@
118 118
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
119 119
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
120 120
       },
... ...
@@ -126,7 +128,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1beta1.json
126 126
       "projected": {
127 127
        "$ref": "v1.ProjectedVolumeSource",
128 128
        "description": "Items for all in one resources secrets, configmaps, and downward API"
129
-@@ -2573,6 +2577,23 @@
129
+@@ -2597,6 +2601,23 @@
130 130
       },
131 131
       "fsType": {
132 132
        "type": "string",
... ...
@@ -150,10 +152,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1beta1.json
150 150
        "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
151 151
       }
152 152
      }
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-31 02:12:47.000000000 +0000
155
-@@ -1795,6 +1795,10 @@
153
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/batch_v1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/batch_v1.json
154
+--- kubernetes-original/api/swagger-spec/batch_v1.json	2018-03-20 19:21:10.000000000 +0000
155
+@@ -1819,6 +1819,10 @@
156 156
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
157 157
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
158 158
       },
... ...
@@ -164,7 +166,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1.json casca
164 164
       "projected": {
165 165
        "$ref": "v1.ProjectedVolumeSource",
166 166
        "description": "Items for all in one resources secrets, configmaps, and downward API"
167
-@@ -2518,6 +2522,23 @@
167
+@@ -2542,6 +2546,23 @@
168 168
       },
169 169
       "fsType": {
170 170
        "type": "string",
... ...
@@ -188,10 +190,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v1.json casca
188 188
        "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
189 189
       }
190 190
      }
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-31 02:12:47.000000000 +0000
193
-@@ -1865,6 +1865,10 @@
191
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/batch_v2alpha1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/batch_v2alpha1.json
192
+--- kubernetes-original/api/swagger-spec/batch_v2alpha1.json	2018-03-20 19:21:10.000000000 +0000
193
+@@ -1889,6 +1889,10 @@
194 194
       "storageos": {
195 195
        "$ref": "v1.StorageOSVolumeSource",
196 196
        "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes."
... ...
@@ -202,7 +204,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v2alpha1.json
202 202
       }
203 203
      }
204 204
     },
205
-@@ -2769,6 +2773,23 @@
205
+@@ -2793,6 +2797,23 @@
206 206
       }
207 207
      }
208 208
     },
... ...
@@ -226,10 +228,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/batch_v2alpha1.json
226 226
     "v1.Container": {
227 227
      "id": "v1.Container",
228 228
      "description": "A single application container that you want to run within a pod.",
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-31 02:12:47.000000000 +0000
231
-@@ -7363,6 +7363,10 @@
229
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/extensions_v1beta1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/extensions_v1beta1.json
230
+--- kubernetes-original/api/swagger-spec/extensions_v1beta1.json	2018-03-20 19:21:10.000000000 +0000
231
+@@ -7502,6 +7502,10 @@
232 232
       "storageos": {
233 233
        "$ref": "v1.StorageOSVolumeSource",
234 234
        "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes."
... ...
@@ -240,7 +242,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/extensions_v1beta1.
240 240
       }
241 241
      }
242 242
     },
243
-@@ -8071,6 +8075,23 @@
243
+@@ -8210,6 +8214,23 @@
244 244
       },
245 245
       "fsType": {
246 246
        "type": "string",
... ...
@@ -264,10 +266,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/extensions_v1beta1.
264 264
        "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
265 265
       }
266 266
      }
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-31 02:12:47.000000000 +0000
269
-@@ -1661,6 +1661,10 @@
267
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/settings.k8s.io_v1alpha1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/settings.k8s.io_v1alpha1.json
268
+--- kubernetes-original/api/swagger-spec/settings.k8s.io_v1alpha1.json	2018-03-20 19:21:10.000000000 +0000
269
+@@ -1676,6 +1676,10 @@
270 270
       "storageos": {
271 271
        "$ref": "v1.StorageOSVolumeSource",
272 272
        "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes."
... ...
@@ -278,7 +280,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/settings.k8s.io_v1a
278 278
       }
279 279
      }
280 280
     },
281
-@@ -2331,6 +2335,23 @@
281
+@@ -2346,6 +2350,23 @@
282 282
       },
283 283
       "fsType": {
284 284
        "type": "string",
... ...
@@ -302,10 +304,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/settings.k8s.io_v1a
302 302
        "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified."
303 303
       }
304 304
      }
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-31 02:12:47.000000000 +0000
307
-@@ -20271,6 +20271,10 @@
305
+diff --no-dereference -uNr kubernetes-original/api/swagger-spec/v1.json kubernetes-modified/src/k8s.io/kubernetes/api/swagger-spec/v1.json
306
+--- kubernetes-original/api/swagger-spec/v1.json	2018-03-20 19:21:10.000000000 +0000
307
+@@ -20629,6 +20629,10 @@
308 308
        "$ref": "v1.PhotonPersistentDiskVolumeSource",
309 309
        "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine"
310 310
       },
... ...
@@ -316,7 +318,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/v1.json cascade-kub
316 316
       "portworxVolume": {
317 317
        "$ref": "v1.PortworxVolumeSource",
318 318
        "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine"
319
-@@ -20834,6 +20838,23 @@
319
+@@ -21200,6 +21204,23 @@
320 320
       }
321 321
      }
322 322
     },
... ...
@@ -340,7 +342,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/v1.json cascade-kub
340 340
     "v1.PortworxVolumeSource": {
341 341
      "id": "v1.PortworxVolumeSource",
342 342
      "description": "PortworxVolumeSource represents a Portworx volume resource.",
343
-@@ -21265,6 +21286,10 @@
343
+@@ -21657,6 +21678,10 @@
344 344
       "storageos": {
345 345
        "$ref": "v1.StorageOSVolumeSource",
346 346
        "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes."
... ...
@@ -351,73 +353,60 @@ diff -uNr --no-dereference kubernetes-1.8.1/api/swagger-spec/v1.json cascade-kub
351 351
       }
352 352
      }
353 353
     },
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-31 02:12:47.000000000 +0000
356
-@@ -42,6 +42,7 @@
357
-         "//pkg/cloudprovider/providers:go_default_library",
358
-         "//pkg/cloudprovider/providers/aws:go_default_library",
359
-         "//pkg/cloudprovider/providers/azure:go_default_library",
360
-+        "//pkg/cloudprovider/providers/cascade:go_default_library",
361
-         "//pkg/cloudprovider/providers/gce:go_default_library",
362
-         "//pkg/cloudprovider/providers/openstack:go_default_library",
363
-         "//pkg/cloudprovider/providers/photon:go_default_library",
364
-@@ -84,6 +85,7 @@
354
+Binary files kubernetes-original/cmd/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/cmd/._.DS_Store differ
355
+Binary files kubernetes-original/cmd/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/cmd/.DS_Store differ
356
+diff --no-dereference -uNr kubernetes-original/cmd/kube-controller-manager/app/BUILD kubernetes-modified/src/k8s.io/kubernetes/cmd/kube-controller-manager/app/BUILD
357
+--- kubernetes-original/cmd/kube-controller-manager/app/BUILD	2018-03-20 19:21:10.000000000 +0000
358
+@@ -86,6 +86,7 @@
365 359
          "//pkg/volume/aws_ebs:go_default_library",
366 360
          "//pkg/volume/azure_dd:go_default_library",
367 361
          "//pkg/volume/azure_file:go_default_library",
368 362
 +        "//pkg/volume/cascade_disk:go_default_library",
369 363
          "//pkg/volume/cinder:go_default_library",
364
+         "//pkg/volume/csi:go_default_library",
370 365
          "//pkg/volume/fc:go_default_library",
371
-         "//pkg/volume/flexvolume:go_default_library",
372
-diff -uNr --no-dereference kubernetes-1.8.1/cmd/kube-controller-manager/app/plugins.go cascade-kubernetes/cmd/kube-controller-manager/app/plugins.go
373
-+++ cascade-kubernetes/cmd/kube-controller-manager/app/plugins.go	2018-01-31 02:12:47.000000000 +0000
374
-@@ -32,6 +32,7 @@
375
- 	"k8s.io/kubernetes/pkg/cloudprovider"
376
- 	"k8s.io/kubernetes/pkg/cloudprovider/providers/aws"
377
- 	"k8s.io/kubernetes/pkg/cloudprovider/providers/azure"
378
-+	"k8s.io/kubernetes/pkg/cloudprovider/providers/cascade"
379
- 	"k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
380
- 	"k8s.io/kubernetes/pkg/cloudprovider/providers/openstack"
381
- 	"k8s.io/kubernetes/pkg/cloudprovider/providers/photon"
382
-@@ -58,6 +59,7 @@
383
- 	"k8s.io/kubernetes/pkg/volume/storageos"
384
- 	volumeutil "k8s.io/kubernetes/pkg/volume/util"
385
- 	"k8s.io/kubernetes/pkg/volume/vsphere_volume"
366
+diff --no-dereference -uNr kubernetes-original/cmd/kube-controller-manager/app/plugins.go kubernetes-modified/src/k8s.io/kubernetes/cmd/kube-controller-manager/app/plugins.go
367
+--- kubernetes-original/cmd/kube-controller-manager/app/plugins.go	2018-03-20 19:21:10.000000000 +0000
368
+@@ -34,6 +34,7 @@
369
+ 	"k8s.io/kubernetes/pkg/volume/aws_ebs"
370
+ 	"k8s.io/kubernetes/pkg/volume/azure_dd"
371
+ 	"k8s.io/kubernetes/pkg/volume/azure_file"
386 372
 +	"k8s.io/kubernetes/pkg/volume/cascade_disk"
387
- )
388
- 
389
- // ProbeAttachableVolumePlugins collects all volume plugins for the attach/
390
-@@ -78,6 +80,7 @@
391
- 	allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
373
+ 	"k8s.io/kubernetes/pkg/volume/cinder"
374
+ 	"k8s.io/kubernetes/pkg/volume/csi"
375
+ 	"k8s.io/kubernetes/pkg/volume/fc"
376
+@@ -77,6 +78,7 @@
392 377
  	allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
393 378
  	allPlugins = append(allPlugins, iscsi.ProbeVolumePlugins()...)
379
+ 	allPlugins = append(allPlugins, rbd.ProbeVolumePlugins()...)
394 380
 +	allPlugins = append(allPlugins, cascade_disk.ProbeVolumePlugins()...)
395
- 	return allPlugins
396
- }
397
- 
398
-@@ -104,6 +107,7 @@
381
+ 	if utilfeature.DefaultFeatureGate.Enabled(features.CSIPersistentVolume) {
382
+ 		allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
383
+ 	}
384
+@@ -106,6 +108,7 @@
399 385
  	allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
400 386
  	allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
401 387
  	allPlugins = append(allPlugins, fc.ProbeVolumePlugins()...)
402 388
 +	allPlugins = append(allPlugins, cascade_disk.ProbeVolumePlugins()...)
403
- 	return allPlugins
404
- }
405
- 
406
-@@ -168,6 +172,8 @@
407
- 			allPlugins = append(allPlugins, azure_dd.ProbeVolumePlugins()...)
408
- 		case photon.ProviderName == cloud.ProviderName():
409
- 			allPlugins = append(allPlugins, photon_pd.ProbeVolumePlugins()...)
410
-+		case cascade.ProviderName == cloud.ProviderName():
411
-+			allPlugins = append(allPlugins, cascade_disk.ProbeVolumePlugins()...)
412
- 		}
389
+ 	if !utilfeature.DefaultFeatureGate.Enabled(features.CSIPersistentVolume) {
390
+ 		allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
413 391
  	}
392
+@@ -165,6 +168,7 @@
393
+ 	allPlugins = append(allPlugins, vsphere_volume.ProbeVolumePlugins()...)
394
+ 	allPlugins = append(allPlugins, azure_dd.ProbeVolumePlugins()...)
395
+ 	allPlugins = append(allPlugins, photon_pd.ProbeVolumePlugins()...)
396
++	allPlugins = append(allPlugins, cascade_disk.ProbeVolumePlugins()...)
414 397
  
415
-diff -uNr --no-dereference kubernetes-1.8.1/cmd/kubelet/app/BUILD cascade-kubernetes/cmd/kubelet/app/BUILD
416
-+++ cascade-kubernetes/cmd/kubelet/app/BUILD	2018-01-31 02:12:47.000000000 +0000
417
-@@ -73,6 +73,7 @@
398
+ 	return allPlugins
399
+ }
400
+Binary files kubernetes-original/cmd/kube-controller-manager/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/cmd/kube-controller-manager/._.DS_Store differ
401
+Binary files kubernetes-original/cmd/kube-controller-manager/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/cmd/kube-controller-manager/.DS_Store differ
402
+diff --no-dereference -uNr kubernetes-original/cmd/kubelet/app/BUILD kubernetes-modified/src/k8s.io/kubernetes/cmd/kubelet/app/BUILD
403
+--- kubernetes-original/cmd/kubelet/app/BUILD	2018-03-20 19:21:10.000000000 +0000
404
+@@ -74,6 +74,7 @@
418 405
          "//pkg/volume/aws_ebs:go_default_library",
419 406
          "//pkg/volume/azure_dd:go_default_library",
420 407
          "//pkg/volume/azure_file:go_default_library",
... ...
@@ -425,9 +414,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/cmd/kubelet/app/BUILD cascade-kubern
425 425
          "//pkg/volume/cephfs:go_default_library",
426 426
          "//pkg/volume/cinder:go_default_library",
427 427
          "//pkg/volume/configmap:go_default_library",
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-31 02:12:47.000000000 +0000
428
+diff --no-dereference -uNr kubernetes-original/cmd/kubelet/app/plugins.go kubernetes-modified/src/k8s.io/kubernetes/cmd/kubelet/app/plugins.go
429
+--- kubernetes-original/cmd/kubelet/app/plugins.go	2018-03-20 19:21:10.000000000 +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"
... ...
@@ -436,54 +425,23 @@ diff -uNr --no-dereference kubernetes-1.8.1/cmd/kubelet/app/plugins.go cascade-k
436 436
  	"k8s.io/kubernetes/pkg/volume/cephfs"
437 437
  	"k8s.io/kubernetes/pkg/volume/cinder"
438 438
  	"k8s.io/kubernetes/pkg/volume/configmap"
439
-@@ -96,6 +97,7 @@
439
+@@ -100,6 +101,7 @@
440 440
  	allPlugins = append(allPlugins, scaleio.ProbeVolumePlugins()...)
441 441
  	allPlugins = append(allPlugins, local.ProbeVolumePlugins()...)
442 442
  	allPlugins = append(allPlugins, storageos.ProbeVolumePlugins()...)
443 443
 +	allPlugins = append(allPlugins, cascade_disk.ProbeVolumePlugins()...)
444
- 	return allPlugins
445
- }
446
- 
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-31 02:12:47.000000000 +0000
449
-@@ -10540,6 +10540,22 @@
450
-      }
451
-     }
452
-    },
453
-+   "io.k8s.api.core.v1.CascadeDiskVolumeSource": {
454
-+    "description": "Represents a Cascade persistent disk resource.",
455
-+    "required": [
456
-+     "diskID"
457
-+    ],
458
-+    "properties": {
459
-+     "fsType": {
460
-+      "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
461
-+      "type": "string"
462
-+     },
463
-+     "diskID": {
464
-+      "description": "ID that identifies Cascade persistent disk",
465
-+      "type": "string"
466
-+     }
467
-+    }
468
-+   },
469
-    "io.k8s.api.core.v1.Capabilities": {
470
-     "description": "Adds and removes POSIX capabilities from running containers.",
471
-     "properties": {
472
-@@ -12865,6 +12881,10 @@
473
-      "vsphereVolume": {
474
-       "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine",
475
-       "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource"
476
-+     },
477
-+     "cascadeDisk": {
478
-+      "description": "CascadeDisk represents a Cascade persistent disk attached and mounted on kubelets host machine",
479
-+      "$ref": "#/definitions/io.k8s.api.core.v1.CascadeDiskVolumeSource"
480
-      }
481
-     }
482
-    },
483
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/types.go cascade-kubernetes/pkg/api/types.go
484
-+++ cascade-kubernetes/pkg/api/types.go	2018-01-31 02:12:47.000000000 +0000
444
+ 	if utilfeature.DefaultFeatureGate.Enabled(features.CSIPersistentVolume) {
445
+ 		allPlugins = append(allPlugins, csi.ProbeVolumePlugins()...)
446
+ 	}
447
+Binary files kubernetes-original/cmd/kubelet/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/cmd/kubelet/._.DS_Store differ
448
+Binary files kubernetes-original/cmd/kubelet/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/cmd/kubelet/.DS_Store differ
449
+Binary files kubernetes-original/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/._.DS_Store differ
450
+Binary files kubernetes-original/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/.DS_Store differ
451
+Binary files kubernetes-original/pkg/apis/core/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/apis/core/._.DS_Store differ
452
+Binary files kubernetes-original/pkg/apis/core/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/apis/core/.DS_Store differ
453
+diff --no-dereference -uNr kubernetes-original/pkg/apis/core/types.go kubernetes-modified/src/k8s.io/kubernetes/pkg/apis/core/types.go
454
+--- kubernetes-original/pkg/apis/core/types.go	2018-03-20 19:21:10.000000000 +0000
485 455
 @@ -316,6 +316,8 @@
486 456
  	// StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
487 457
  	// +optional
... ...
@@ -493,16 +451,16 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/types.go cascade-kubernetes/
493 493
  }
494 494
  
495 495
  // Similar to VolumeSource but meant for the administrator who creates PVs.
496
-@@ -391,6 +393,8 @@
497
- 	// More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
496
+@@ -394,6 +396,8 @@
497
+ 	// CSI (Container Storage Interface) represents storage that handled by an external CSI driver
498 498
  	// +optional
499
- 	StorageOS *StorageOSPersistentVolumeSource
499
+ 	CSI *CSIPersistentVolumeSource
500 500
 +	// CascadeDisk represents a Cascade persistent disk attached and mounted on kubelets host machine
501 501
 +	CascadeDisk *CascadeDiskVolumeSource
502 502
  }
503 503
  
504 504
  type PersistentVolumeClaimVolumeSource struct {
505
-@@ -1333,6 +1337,16 @@
505
+@@ -1471,6 +1475,16 @@
506 506
  	SecretRef *ObjectReference
507 507
  }
508 508
  
... ...
@@ -519,10 +477,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/types.go cascade-kubernetes/
519 519
  // Adapts a ConfigMap into a volume.
520 520
  //
521 521
  // The contents of the target ConfigMap's Data field will be presented in a
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-31 02:12:47.000000000 +0000
524
-@@ -612,6 +612,14 @@
522
+diff --no-dereference -uNr kubernetes-original/pkg/apis/core/validation/validation.go kubernetes-modified/src/k8s.io/kubernetes/pkg/apis/core/validation/validation.go
523
+--- kubernetes-original/pkg/apis/core/validation/validation.go	2018-03-20 19:21:10.000000000 +0000
524
+@@ -681,6 +681,14 @@
525 525
  			allErrs = append(allErrs, validateScaleIOVolumeSource(source.ScaleIO, fldPath.Child("scaleIO"))...)
526 526
  		}
527 527
  	}
... ...
@@ -537,11 +495,11 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/validation/validation.go cas
537 537
  
538 538
  	if numVolumes == 0 {
539 539
  		allErrs = append(allErrs, field.Required(fldPath, "must specify a volume type"))
540
-@@ -1283,6 +1291,14 @@
540
+@@ -1440,6 +1448,14 @@
541 541
  	return allErrs
542 542
  }
543 543
  
544
-+func validateCascadeDiskVolumeSource(cd *api.CascadeDiskVolumeSource, fldPath *field.Path) field.ErrorList {
544
++func validateCascadeDiskVolumeSource(cd *core.CascadeDiskVolumeSource, fldPath *field.Path) field.ErrorList {
545 545
 +	allErrs := field.ErrorList{}
546 546
 +	if len(cd.DiskID) == 0 {
547 547
 +		allErrs = append(allErrs, field.Required(fldPath.Child("diskID"), ""))
... ...
@@ -552,10 +510,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/validation/validation.go cas
552 552
  // ValidatePersistentVolumeName checks that a name is appropriate for a
553 553
  // PersistentVolumeName object.
554 554
  var ValidatePersistentVolumeName = NameIsDNSSubdomain
555
-@@ -1504,6 +1520,14 @@
556
- 			allErrs = append(allErrs, validateStorageOSPersistentVolumeSource(pv.Spec.StorageOS, specPath.Child("storageos"))...)
555
+@@ -1674,6 +1690,15 @@
557 556
  		}
558 557
  	}
558
+ 
559 559
 +	if pv.Spec.CascadeDisk != nil {
560 560
 +		if numVolumes > 0 {
561 561
 +			allErrs = append(allErrs, field.Forbidden(specPath.Child("cascadeDisk"), "may not specify more than 1 volume type"))
... ...
@@ -564,24 +522,29 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/api/validation/validation.go cas
564 564
 +			allErrs = append(allErrs, validateCascadeDiskVolumeSource(pv.Spec.CascadeDisk, specPath.Child("cascadeDisk"))...)
565 565
 +		}
566 566
 +	}
567
- 
567
++
568 568
  	if numVolumes == 0 {
569 569
  		allErrs = append(allErrs, field.Required(specPath, "must specify a volume type"))
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-31 02:12:47.000000000 +0000
572
-@@ -1002,6 +1002,7 @@
573
- 	Projected             FSType = "projected"
570
+ 	}
571
+Binary files kubernetes-original/pkg/apis/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/apis/._.DS_Store differ
572
+Binary files kubernetes-original/pkg/apis/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/apis/.DS_Store differ
573
+diff --no-dereference -uNr kubernetes-original/pkg/apis/extensions/types.go kubernetes-modified/src/k8s.io/kubernetes/pkg/apis/extensions/types.go
574
+--- kubernetes-original/pkg/apis/extensions/types.go	2018-03-20 19:21:10.000000000 +0000
575
+@@ -925,6 +925,7 @@
574 576
  	PortworxVolume        FSType = "portworxVolume"
575 577
  	ScaleIO               FSType = "scaleIO"
578
+ 	CSI                   FSType = "csi"
576 579
 +	CascadeDisk           FSType = "cascadeDisk"
577 580
  	All                   FSType = "*"
578 581
  )
579 582
  
580
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/BUILD cascade-kubernetes/pkg/cloudprovider/providers/BUILD
581
-+++ cascade-kubernetes/pkg/cloudprovider/providers/BUILD	2018-01-31 02:12:47.000000000 +0000
582
-@@ -11,6 +11,7 @@
583
+Binary files kubernetes-original/pkg/cloudprovider/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/._.DS_Store differ
584
+Binary files kubernetes-original/pkg/cloudprovider/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/.DS_Store differ
585
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/BUILD kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/BUILD
586
+--- kubernetes-original/pkg/cloudprovider/providers/BUILD	2018-03-20 19:21:10.000000000 +0000
587
+@@ -12,6 +12,7 @@
583 588
      deps = [
584 589
          "//pkg/cloudprovider/providers/aws:go_default_library",
585 590
          "//pkg/cloudprovider/providers/azure:go_default_library",
... ...
@@ -597,17 +560,19 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/BUILD ca
597 597
          "//pkg/cloudprovider/providers/cloudstack:all-srcs",
598 598
          "//pkg/cloudprovider/providers/fake:all-srcs",
599 599
          "//pkg/cloudprovider/providers/gce:all-srcs",
600
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/apitypes.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/apitypes.go
601
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/apitypes.go	2018-01-31 02:12:47.000000000 +0000
602
-@@ -0,0 +1,224 @@
600
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/apitypes.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/apitypes.go
601
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/apitypes.go	1970-01-01 00:00:00.000000000 +0000
602
+@@ -0,0 +1,227 @@
603 603
 +package cascade
604 604
 +
605 605
 +import "fmt"
606 606
 +
607 607
 +const (
608 608
 +	NotFoundError     = 1408
609
++	VMNotFoundError   = 2006
609 610
 +	DiskNotFoundError = 3011
611
++	DiskInUseError    = 3012
610 612
 +)
611 613
 +
612 614
 +// Represents APIError returned by the API in case of an error.
... ...
@@ -763,7 +728,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
763 763
 +	SelfLink    string           `json:"selfLink,omitempty"`
764 764
 +	State       *string          `json:"state"`
765 765
 +	Tags        []string         `json:"tags"`
766
-+	VM          string            `json:"vm"`
766
++	VM          string           `json:"vm"`
767 767
 +	MountDevice string           `json:"mountDevice,omitempty"`
768 768
 +	Zone        *string          `json:"zone"`
769 769
 +}
... ...
@@ -796,6 +761,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
796 796
 +	Name        *string                  `json:"name"`
797 797
 +	PortMaps    []*LoadBalancerPortMap   `json:"portMaps"`
798 798
 +	Type        *string                  `json:"type"`
799
++	SubDomain   *string                  `json:"subDomain"`
799 800
 +}
800 801
 +
801 802
 +// Represents the health check spec for a load balancer.
... ...
@@ -825,10 +791,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
825 825
 +type LoadBalancerVMUpdate struct {
826 826
 +	VMIds []*LoadBalancerVM `json:"vmIds"`
827 827
 +}
828
-\ No newline at end of file
829
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/auth.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/auth.go
830
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/auth.go	2018-01-31 02:12:47.000000000 +0000
828
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/auth.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/auth.go
829
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/auth.go	1970-01-01 00:00:00.000000000 +0000
831 830
 @@ -0,0 +1,145 @@
832 831
 +package cascade
833 832
 +
... ...
@@ -976,9 +941,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
976 976
 +	return pwd, nil
977 977
 +}
978 978
 \ No newline at end of file
979
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/BUILD cascade-kubernetes/pkg/cloudprovider/providers/cascade/BUILD
980
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/BUILD	2018-01-31 02:12:47.000000000 +0000
979
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/BUILD kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/BUILD
980
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/BUILD	1970-01-01 00:00:00.000000000 +0000
981 981
 @@ -0,0 +1,44 @@
982 982
 +package(default_visibility = ["//visibility:public"])
983 983
 +
... ...
@@ -1024,45 +989,56 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1024 1024
 +    srcs = [":package-srcs"],
1025 1025
 +    tags = ["automanaged"],
1026 1026
 +)
1027
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_disks.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_disks.go
1028
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_disks.go	2018-01-31 02:12:47.000000000 +0000
1029
-@@ -0,0 +1,197 @@
1027
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/cascade_disks.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/cascade_disks.go
1028
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/cascade_disks.go	1970-01-01 00:00:00.000000000 +0000
1029
+@@ -0,0 +1,225 @@
1030 1030
 +package cascade
1031 1031
 +
1032 1032
 +import (
1033 1033
 +	"github.com/golang/glog"
1034 1034
 +	k8stypes "k8s.io/apimachinery/pkg/types"
1035
-+	"k8s.io/kubernetes/pkg/volume"
1036 1035
 +	"k8s.io/apimachinery/pkg/util/sets"
1037 1036
 +	"k8s.io/kubernetes/pkg/kubelet/apis"
1037
++	"k8s.io/kubernetes/pkg/volume"
1038 1038
 +)
1039 1039
 +
1040 1040
 +// Attaches given virtual disk volume to the node running kubelet.
1041 1041
 +func (cc *CascadeCloud) AttachDisk(diskID string, nodeName k8stypes.NodeName) (string, error) {
1042
-+	operation := &VMDiskOperation{
1043
-+		DiskID: StringPtr(diskID),
1044
-+	}
1045
-+
1046
-+	vmID, err := cc.InstanceID(nodeName)
1042
++	// Check if disk is already attached to that node.
1043
++	attached, err := cc.DiskIsAttached(diskID, nodeName)
1047 1044
 +	if err != nil {
1048
-+		glog.Errorf("Cascade Cloud Provider: cc.InstanceID failed for AttachDisk. Error[%v]", err)
1045
++		glog.Errorf("Cascade Cloud Provider: cc.DiskIsAttached failed during AttachDisk. Error[%v]", err)
1049 1046
 +		return "", err
1050 1047
 +	}
1051 1048
 +
1052
-+	task, err := cc.apiClient.AttachDisk(vmID, operation)
1053
-+	if err != nil {
1054
-+		glog.Errorf("Cascade Cloud Provider: Failed to attach disk with ID %s. Error[%v]", diskID, err)
1055
-+		return "", err
1056
-+	}
1049
++	// If not already attached, attach the disk.
1050
++	if !attached {
1051
++		operation := &VMDiskOperation{
1052
++			DiskID: StringPtr(diskID),
1053
++		}
1057 1054
 +
1058
-+	_, err = cc.apiClient.WaitForTask(StringVal(task.ID))
1059
-+	if err != nil {
1060
-+		glog.Errorf("Cascade Cloud Provider: Failed to wait for task to attach disk with ID %s. Error[%v]",
1061
-+			diskID, err)
1062
-+		return "", err
1055
++		vmID, err := cc.InstanceID(nodeName)
1056
++		if err != nil {
1057
++			glog.Errorf("Cascade Cloud Provider: cc.InstanceID failed for AttachDisk. Error[%v]", err)
1058
++			return "", err
1059
++		}
1060
++
1061
++		task, err := cc.apiClient.AttachDisk(vmID, operation)
1062
++		if err != nil {
1063
++			glog.Errorf("Cascade Cloud Provider: Failed to attach disk with ID %s. Error[%v]", diskID, err)
1064
++			return "", err
1065
++		}
1066
++
1067
++		_, err = cc.apiClient.WaitForTask(StringVal(task.ID))
1068
++		if err != nil {
1069
++			glog.Errorf("Cascade Cloud Provider: Failed to wait for task to attach disk with ID %s. Error[%v]",
1070
++				diskID, err)
1071
++			return "", err
1072
++		}
1063 1073
 +	}
1064 1074
 +
1075
++	// Get mount device of the attached disk.
1065 1076
 +	disk, err := cc.apiClient.GetDisk(diskID)
1066 1077
 +	if err != nil {
1067 1078
 +		glog.Errorf("Cascade Cloud Provider: Failed to Get disk with diskID %s. Error[%v]", diskID, err)
... ...
@@ -1102,15 +1078,29 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1102 1102
 +
1103 1103
 +// DiskIsAttached returns if disk is attached to the VM using controllers supported by the plugin.
1104 1104
 +func (cc *CascadeCloud) DiskIsAttached(diskID string, nodeName k8stypes.NodeName) (bool, error) {
1105
-+	disk, err := cc.apiClient.GetDisk(diskID)
1105
++	vmID, err := cc.InstanceID(nodeName)
1106 1106
 +	if err != nil {
1107
-+		glog.Errorf("Cascade Cloud Provider: Failed to Get disk with diskID %s. Error[%v]", diskID, err)
1107
++		glog.Errorf("Cascade Cloud Provider: cc.InstanceID failed for DiskIsAttached. Error[%v]", err)
1108 1108
 +		return false, err
1109 1109
 +	}
1110 1110
 +
1111
-+	vmID, err := cc.InstanceID(nodeName)
1111
++	_, err = cc.apiClient.GetVM(vmID)
1112 1112
 +	if err != nil {
1113
-+		glog.Errorf("Cascade Cloud Provider: cc.InstanceID failed for DiskIsAttached. Error[%v]", err)
1113
++		switch err.(type) {
1114
++		case APIError:
1115
++			if err.(APIError).ErrorCode == VMNotFoundError {
1116
++				// If instance no longer exists, we will assume that the volume is not attached.
1117
++				glog.Warningf("Cascade Cloud Provider: Instance %s does not exist. DiskIsAttached will assume"+
1118
++					" disk %s is not attached to it.", nodeName, diskID)
1119
++				return false, nil
1120
++			}
1121
++		}
1122
++		return false, err
1123
++	}
1124
++
1125
++	disk, err := cc.apiClient.GetDisk(diskID)
1126
++	if err != nil {
1127
++		glog.Errorf("Cascade Cloud Provider: Failed to Get disk with diskID %s. Error[%v]", diskID, err)
1114 1128
 +		return false, err
1115 1129
 +	}
1116 1130
 +
... ...
@@ -1198,6 +1188,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1198 1198
 +			if err.(APIError).ErrorCode == DiskNotFoundError {
1199 1199
 +				return nil
1200 1200
 +			}
1201
++			if err.(APIError).ErrorCode == DiskInUseError {
1202
++				return volume.NewDeletedVolumeInUseError(err.Error())
1203
++			}
1201 1204
 +		}
1202 1205
 +		return err
1203 1206
 +	}
... ...
@@ -1223,12 +1216,11 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1223 1223
 +	labels[apis.LabelZoneFailureDomain] = StringVal(disk.Zone)
1224 1224
 +	labels[apis.LabelZoneRegion] = cc.cfg.Global.Region
1225 1225
 +
1226
-+	return labels,nil
1226
++	return labels, nil
1227 1227
 +}
1228
-\ No newline at end of file
1229
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade.go
1230
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade.go	2018-01-31 02:12:47.000000000 +0000
1228
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/cascade.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/cascade.go
1229
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/cascade.go	1970-01-01 00:00:00.000000000 +0000
1231 1230
 @@ -0,0 +1,216 @@
1232 1231
 +// The use of Cascade cloud provider requires the kubelet, kube-apiserver, and kube-controller-manager to be started
1233 1232
 +// with config flag: '--cloud-provider=cascade --cloud-config=[path_to_config_file]'.
... ...
@@ -1447,9 +1439,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1447 1447
 +	return true
1448 1448
 +}
1449 1449
 \ No newline at end of file
1450
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_instances.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_instances.go
1451
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_instances.go	2018-01-31 02:12:47.000000000 +0000
1450
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/cascade_instances.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/cascade_instances.go
1451
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/cascade_instances.go	1970-01-01 00:00:00.000000000 +0000
1452 1452
 @@ -0,0 +1,90 @@
1453 1453
 +package cascade
1454 1454
 +
... ...
@@ -1541,10 +1533,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1541 1541
 +func (cc *CascadeCloud) InstanceType(nodeName k8stypes.NodeName) (string, error) {
1542 1542
 +	return "", nil
1543 1543
 +}
1544
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go
1545
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go	2018-01-31 02:12:47.000000000 +0000
1546
-@@ -0,0 +1,283 @@
1544
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go
1545
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/cascade_loadbalancer.go	1970-01-01 00:00:00.000000000 +0000
1546
+@@ -0,0 +1,284 @@
1547 1547
 +package cascade
1548 1548
 +
1549 1549
 +import (
... ...
@@ -1624,6 +1616,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1624 1624
 +		Type:        StringPtr("PUBLIC"),
1625 1625
 +		PortMaps:    portMaps,
1626 1626
 +		HealthCheck: healthCheck,
1627
++		SubDomain:   StringPtr(k8sService.Name),
1627 1628
 +	}
1628 1629
 +	logger.Infof("Load balancer create spec: %+v", *createSpec)
1629 1630
 +
... ...
@@ -1829,22 +1822,22 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1829 1829
 +	glog.Infoln(l.getLogMsg(msgTemplate, args))
1830 1830
 +}
1831 1831
 \ No newline at end of file
1832
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/client.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/client.go
1833
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/client.go	2018-01-31 02:12:47.000000000 +0000
1834
-@@ -0,0 +1,382 @@
1832
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/client.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/client.go
1833
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/client.go	1970-01-01 00:00:00.000000000 +0000
1834
+@@ -0,0 +1,394 @@
1835 1835
 +package cascade
1836 1836
 +
1837 1837
 +import (
1838
++	"bytes"
1838 1839
 +	"crypto/tls"
1839 1840
 +	"crypto/x509"
1840 1841
 +	"encoding/json"
1841 1842
 +	"fmt"
1843
++	"github.com/golang/glog"
1842 1844
 +	"net/http"
1843 1845
 +	"strings"
1844 1846
 +	"time"
1845
-+	"bytes"
1846
-+	"github.com/golang/glog"
1847 1847
 +)
1848 1848
 +
1849 1849
 +// Represents stateless context needed to call Cascade APIs.
... ...
@@ -1891,10 +1884,6 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1891 1891
 +	// nil by default.
1892 1892
 +	RootCAs *x509.CertPool
1893 1893
 +
1894
-+	// For tasks APIs, defines the delay between each polling attempt.
1895
-+	// Default is 100 milliseconds.
1896
-+	TaskPollDelay time.Duration
1897
-+
1898 1894
 +	// For tasks APIs, defines the number of retries to make in the event
1899 1895
 +	// of an error. Default is 3.
1900 1896
 +	TaskRetryCount int
... ...
@@ -1903,6 +1892,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1903 1903
 +	TokenOptions *TokenOptions
1904 1904
 +}
1905 1905
 +
1906
++const minimumTaskPollDelay = 500 * time.Millisecond
1907
++
1906 1908
 +// Creates a new Cascade client which can be used to make API calls to Cascade.
1907 1909
 +func NewClient(cfg *CascadeConfig, authClient *AuthClient) (c *Client, err error) {
1908 1910
 +	tokenOptions, err := authClient.GetTokensByMachineAccount()
... ...
@@ -1913,7 +1904,6 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1913 1913
 +
1914 1914
 +	options := &ClientOptions{
1915 1915
 +		TaskPollTimeout:   30 * time.Minute,
1916
-+		TaskPollDelay:     100 * time.Millisecond,
1917 1916
 +		TaskRetryCount:    3,
1918 1917
 +		TokenOptions:      tokenOptions,
1919 1918
 +		IgnoreCertificate: false,
... ...
@@ -1936,7 +1926,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1936 1936
 +		UpdateAccessTokenCallback: tokenCallback,
1937 1937
 +	}
1938 1938
 +
1939
-+	clientConfig := &ClientConfig {
1939
++	clientConfig := &ClientConfig{
1940 1940
 +		tenantName: cfg.Global.TenantName,
1941 1941
 +		clusterID:  cfg.Global.ClusterID,
1942 1942
 +		region:     cfg.Global.Region,
... ...
@@ -1948,7 +1938,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
1948 1948
 +		restClient: restClient,
1949 1949
 +		// Ensure a copy of options is made, rather than using a pointer
1950 1950
 +		// which may change out from underneath if misused by the caller.
1951
-+		options:    *options,
1951
++		options: *options,
1952 1952
 +	}
1953 1953
 +
1954 1954
 +	return
... ...
@@ -2072,6 +2062,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2072 2072
 +	start := time.Now()
2073 2073
 +	numErrors := 0
2074 2074
 +	maxErrors := api.options.TaskRetryCount
2075
++	backoffMultiplier := 1
2075 2076
 +
2076 2077
 +	for time.Since(start) < api.options.TaskPollTimeout {
2077 2078
 +		task, err = api.GetTask(taskID)
... ...
@@ -2098,7 +2089,21 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2098 2098
 +				return
2099 2099
 +			}
2100 2100
 +		}
2101
-+		time.Sleep(api.options.TaskPollDelay)
2101
++
2102
++		// Perform backoff based on how long it has been since we started polling. The logic is as follows:
2103
++		// For the first 10 seconds, poll every 500 milliseconds.
2104
++		// From there till the first 1 minute, poll every 1 second.
2105
++		// From there till the first 10 minutes, poll every 5 seconds.
2106
++		// From there till the timeout (30 minutes), poll every 10 seconds.
2107
++		elapsedTime := time.Since(start)
2108
++		if elapsedTime > 10*time.Second && elapsedTime <= 60*time.Second {
2109
++			backoffMultiplier = 2
2110
++		} else if elapsedTime > 60*time.Second && elapsedTime <= 600*time.Second {
2111
++			backoffMultiplier = 10
2112
++		} else if elapsedTime > 600*time.Second && elapsedTime <= api.options.TaskPollTimeout {
2113
++			backoffMultiplier = 20
2114
++		}
2115
++		time.Sleep(time.Duration(backoffMultiplier) * minimumTaskPollDelay)
2102 2116
 +	}
2103 2117
 +	err = TaskTimeoutError{taskID}
2104 2118
 +	return
... ...
@@ -2215,10 +2220,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2215 2215
 +
2216 2216
 +	return errorStep
2217 2217
 +}
2218
-\ No newline at end of file
2219
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/oidcclient.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/oidcclient.go
2220
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/oidcclient.go	2018-01-31 02:12:47.000000000 +0000
2218
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/oidcclient.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/oidcclient.go
2219
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/oidcclient.go	1970-01-01 00:00:00.000000000 +0000
2221 2220
 @@ -0,0 +1,297 @@
2222 2221
 +package cascade
2223 2222
 +
... ...
@@ -2517,16 +2521,16 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2517 2517
 +
2518 2518
 +	return oidcErr
2519 2519
 +}
2520
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/OWNERS cascade-kubernetes/pkg/cloudprovider/providers/cascade/OWNERS
2521
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/OWNERS	2018-01-31 02:12:47.000000000 +0000
2520
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/OWNERS kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/OWNERS
2521
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/OWNERS	1970-01-01 00:00:00.000000000 +0000
2522 2522
 @@ -0,0 +1,3 @@
2523 2523
 +maintainers:
2524 2524
 +- ashokc
2525 2525
 +- ysheng
2526
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/restclient.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/restclient.go
2527
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/restclient.go	2018-01-31 02:12:47.000000000 +0000
2526
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/restclient.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/restclient.go
2527
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/restclient.go	1970-01-01 00:00:00.000000000 +0000
2528 2528
 @@ -0,0 +1,262 @@
2529 2529
 +package cascade
2530 2530
 +
... ...
@@ -2790,9 +2794,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2790 2790
 +	apiError.HttpStatusCode = res.StatusCode
2791 2791
 +	return nil, apiError
2792 2792
 +}
2793
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/utils.go cascade-kubernetes/pkg/cloudprovider/providers/cascade/utils.go
2794
-+++ cascade-kubernetes/pkg/cloudprovider/providers/cascade/utils.go	2018-01-31 02:12:47.000000000 +0000
2793
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/cascade/utils.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/cascade/utils.go
2794
+--- kubernetes-original/pkg/cloudprovider/providers/cascade/utils.go	1970-01-01 00:00:00.000000000 +0000
2795 2795
 @@ -0,0 +1,25 @@
2796 2796
 +package cascade
2797 2797
 +
... ...
@@ -2820,9 +2824,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/cascade/
2820 2820
 +	return &s
2821 2821
 +}
2822 2822
 \ No newline at end of file
2823
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/providers.go cascade-kubernetes/pkg/cloudprovider/providers/providers.go
2824
-+++ cascade-kubernetes/pkg/cloudprovider/providers/providers.go	2018-01-31 02:12:47.000000000 +0000
2823
+diff --no-dereference -uNr kubernetes-original/pkg/cloudprovider/providers/providers.go kubernetes-modified/src/k8s.io/kubernetes/pkg/cloudprovider/providers/providers.go
2824
+--- kubernetes-original/pkg/cloudprovider/providers/providers.go	2018-03-20 19:21:10.000000000 +0000
2825 2825
 @@ -20,6 +20,7 @@
2826 2826
  	// Cloud providers
2827 2827
  	_ "k8s.io/kubernetes/pkg/cloudprovider/providers/aws"
... ...
@@ -2831,10 +2835,14 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/cloudprovider/providers/provider
2831 2831
  	_ "k8s.io/kubernetes/pkg/cloudprovider/providers/cloudstack"
2832 2832
  	_ "k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
2833 2833
  	_ "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack"
2834
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/printers/internalversion/describe.go cascade-kubernetes/pkg/printers/internalversion/describe.go
2835
-+++ cascade-kubernetes/pkg/printers/internalversion/describe.go	2018-01-31 02:12:47.000000000 +0000
2836
-@@ -764,6 +764,8 @@
2834
+Binary files kubernetes-original/pkg/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/._.DS_Store differ
2835
+Binary files kubernetes-original/pkg/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/.DS_Store differ
2836
+Binary files kubernetes-original/pkg/printers/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/printers/._.DS_Store differ
2837
+Binary files kubernetes-original/pkg/printers/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/printers/.DS_Store differ
2838
+diff --no-dereference -uNr kubernetes-original/pkg/printers/internalversion/describe.go kubernetes-modified/src/k8s.io/kubernetes/pkg/printers/internalversion/describe.go
2839
+--- kubernetes-original/pkg/printers/internalversion/describe.go	2018-03-20 19:21:10.000000000 +0000
2840
+@@ -751,6 +751,8 @@
2837 2841
  			printFlexVolumeSource(volume.VolumeSource.FlexVolume, w)
2838 2842
  		case volume.VolumeSource.Flocker != nil:
2839 2843
  			printFlockerVolumeSource(volume.VolumeSource.Flocker, w)
... ...
@@ -2843,8 +2851,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/printers/internalversion/describ
2843 2843
  		default:
2844 2844
  			w.Write(LEVEL_1, "<unknown>\n")
2845 2845
  		}
2846
-@@ -1047,6 +1049,13 @@
2847
- 		flocker.DatasetName, flocker.DatasetUUID)
2846
+@@ -1101,6 +1103,13 @@
2847
+ 		csi.Driver, csi.VolumeHandle, csi.ReadOnly)
2848 2848
  }
2849 2849
  
2850 2850
 +func printCascadeDiskVolumeSource(cascade *api.CascadeDiskVolumeSource, w PrefixWriter) {
... ...
@@ -2857,27 +2865,31 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/printers/internalversion/describ
2857 2857
  type PersistentVolumeDescriber struct {
2858 2858
  	clientset.Interface
2859 2859
  }
2860
-@@ -1130,6 +1139,8 @@
2861
- 			printFlexVolumeSource(pv.Spec.FlexVolume, w)
2862
- 		case pv.Spec.Flocker != nil:
2860
+@@ -1189,6 +1198,8 @@
2863 2861
  			printFlockerVolumeSource(pv.Spec.Flocker, w)
2862
+ 		case pv.Spec.CSI != nil:
2863
+ 			printCSIPersistentVolumeSource(pv.Spec.CSI, w)
2864 2864
 +		case pv.Spec.CascadeDisk != nil:
2865 2865
 +			printCascadeDiskVolumeSource(pv.Spec.CascadeDisk, w)
2866 2866
  		default:
2867 2867
  			w.Write(LEVEL_1, "<unknown>\n")
2868 2868
  		}
2869
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/security/podsecuritypolicy/util/util.go cascade-kubernetes/pkg/security/podsecuritypolicy/util/util.go
2870
-+++ cascade-kubernetes/pkg/security/podsecuritypolicy/util/util.go	2018-01-31 02:12:47.000000000 +0000
2871
-@@ -67,6 +67,7 @@
2872
- 		string(extensions.Projected),
2869
+Binary files kubernetes-original/pkg/security/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/security/._.DS_Store differ
2870
+Binary files kubernetes-original/pkg/security/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/security/.DS_Store differ
2871
+Binary files kubernetes-original/pkg/security/podsecuritypolicy/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/security/podsecuritypolicy/._.DS_Store differ
2872
+Binary files kubernetes-original/pkg/security/podsecuritypolicy/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/security/podsecuritypolicy/.DS_Store differ
2873
+diff --no-dereference -uNr kubernetes-original/pkg/security/podsecuritypolicy/util/util.go kubernetes-modified/src/k8s.io/kubernetes/pkg/security/podsecuritypolicy/util/util.go
2874
+--- kubernetes-original/pkg/security/podsecuritypolicy/util/util.go	2018-03-20 19:21:10.000000000 +0000
2875
+@@ -68,6 +68,7 @@
2873 2876
  		string(extensions.PortworxVolume),
2874 2877
  		string(extensions.ScaleIO),
2878
+ 		string(extensions.CSI),
2875 2879
 +		string(extensions.CascadeDisk),
2876 2880
  	)
2877 2881
  	return fstypes
2878 2882
  }
2879
-@@ -128,6 +129,8 @@
2883
+@@ -129,6 +130,8 @@
2880 2884
  		return extensions.PortworxVolume, nil
2881 2885
  	case v.ScaleIO != nil:
2882 2886
  		return extensions.ScaleIO, nil
... ...
@@ -2886,10 +2898,10 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/security/podsecuritypolicy/util/
2886 2886
  	}
2887 2887
  
2888 2888
  	return "", fmt.Errorf("unknown volume type for volume: %#v", v)
2889
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go cascade-kubernetes/pkg/volume/cascade_disk/attacher.go
2890
-+++ cascade-kubernetes/pkg/volume/cascade_disk/attacher.go	2018-01-31 02:12:47.000000000 +0000
2891
-@@ -0,0 +1,278 @@
2889
+diff --no-dereference -uNr kubernetes-original/pkg/volume/cascade_disk/attacher.go kubernetes-modified/src/k8s.io/kubernetes/pkg/volume/cascade_disk/attacher.go
2890
+--- kubernetes-original/pkg/volume/cascade_disk/attacher.go	1970-01-01 00:00:00.000000000 +0000
2891
+@@ -0,0 +1,269 @@
2892 2892
 +package cascade_disk
2893 2893
 +
2894 2894
 +import (
... ...
@@ -2925,7 +2937,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
2925 2925
 +	}
2926 2926
 +
2927 2927
 +	return &cascadeDiskAttacher{
2928
-+		host:        plugin.host,
2928
++		host:         plugin.host,
2929 2929
 +		cascadeDisks: cascadeCloud,
2930 2930
 +	}, nil
2931 2931
 +}
... ...
@@ -2940,22 +2952,13 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
2940 2940
 +		return "", err
2941 2941
 +	}
2942 2942
 +
2943
-+	attached, err := attacher.cascadeDisks.DiskIsAttached(volumeSource.DiskID, nodeName)
2943
++	// cascadeDisks.AttachDisk checks if disk is already attached to the node. So we don't have to do that separately
2944
++	// here.
2945
++	glog.V(4).Infof("Cascade: Attach disk called for host %s", hostName)
2946
++	devicePath, err := attacher.cascadeDisks.AttachDisk(volumeSource.DiskID, nodeName)
2944 2947
 +	if err != nil {
2945
-+		glog.Warningf("Cascade: couldn't check if disk is Attached for host %s, will try attach disk: %+v",
2946
-+			hostName, err)
2947
-+		attached = false
2948
-+	}
2949
-+
2950
-+	var devicePath string
2951
-+	if !attached {
2952
-+		glog.V(4).Infof("Cascade: Attach disk called for host %s", hostName)
2953
-+
2954
-+		devicePath, err = attacher.cascadeDisks.AttachDisk(volumeSource.DiskID, nodeName)
2955
-+		if err != nil {
2956
-+			glog.Errorf("Error attaching volume %q to node %q: %+v", volumeSource.DiskID, nodeName, err)
2957
-+			return "", err
2958
-+		}
2948
++		glog.Errorf("Error attaching volume %q to node %q: %+v", volumeSource.DiskID, nodeName, err)
2949
++		return "", err
2959 2950
 +	}
2960 2951
 +
2961 2952
 +	// Cacsade uses device names of the format /dev/sdX, but newer Linux Kernels mount them under /dev/xvdX
... ...
@@ -3026,7 +3029,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
3026 3026
 +			checkPath, err := verifyDevicePath(devicePath)
3027 3027
 +			if err != nil {
3028 3028
 +				// Log error, if any, and continue checking periodically. See issue #11321
3029
-+				glog.Warningf("Cascade attacher: WaitForAttach with devicePath %s Checking PD %s Error verify " +
3029
++				glog.Warningf("Cascade attacher: WaitForAttach with devicePath %s Checking PD %s Error verify "+
3030 3030
 +					"path", devicePath, volumeSource.DiskID)
3031 3031
 +			} else if checkPath != "" {
3032 3032
 +				// A device path has successfully been created for the disk
... ...
@@ -3034,7 +3037,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
3034 3034
 +				return devicePath, nil
3035 3035
 +			}
3036 3036
 +		case <-timer.C:
3037
-+			return "", fmt.Errorf("Could not find attached disk %s. Timeout waiting for mount paths to be " +
3037
++			return "", fmt.Errorf("Could not find attached disk %s. Timeout waiting for mount paths to be "+
3038 3038
 +				"created.", volumeSource.DiskID)
3039 3039
 +		}
3040 3040
 +	}
... ...
@@ -3111,7 +3114,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
3111 3111
 +	}
3112 3112
 +
3113 3113
 +	return &cascadeDiskDetacher{
3114
-+		mounter:     plugin.host.GetMounter(plugin.GetPluginName()),
3114
++		mounter:      plugin.host.GetMounter(plugin.GetPluginName()),
3115 3115
 +		cascadeDisks: cascadeCloud,
3116 3116
 +	}, nil
3117 3117
 +}
... ...
@@ -3124,13 +3127,13 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
3124 3124
 +	if err != nil {
3125 3125
 +		// Log error and continue with detach
3126 3126
 +		glog.Errorf(
3127
-+			"Error checking if persistent disk (%q) is already attached to current node (%q). " +
3127
++			"Error checking if persistent disk (%q) is already attached to current node (%q). "+
3128 3128
 +				"Will continue and try detach anyway. err=%v", diskID, hostName, err)
3129 3129
 +	}
3130 3130
 +
3131 3131
 +	if err == nil && !attached {
3132 3132
 +		// Volume is already detached from node.
3133
-+		glog.V(4).Infof("detach operation was successful. persistent disk %q is already detached " +
3133
++		glog.V(4).Infof("detach operation was successful. persistent disk %q is already detached "+
3134 3134
 +			"from node %q.", diskID, hostName)
3135 3135
 +		return nil
3136 3136
 +	}
... ...
@@ -3168,9 +3171,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/attacher.go
3168 3168
 +func (detacher *cascadeDiskDetacher) UnmountDevice(deviceMountPath string) error {
3169 3169
 +	return volumeutil.UnmountPath(deviceMountPath, detacher.mounter)
3170 3170
 +}
3171
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/BUILD cascade-kubernetes/pkg/volume/cascade_disk/BUILD
3172
-+++ cascade-kubernetes/pkg/volume/cascade_disk/BUILD	2018-01-31 02:12:47.000000000 +0000
3171
+diff --no-dereference -uNr kubernetes-original/pkg/volume/cascade_disk/BUILD kubernetes-modified/src/k8s.io/kubernetes/pkg/volume/cascade_disk/BUILD
3172
+--- kubernetes-original/pkg/volume/cascade_disk/BUILD	1970-01-01 00:00:00.000000000 +0000
3173 3173
 @@ -0,0 +1,43 @@
3174 3174
 +package(default_visibility = ["//visibility:public"])
3175 3175
 +
... ...
@@ -3215,9 +3218,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/BUILD cascad
3215 3215
 +    srcs = [":package-srcs"],
3216 3216
 +    tags = ["automanaged"],
3217 3217
 +)
3218
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_disk.go cascade-kubernetes/pkg/volume/cascade_disk/cascade_disk.go
3219
-+++ cascade-kubernetes/pkg/volume/cascade_disk/cascade_disk.go	2018-01-31 02:12:47.000000000 +0000
3218
+diff --no-dereference -uNr kubernetes-original/pkg/volume/cascade_disk/cascade_disk.go kubernetes-modified/src/k8s.io/kubernetes/pkg/volume/cascade_disk/cascade_disk.go
3219
+--- kubernetes-original/pkg/volume/cascade_disk/cascade_disk.go	1970-01-01 00:00:00.000000000 +0000
3220 3220
 @@ -0,0 +1,391 @@
3221 3221
 +package cascade_disk
3222 3222
 +
... ...
@@ -3611,9 +3614,9 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_disk
3611 3611
 +	return nil, false, fmt.Errorf("Spec does not reference a Cascade disk type")
3612 3612
 +}
3613 3613
 \ No newline at end of file
3614
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_util.go cascade-kubernetes/pkg/volume/cascade_disk/cascade_util.go
3615
-+++ cascade-kubernetes/pkg/volume/cascade_disk/cascade_util.go	2018-01-31 02:12:47.000000000 +0000
3614
+diff --no-dereference -uNr kubernetes-original/pkg/volume/cascade_disk/cascade_util.go kubernetes-modified/src/k8s.io/kubernetes/pkg/volume/cascade_disk/cascade_util.go
3615
+--- kubernetes-original/pkg/volume/cascade_disk/cascade_util.go	1970-01-01 00:00:00.000000000 +0000
3616 3616
 @@ -0,0 +1,107 @@
3617 3617
 +package cascade_disk
3618 3618
 +
... ...
@@ -3722,23 +3725,31 @@ diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/cascade_util
3722 3722
 +	}
3723 3723
 +	return cc, nil
3724 3724
 +}
3725
-diff -uNr --no-dereference kubernetes-1.8.1/pkg/volume/cascade_disk/OWNERS cascade-kubernetes/pkg/volume/cascade_disk/OWNERS
3726
-+++ cascade-kubernetes/pkg/volume/cascade_disk/OWNERS	2018-01-31 02:12:47.000000000 +0000
3725
+diff --no-dereference -uNr kubernetes-original/pkg/volume/cascade_disk/OWNERS kubernetes-modified/src/k8s.io/kubernetes/pkg/volume/cascade_disk/OWNERS
3726
+--- kubernetes-original/pkg/volume/cascade_disk/OWNERS	1970-01-01 00:00:00.000000000 +0000
3727 3727
 @@ -0,0 +1,2 @@
3728 3728
 +maintainers:
3729 3729
 +- ashokc
3730
-diff -uNr --no-dereference kubernetes-1.8.1/plugin/pkg/admission/persistentvolume/label/admission.go cascade-kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go
3731
-+++ cascade-kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go	2018-01-31 02:12:47.000000000 +0000
3732
-@@ -31,6 +31,7 @@
3730
+Binary files kubernetes-original/pkg/volume/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/volume/._.DS_Store differ
3731
+Binary files kubernetes-original/pkg/volume/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/pkg/volume/.DS_Store differ
3732
+Binary files kubernetes-original/plugin/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/._.DS_Store differ
3733
+Binary files kubernetes-original/plugin/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/.DS_Store differ
3734
+Binary files kubernetes-original/plugin/pkg/admission/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/pkg/admission/._.DS_Store differ
3735
+Binary files kubernetes-original/plugin/pkg/admission/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/pkg/admission/.DS_Store differ
3736
+Binary files kubernetes-original/plugin/pkg/admission/persistentvolume/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/._.DS_Store differ
3737
+Binary files kubernetes-original/plugin/pkg/admission/persistentvolume/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/.DS_Store differ
3738
+diff --no-dereference -uNr kubernetes-original/plugin/pkg/admission/persistentvolume/label/admission.go kubernetes-modified/src/k8s.io/kubernetes/plugin/pkg/admission/persistentvolume/label/admission.go
3739
+--- kubernetes-original/plugin/pkg/admission/persistentvolume/label/admission.go	2018-03-20 19:21:10.000000000 +0000
3740
+@@ -27,6 +27,7 @@
3741
+ 	api "k8s.io/kubernetes/pkg/apis/core"
3742
+ 	"k8s.io/kubernetes/pkg/cloudprovider"
3743
+ 	"k8s.io/kubernetes/pkg/cloudprovider/providers/aws"
3744
++	"k8s.io/kubernetes/pkg/cloudprovider/providers/cascade"
3745
+ 	"k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
3733 3746
  	kubeapiserveradmission "k8s.io/kubernetes/pkg/kubeapiserver/admission"
3734 3747
  	kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
3735
- 	vol "k8s.io/kubernetes/pkg/volume"
3736
-+	"k8s.io/kubernetes/pkg/cloudprovider/providers/cascade"
3737
- )
3738
- 
3739
- // Register registers a plugin
3740 3748
 @@ -50,6 +51,7 @@
3741 3749
  	ebsVolumes       aws.Volumes
3742 3750
  	cloudConfig      []byte
... ...
@@ -3746,8 +3757,8 @@ diff -uNr --no-dereference kubernetes-1.8.1/plugin/pkg/admission/persistentvolum
3746 3746
 +	cascadeDisks     cascade.Disks
3747 3747
  }
3748 3748
  
3749
- var _ kubeapiserveradmission.WantsCloudConfig = &persistentVolumeLabel{}
3750
-@@ -101,6 +103,13 @@
3749
+ var _ admission.MutationInterface = &persistentVolumeLabel{}
3750
+@@ -102,6 +104,13 @@
3751 3751
  		}
3752 3752
  		volumeLabels = labels
3753 3753
  	}
... ...
@@ -3761,7 +3772,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/plugin/pkg/admission/persistentvolum
3761 3761
  
3762 3762
  	if len(volumeLabels) != 0 {
3763 3763
  		if volume.Labels == nil {
3764
-@@ -213,3 +222,48 @@
3764
+@@ -214,3 +223,48 @@
3765 3765
  	}
3766 3766
  	return l.gceCloudProvider, nil
3767 3767
  }
... ...
@@ -3810,40 +3821,61 @@ diff -uNr --no-dereference kubernetes-1.8.1/plugin/pkg/admission/persistentvolum
3810 3810
 +	}
3811 3811
 +	return l.cascadeDisks, nil
3812 3812
 +}
3813
-\ No newline at end of file
3814
-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
3815
-+++ cascade-kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go	2018-01-31 02:12:47.000000000 +0000
3816
-@@ -34,6 +34,7 @@
3817
- 		AzureFileVolumeSource
3813
+Binary files kubernetes-original/plugin/pkg/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/pkg/._.DS_Store differ
3814
+Binary files kubernetes-original/plugin/pkg/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/plugin/pkg/.DS_Store differ
3815
+Binary files kubernetes-original/staging/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/._.DS_Store differ
3816
+Binary files kubernetes-original/staging/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/.DS_Store differ
3817
+Binary files kubernetes-original/staging/src/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/._.DS_Store differ
3818
+Binary files kubernetes-original/staging/src/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/.DS_Store differ
3819
+Binary files kubernetes-original/staging/src/k8s.io/api/core/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/api/core/._.DS_Store differ
3820
+Binary files kubernetes-original/staging/src/k8s.io/api/core/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/api/core/.DS_Store differ
3821
+diff --no-dereference -uNr kubernetes-original/staging/src/k8s.io/api/core/v1/generated.pb.go kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/generated.pb.go
3822
+--- kubernetes-original/staging/src/k8s.io/api/core/v1/generated.pb.go	2018-03-20 19:21:10.000000000 +0000
3823
+@@ -35,6 +35,7 @@
3818 3824
  		Binding
3825
+ 		CSIPersistentVolumeSource
3819 3826
  		Capabilities
3820 3827
 +		CascadeDiskVolumeSource
3821 3828
  		CephFSPersistentVolumeSource
3822 3829
  		CephFSVolumeSource
3823 3830
  		CinderVolumeSource
3824
-@@ -992,6 +993,12 @@
3825
- 	return fileDescriptorGenerated, []int{177}
3826
- }
3831
+@@ -260,9 +261,11 @@
3832
+ func (*AvoidPods) ProtoMessage()               {}
3833
+ func (*AvoidPods) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} }
3827 3834
  
3835
+-func (m *AzureDiskVolumeSource) Reset()                    { *m = AzureDiskVolumeSource{} }
3836
+-func (*AzureDiskVolumeSource) ProtoMessage()               {}
3837
+-func (*AzureDiskVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} }
3828 3838
 +func (m *CascadeDiskVolumeSource) Reset()      { *m = CascadeDiskVolumeSource{} }
3829 3839
 +func (*CascadeDiskVolumeSource) ProtoMessage() {}
3830 3840
 +func (*CascadeDiskVolumeSource) Descriptor() ([]byte, []int) {
3831
-+	return fileDescriptorGenerated, []int{178}
3841
++	return fileDescriptorGenerated, []int{4}
3832 3842
 +}
3843
+ 
3844
+ func (m *AzureFilePersistentVolumeSource) Reset()      { *m = AzureFilePersistentVolumeSource{} }
3845
+ func (*AzureFilePersistentVolumeSource) ProtoMessage() {}
3846
+@@ -1040,6 +1043,11 @@
3847
+ 	return fileDescriptorGenerated, []int{185}
3848
+ }
3849
+ 
3850
++func (m *AzureDiskVolumeSource) Reset()                    { *m = AzureDiskVolumeSource{} }
3851
++func (*AzureDiskVolumeSource) ProtoMessage()               {}
3852
++func (*AzureDiskVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{186} }
3853
++
3833 3854
 +
3834 3855
  func init() {
3835 3856
  	proto.RegisterType((*AWSElasticBlockStoreVolumeSource)(nil), "k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource")
3836 3857
  	proto.RegisterType((*Affinity)(nil), "k8s.io.api.core.v1.Affinity")
3837
-@@ -1002,6 +1009,7 @@
3838
- 	proto.RegisterType((*AzureFileVolumeSource)(nil), "k8s.io.api.core.v1.AzureFileVolumeSource")
3858
+@@ -1051,6 +1059,7 @@
3839 3859
  	proto.RegisterType((*Binding)(nil), "k8s.io.api.core.v1.Binding")
3860
+ 	proto.RegisterType((*CSIPersistentVolumeSource)(nil), "k8s.io.api.core.v1.CSIPersistentVolumeSource")
3840 3861
  	proto.RegisterType((*Capabilities)(nil), "k8s.io.api.core.v1.Capabilities")
3841 3862
 +	proto.RegisterType((*CascadeDiskVolumeSource)(nil), "k8s.io.api.core.v1.CascadeDiskVolumeSource")
3842 3863
  	proto.RegisterType((*CephFSPersistentVolumeSource)(nil), "k8s.io.api.core.v1.CephFSPersistentVolumeSource")
3843 3864
  	proto.RegisterType((*CephFSVolumeSource)(nil), "k8s.io.api.core.v1.CephFSVolumeSource")
3844 3865
  	proto.RegisterType((*CinderVolumeSource)(nil), "k8s.io.api.core.v1.CinderVolumeSource")
3845
-@@ -1523,6 +1531,32 @@
3866
+@@ -1613,6 +1622,32 @@
3846 3867
  	return i, nil
3847 3868
  }
3848 3869
  
... ...
@@ -3876,45 +3908,79 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/gener
3876 3876
  func (m *CephFSPersistentVolumeSource) Marshal() (dAtA []byte, err error) {
3877 3877
  	size := m.Size()
3878 3878
  	dAtA = make([]byte, size)
3879
-@@ -6080,6 +6114,18 @@
3879
+@@ -6283,13 +6318,13 @@
3880 3880
  		}
3881
- 		i += n121
3881
+ 		i += n120
3882 3882
  	}
3883
+-	if m.AzureDisk != nil {
3883 3884
 +	if m.CascadeDisk != nil {
3884
-+		dAtA[i] = 0xb2
3885
+ 		dAtA[i] = 0x82
3886
+ 		i++
3887
+ 		dAtA[i] = 0x1
3888
+ 		i++
3889
+-		i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size()))
3890
+-		n121, err := m.AzureDisk.MarshalTo(dAtA[i:])
3891
++		i = encodeVarintGenerated(dAtA, i, uint64(m.CascadeDisk.Size()))
3892
++		n121, err := m.CascadeDisk.MarshalTo(dAtA[i:])
3893
+ 		if err != nil {
3894
+ 			return 0, err
3895
+ 		}
3896
+@@ -6367,6 +6402,18 @@
3897
+ 		}
3898
+ 		i += n127
3899
+ 	}
3900
++	if m.AzureDisk != nil {
3901
++		dAtA[i] = 0xba
3885 3902
 +		i++
3886 3903
 +		dAtA[i] = 0x1
3887 3904
 +		i++
3888
-+		i = encodeVarintGenerated(dAtA, i, uint64(m.CascadeDisk.Size()))
3889
-+		n122, err := m.CascadeDisk.MarshalTo(dAtA[i:])
3905
++		i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size()))
3906
++		n128, err := m.AzureDisk.MarshalTo(dAtA[i:])
3890 3907
 +		if err != nil {
3891 3908
 +			return 0, err
3892 3909
 +		}
3893
-+		i += n122
3910
++		i += n128
3894 3911
 +	}
3895 3912
  	return i, nil
3896 3913
  }
3897 3914
  
3898
-@@ -9824,6 +9870,18 @@
3915
+@@ -10316,13 +10363,13 @@
3899 3916
  		}
3900
- 		i += n220
3917
+ 		i += n223
3901 3918
  	}
3919
+-	if m.AzureDisk != nil {
3902 3920
 +	if m.CascadeDisk != nil {
3921
+ 		dAtA[i] = 0xb2
3922
+ 		i++
3923
+ 		dAtA[i] = 0x1
3924
+ 		i++
3925
+-		i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size()))
3926
+-		n224, err := m.AzureDisk.MarshalTo(dAtA[i:])
3927
++		i = encodeVarintGenerated(dAtA, i, uint64(m.CascadeDisk.Size()))
3928
++		n224, err := m.CascadeDisk.MarshalTo(dAtA[i:])
3929
+ 		if err != nil {
3930
+ 			return 0, err
3931
+ 		}
3932
+@@ -10388,6 +10435,18 @@
3933
+ 		}
3934
+ 		i += n229
3935
+ 	}
3936
++	if m.AzureDisk != nil {
3903 3937
 +		dAtA[i] = 0xe2
3904 3938
 +		i++
3905 3939
 +		dAtA[i] = 0x1
3906 3940
 +		i++
3907
-+		i = encodeVarintGenerated(dAtA, i, uint64(m.CascadeDisk.Size()))
3908
-+		n221, err := m.CascadeDisk.MarshalTo(dAtA[i:])
3941
++		i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size()))
3942
++		n230, err := m.AzureDisk.MarshalTo(dAtA[i:])
3909 3943
 +		if err != nil {
3910 3944
 +			return 0, err
3911 3945
 +		}
3912
-+		i += n221
3946
++		i += n230
3913 3947
 +	}
3914 3948
  	return i, nil
3915 3949
  }
3916 3950
  
3917
-@@ -10048,6 +10106,16 @@
3951
+@@ -10623,6 +10682,16 @@
3918 3952
  	return n
3919 3953
  }
3920 3954
  
... ...
@@ -3931,29 +3997,51 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/gener
3931 3931
  func (m *CephFSPersistentVolumeSource) Size() (n int) {
3932 3932
  	var l int
3933 3933
  	_ = l
3934
-@@ -11711,6 +11779,10 @@
3935
- 		l = m.StorageOS.Size()
3936
- 		n += 2 + l + sovGenerated(uint64(l))
3934
+@@ -12331,8 +12400,8 @@
3935
+ 		l = m.Quobyte.Size()
3936
+ 		n += 1 + l + sovGenerated(uint64(l))
3937 3937
  	}
3938
+-	if m.AzureDisk != nil {
3939
+-		l = m.AzureDisk.Size()
3938 3940
 +	if m.CascadeDisk != nil {
3939 3941
 +		l = m.CascadeDisk.Size()
3942
+ 		n += 2 + l + sovGenerated(uint64(l))
3943
+ 	}
3944
+ 	if m.PhotonPersistentDisk != nil {
3945
+@@ -12359,6 +12428,10 @@
3946
+ 		l = m.CSI.Size()
3947
+ 		n += 2 + l + sovGenerated(uint64(l))
3948
+ 	}
3949
++	if m.AzureDisk != nil {
3950
++		l = m.AzureDisk.Size()
3940 3951
 +		n += 2 + l + sovGenerated(uint64(l))
3941 3952
 +	}
3942 3953
  	return n
3943 3954
  }
3944 3955
  
3945
-@@ -13055,6 +13127,10 @@
3946
- 		l = m.StorageOS.Size()
3956
+@@ -13788,8 +13861,8 @@
3957
+ 		l = m.Quobyte.Size()
3947 3958
  		n += 2 + l + sovGenerated(uint64(l))
3948 3959
  	}
3960
+-	if m.AzureDisk != nil {
3961
+-		l = m.AzureDisk.Size()
3949 3962
 +	if m.CascadeDisk != nil {
3950 3963
 +		l = m.CascadeDisk.Size()
3964
+ 		n += 2 + l + sovGenerated(uint64(l))
3965
+ 	}
3966
+ 	if m.PhotonPersistentDisk != nil {
3967
+@@ -13812,6 +13885,10 @@
3968
+ 		l = m.StorageOS.Size()
3969
+ 		n += 2 + l + sovGenerated(uint64(l))
3970
+ 	}
3971
++	if m.AzureDisk != nil {
3972
++		l = m.AzureDisk.Size()
3951 3973
 +		n += 2 + l + sovGenerated(uint64(l))
3952 3974
 +	}
3953 3975
  	return n
3954 3976
  }
3955 3977
  
3956
-@@ -13202,6 +13278,17 @@
3978
+@@ -13971,6 +14048,17 @@
3957 3979
  	}, "")
3958 3980
  	return s
3959 3981
  }
... ...
@@ -3971,29 +4059,67 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/gener
3971 3971
  func (this *CephFSPersistentVolumeSource) String() string {
3972 3972
  	if this == nil {
3973 3973
  		return "nil"
3974
-@@ -14532,6 +14619,7 @@
3975
- 		`ScaleIO:` + strings.Replace(fmt.Sprintf("%v", this.ScaleIO), "ScaleIOVolumeSource", "ScaleIOVolumeSource", 1) + `,`,
3974
+@@ -15335,13 +15423,14 @@
3975
+ 		`AzureFile:` + strings.Replace(fmt.Sprintf("%v", this.AzureFile), "AzureFilePersistentVolumeSource", "AzureFilePersistentVolumeSource", 1) + `,`,
3976
+ 		`VsphereVolume:` + strings.Replace(fmt.Sprintf("%v", this.VsphereVolume), "VsphereVirtualDiskVolumeSource", "VsphereVirtualDiskVolumeSource", 1) + `,`,
3977
+ 		`Quobyte:` + strings.Replace(fmt.Sprintf("%v", this.Quobyte), "QuobyteVolumeSource", "QuobyteVolumeSource", 1) + `,`,
3978
+-		`AzureDisk:` + strings.Replace(fmt.Sprintf("%v", this.AzureDisk), "AzureDiskVolumeSource", "AzureDiskVolumeSource", 1) + `,`,
3979
++		`CascadeDisk:` + strings.Replace(fmt.Sprintf("%v", this.CascadeDisk), "CascadeDiskVolumeSource", "CascadeDiskVolumeSource", 1) + `,`,
3980
+ 		`PhotonPersistentDisk:` + strings.Replace(fmt.Sprintf("%v", this.PhotonPersistentDisk), "PhotonPersistentDiskVolumeSource", "PhotonPersistentDiskVolumeSource", 1) + `,`,
3981
+ 		`PortworxVolume:` + strings.Replace(fmt.Sprintf("%v", this.PortworxVolume), "PortworxVolumeSource", "PortworxVolumeSource", 1) + `,`,
3982
+ 		`ScaleIO:` + strings.Replace(fmt.Sprintf("%v", this.ScaleIO), "ScaleIOPersistentVolumeSource", "ScaleIOPersistentVolumeSource", 1) + `,`,
3976 3983
  		`Local:` + strings.Replace(fmt.Sprintf("%v", this.Local), "LocalVolumeSource", "LocalVolumeSource", 1) + `,`,
3977 3984
  		`StorageOS:` + strings.Replace(fmt.Sprintf("%v", this.StorageOS), "StorageOSPersistentVolumeSource", "StorageOSPersistentVolumeSource", 1) + `,`,
3978
-+		`CascadeDisk:` + strings.Replace(fmt.Sprintf("%v", this.CascadeDisk), "CascadeDiskVolumeSource", "CascadeDiskVolumeSource", 1) + `,`,
3985
+ 		`CSI:` + strings.Replace(fmt.Sprintf("%v", this.CSI), "CSIPersistentVolumeSource", "CSIPersistentVolumeSource", 1) + `,`,
3986
++		`AzureDisk:` + strings.Replace(fmt.Sprintf("%v", this.AzureDisk), "AzureDiskVolumeSource", "AzureDiskVolumeSource", 1) + `,`,
3979 3987
  		`}`,
3980 3988
  	}, "")
3981 3989
  	return s
3982
-@@ -15592,6 +15680,7 @@
3990
+@@ -16468,12 +16557,13 @@
3991
+ 		`ConfigMap:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMap), "ConfigMapVolumeSource", "ConfigMapVolumeSource", 1) + `,`,
3992
+ 		`VsphereVolume:` + strings.Replace(fmt.Sprintf("%v", this.VsphereVolume), "VsphereVirtualDiskVolumeSource", "VsphereVirtualDiskVolumeSource", 1) + `,`,
3993
+ 		`Quobyte:` + strings.Replace(fmt.Sprintf("%v", this.Quobyte), "QuobyteVolumeSource", "QuobyteVolumeSource", 1) + `,`,
3994
+-		`AzureDisk:` + strings.Replace(fmt.Sprintf("%v", this.AzureDisk), "AzureDiskVolumeSource", "AzureDiskVolumeSource", 1) + `,`,
3995
++		`CascadeDisk:` + strings.Replace(fmt.Sprintf("%v", this.CascadeDisk), "CascadeDiskVolumeSource", "CascadeDiskVolumeSource", 1) + `,`,
3996
+ 		`PhotonPersistentDisk:` + strings.Replace(fmt.Sprintf("%v", this.PhotonPersistentDisk), "PhotonPersistentDiskVolumeSource", "PhotonPersistentDiskVolumeSource", 1) + `,`,
3997
+ 		`PortworxVolume:` + strings.Replace(fmt.Sprintf("%v", this.PortworxVolume), "PortworxVolumeSource", "PortworxVolumeSource", 1) + `,`,
3983 3998
  		`ScaleIO:` + strings.Replace(fmt.Sprintf("%v", this.ScaleIO), "ScaleIOVolumeSource", "ScaleIOVolumeSource", 1) + `,`,
3984 3999
  		`Projected:` + strings.Replace(fmt.Sprintf("%v", this.Projected), "ProjectedVolumeSource", "ProjectedVolumeSource", 1) + `,`,
3985 4000
  		`StorageOS:` + strings.Replace(fmt.Sprintf("%v", this.StorageOS), "StorageOSVolumeSource", "StorageOSVolumeSource", 1) + `,`,
3986
-+		`CascadeDisk:` + strings.Replace(fmt.Sprintf("%v", this.CascadeDisk), "CascadeDiskVolumeSource", "CascadeDiskVolumeSource", 1) + `,`,
4001
++		`AzureDisk:` + strings.Replace(fmt.Sprintf("%v", this.AzureDisk), "AzureDiskVolumeSource", "AzureDiskVolumeSource", 1) + `,`,
3987 4002
  		`}`,
3988 4003
  	}, "")
3989 4004
  	return s
3990
-@@ -32799,6 +32888,39 @@
4005
+@@ -34322,7 +34412,7 @@
4006
+ 			iNdEx = postIndex
4007
+ 		case 16:
4008
+ 			if wireType != 2 {
4009
+-				return fmt.Errorf("proto: wrong wireType = %d for field AzureDisk", wireType)
4010
++				return fmt.Errorf("proto: wrong wireType = %d for field CascadeDisk", wireType)
4011
+ 			}
4012
+ 			var msglen int
4013
+ 			for shift := uint(0); ; shift += 7 {
4014
+@@ -34346,10 +34436,10 @@
4015
+ 			if postIndex > l {
4016
+ 				return io.ErrUnexpectedEOF
4017
+ 			}
4018
+-			if m.AzureDisk == nil {
4019
+-				m.AzureDisk = &AzureDiskVolumeSource{}
4020
++			if m.CascadeDisk == nil {
4021
++				m.CascadeDisk = &CascadeDiskVolumeSource{}
4022
+ 			}
4023
+-			if err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4024
++			if err := m.CascadeDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4025
+ 				return err
4026
+ 			}
4027
+ 			iNdEx = postIndex
4028
+@@ -34551,6 +34641,39 @@
3991 4029
  				return err
3992 4030
  			}
3993 4031
  			iNdEx = postIndex
3994
-+		case 22:
4032
++		case 23:
3995 4033
 +			if wireType != 2 {
3996
-+				return fmt.Errorf("proto: wrong wireType = %d for field CascadeDisk", wireType)
4034
++				return fmt.Errorf("proto: wrong wireType = %d for field AzureDisk", wireType)
3997 4035
 +			}
3998 4036
 +			var msglen int
3999 4037
 +			for shift := uint(0); ; shift += 7 {
... ...
@@ -4017,17 +4143,17 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/gener
4017 4017
 +			if postIndex > l {
4018 4018
 +				return io.ErrUnexpectedEOF
4019 4019
 +			}
4020
-+			if m.CascadeDisk == nil {
4021
-+				m.CascadeDisk = &CascadeDiskVolumeSource{}
4020
++			if m.AzureDisk == nil {
4021
++				m.AzureDisk = &AzureDiskVolumeSource{}
4022 4022
 +			}
4023
-+			if err := m.CascadeDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4023
++			if err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4024 4024
 +				return err
4025 4025
 +			}
4026 4026
 +			iNdEx = postIndex
4027 4027
  		default:
4028 4028
  			iNdEx = preIndex
4029 4029
  			skippy, err := skipGenerated(dAtA[iNdEx:])
4030
-@@ -33307,6 +33429,114 @@
4030
+@@ -35089,6 +35212,114 @@
4031 4031
  	}
4032 4032
  	return nil
4033 4033
  }
... ...
@@ -4142,13 +4268,36 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/gener
4142 4142
  func (m *PhotonPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error {
4143 4143
  	l := len(dAtA)
4144 4144
  	iNdEx := 0
4145
-@@ -45941,6 +46171,39 @@
4145
+@@ -48522,7 +48753,7 @@
4146
+ 			iNdEx = postIndex
4147
+ 		case 22:
4148
+ 			if wireType != 2 {
4149
+-				return fmt.Errorf("proto: wrong wireType = %d for field AzureDisk", wireType)
4150
++				return fmt.Errorf("proto: wrong wireType = %d for field CascadeDisk", wireType)
4151
+ 			}
4152
+ 			var msglen int
4153
+ 			for shift := uint(0); ; shift += 7 {
4154
+@@ -48546,10 +48777,10 @@
4155
+ 			if postIndex > l {
4156
+ 				return io.ErrUnexpectedEOF
4157
+ 			}
4158
+-			if m.AzureDisk == nil {
4159
+-				m.AzureDisk = &AzureDiskVolumeSource{}
4160
++			if m.CascadeDisk == nil {
4161
++				m.CascadeDisk = &CascadeDiskVolumeSource{}
4162
+ 			}
4163
+-			if err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4164
++			if err := m.CascadeDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4165
+ 				return err
4166
+ 			}
4167
+ 			iNdEx = postIndex
4168
+@@ -48718,6 +48949,39 @@
4146 4169
  				return err
4147 4170
  			}
4148 4171
  			iNdEx = postIndex
4149 4172
 +		case 28:
4150 4173
 +			if wireType != 2 {
4151
-+				return fmt.Errorf("proto: wrong wireType = %d for field CascadeDisk", wireType)
4174
++				return fmt.Errorf("proto: wrong wireType = %d for field AzureDisk", wireType)
4152 4175
 +			}
4153 4176
 +			var msglen int
4154 4177
 +			for shift := uint(0); ; shift += 7 {
... ...
@@ -4172,38 +4321,64 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/gener
4172 4172
 +			if postIndex > l {
4173 4173
 +				return io.ErrUnexpectedEOF
4174 4174
 +			}
4175
-+			if m.CascadeDisk == nil {
4176
-+				m.CascadeDisk = &CascadeDiskVolumeSource{}
4175
++			if m.AzureDisk == nil {
4176
++				m.AzureDisk = &AzureDiskVolumeSource{}
4177 4177
 +			}
4178
-+			if err := m.CascadeDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4178
++			if err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
4179 4179
 +				return err
4180 4180
 +			}
4181 4181
 +			iNdEx = postIndex
4182 4182
  		default:
4183 4183
  			iNdEx = preIndex
4184 4184
  			skippy, err := skipGenerated(dAtA[iNdEx:])
4185
-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
4186
-+++ cascade-kubernetes/staging/src/k8s.io/api/core/v1/types.go	2018-01-31 02:12:47.000000000 +0000
4187
-@@ -350,6 +350,8 @@
4185
+diff --no-dereference -uNr kubernetes-original/staging/src/k8s.io/api/core/v1/types.go kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/api/core/v1/types.go
4186
+--- kubernetes-original/staging/src/k8s.io/api/core/v1/types.go	2018-03-20 19:21:10.000000000 +0000
4187
+@@ -333,9 +333,8 @@
4188
+ 	// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
4189
+ 	// +optional
4190
+ 	Quobyte *QuobyteVolumeSource `json:"quobyte,omitempty" protobuf:"bytes,21,opt,name=quobyte"`
4191
+-	// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
4192
+-	// +optional
4193
+-	AzureDisk *AzureDiskVolumeSource `json:"azureDisk,omitempty" protobuf:"bytes,22,opt,name=azureDisk"`
4194
++	// CascadeDisk represents a Cascade persistent disk attached and mounted on kubelets host machine
4195
++	CascadeDisk *CascadeDiskVolumeSource `json:"cascadeDisk,omitempty" protobuf:"bytes,22,opt,name=cascadeDisk"`
4196
+ 	// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
4197
+ 	PhotonPersistentDisk *PhotonPersistentDiskVolumeSource `json:"photonPersistentDisk,omitempty" protobuf:"bytes,23,opt,name=photonPersistentDisk"`
4198
+ 	// Items for all in one resources secrets, configmaps, and downward API
4199
+@@ -349,6 +348,9 @@
4188 4200
  	// StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
4189 4201
  	// +optional
4190 4202
  	StorageOS *StorageOSVolumeSource `json:"storageos,omitempty" protobuf:"bytes,27,opt,name=storageos"`
4191
-+	// CascadeDisk represents a Cascade persistent disk attached and mounted on kubelets host machine
4192
-+	CascadeDisk *CascadeDiskVolumeSource `json:"cascadeDisk,omitempty" protobuf:"bytes,28,opt,name=cascadeDisk"`
4203
++	// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
4204
++	// +optional
4205
++	AzureDisk *AzureDiskVolumeSource `json:"azureDisk,omitempty" protobuf:"bytes,28,opt,name=azureDisk"`
4193 4206
  }
4194 4207
  
4195 4208
  // PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.
4196
-@@ -448,6 +450,8 @@
4197
- 	// More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
4209
+@@ -428,9 +430,8 @@
4210
+ 	// Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
4198 4211
  	// +optional
4199
- 	StorageOS *StorageOSPersistentVolumeSource `json:"storageos,omitempty" protobuf:"bytes,21,opt,name=storageos"`
4212
+ 	Quobyte *QuobyteVolumeSource `json:"quobyte,omitempty" protobuf:"bytes,15,opt,name=quobyte"`
4213
+-	// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
4214
+-	// +optional
4215
+-	AzureDisk *AzureDiskVolumeSource `json:"azureDisk,omitempty" protobuf:"bytes,16,opt,name=azureDisk"`
4200 4216
 +	// CascadeDisk represents a Cascade persistent disk attached and mounted on kubelets host machine
4201
-+	CascadeDisk *CascadeDiskVolumeSource `json:"cascadeDisk,omitempty" protobuf:"bytes,22,opt,name=cascadeDisk"`
4217
++	CascadeDisk *CascadeDiskVolumeSource `json:"cascadeDisk,omitempty" protobuf:"bytes,16,opt,name=cascadeDisk"`
4218
+ 	// PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
4219
+ 	PhotonPersistentDisk *PhotonPersistentDiskVolumeSource `json:"photonPersistentDisk,omitempty" protobuf:"bytes,17,opt,name=photonPersistentDisk"`
4220
+ 	// PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
4221
+@@ -449,6 +450,9 @@
4222
+ 	// CSI represents storage that handled by an external CSI driver
4223
+ 	// +optional
4224
+ 	CSI *CSIPersistentVolumeSource `json:"csi,omitempty" protobuf:"bytes,22,opt,name=csi"`
4225
++	// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
4226
++	// +optional
4227
++	AzureDisk *AzureDiskVolumeSource `json:"azureDisk,omitempty" protobuf:"bytes,23,opt,name=azureDisk"`
4202 4228
  }
4203 4229
  
4204 4230
  const (
4205
-@@ -1431,6 +1435,16 @@
4231
+@@ -1578,6 +1582,16 @@
4206 4232
  	SecretRef *ObjectReference `json:"secretRef,omitempty" protobuf:"bytes,5,opt,name=secretRef"`
4207 4233
  }
4208 4234
  
... ...
@@ -4220,3 +4395,7 @@ diff -uNr --no-dereference kubernetes-1.8.1/staging/src/k8s.io/api/core/v1/types
4220 4220
  // Adapts a ConfigMap into a volume.
4221 4221
  //
4222 4222
  // The contents of the target ConfigMap's Data field will be presented in a
4223
+Binary files kubernetes-original/staging/src/k8s.io/api/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/api/._.DS_Store differ
4224
+Binary files kubernetes-original/staging/src/k8s.io/api/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/api/.DS_Store differ
4225
+Binary files kubernetes-original/staging/src/k8s.io/._.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/._.DS_Store differ
4226
+Binary files kubernetes-original/staging/src/k8s.io/.DS_Store and kubernetes-modified/src/k8s.io/kubernetes/staging/src/k8s.io/.DS_Store differ
... ...
@@ -1,11 +1,11 @@
1 1
 Summary:        Kubernetes cluster management
2 2
 Name:           kubernetes
3
-Version:        1.8.1
4
-Release:        5%{?dist}
3
+Version:        1.9.6
4
+Release:        1%{?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
8
-%define sha1    kubernetes-v%{version}.tar.gz=74bad7a52f3fc0b3c70e5ccc986a46a9fdfe358b
8
+%define sha1    kubernetes-v%{version}.tar.gz=6996c0690a38cda1ae5479a4dde7ebfeb590e5fb
9 9
 Source1:        https://github.com/kubernetes/contrib/archive/contrib-0.7.0.tar.gz
10 10
 %define sha1    contrib-0.7.0=47a744da3b396f07114e518226b6313ef4b2203c
11 11
 Patch0:         k8s-cascade.patch
... ...
@@ -62,7 +62,7 @@ popd
62 62
 install -vdm644 %{buildroot}/etc/profile.d
63 63
 install -m 755 -d %{buildroot}%{_bindir}
64 64
 
65
-binaries=(cloud-controller-manager hyperkube kube-aggregator kube-apiserver kube-controller-manager kubelet kube-proxy kube-scheduler kubectl kubefed)
65
+binaries=(cloud-controller-manager hyperkube kube-aggregator kube-apiserver kube-controller-manager kubelet kube-proxy kube-scheduler kubectl)
66 66
 for bin in "${binaries[@]}"; do
67 67
   echo "+++ INSTALLING ${bin}"
68 68
   install -p -m 755 -t %{buildroot}%{_bindir} _output/local/bin/linux/amd64/${bin}
... ...
@@ -156,7 +156,7 @@ fi
156 156
 %{_bindir}/kube-proxy
157 157
 %{_bindir}/kube-scheduler
158 158
 %{_bindir}/kubectl
159
-%{_bindir}/kubefed
159
+#%{_bindir}/kubefed
160 160
 %{_lib}/systemd/system/kube-apiserver.service
161 161
 %{_lib}/systemd/system/kubelet.service
162 162
 %{_lib}/systemd/system/kube-scheduler.service
... ...
@@ -185,6 +185,8 @@ fi
185 185
 %{_bindir}/pause-amd64
186 186
 
187 187
 %changelog
188
+*   Wed Mar 21 2018 Dheeraj Shetty <dheerajs@vmware.com> 1.9.6-1
189
+-   k8s v1.9.6 and Cascade Cloud Provider patch
188 190
 *   Tue Jan 30 2018 Ashok Chandrasekar <ashokc@vmware.com> 1.8.1-5
189 191
 -   Fix issue in Cascade cloud provider.
190 192
 *   Tue Jan 23 2018 Ashok Chandrasekar <ashokc@vmware.com> 1.8.1-4
... ...
@@ -1,11 +1,11 @@
1 1
 Summary:        NGINX Ingress Controller for Kubernetes
2 2
 Name:           nginx-ingress
3
-Version:        0.9.0
3
+Version:        1.1.1
4 4
 Release:        1%{?dist}
5 5
 License:        Apache-2.0
6 6
 URL:            https://github.com/nginxinc/kubernetes-ingress
7 7
 Source0:        %{name}-%{version}.tar.gz
8
-%define sha1 nginx-ingress=ea71044b1c8298c85cf5f0971100f735f99240ce
8
+%define sha1 nginx-ingress=3978c365d3b83d9c454bde936411a95047ff1320
9 9
 Group:          Development/Tools
10 10
 Vendor:         VMware, Inc.
11 11
 Distribution:   Photon
... ...
@@ -37,5 +37,7 @@ install -vpm 0755 -t %{buildroot}/usr/share/nginx-ingress/docker/ nginx/template
37 37
 /usr/share/nginx-ingress/docker/nginx.*
38 38
 
39 39
 %changelog
40
+*   Wed Mar 21 2018 Dheeraj Shetty <dheerajs@vmware.com> 1.1.1-1
41
+-   Bumped up version to 1.1.1.
40 42
 *   Mon Aug 28 2017 Vinay Kulkarni <kulkarniv@vmware.com> 0.9.0-1
41 43
 -   K8S NGINX Ingress Controller for PhotonOS.