Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
e157b6b
update to Go 1.12.4
pohly Apr 15, 2019
a4995d0
Merge commit 'e157b6b514ace191f46d4c879491cb7d11684659' into release-…
pohly Apr 15, 2019
0bee749
Merge pull request #18 from pohly/go-version
k8s-ci-robot Apr 15, 2019
52fe6a1
Merge pull request #140 from pohly/release-tools
k8s-ci-robot Apr 15, 2019
0bb7065
Added backoff parameters to external attacher
barp Apr 16, 2019
4104865
Fixed framework_test.go to pass the new required parameters
barp Apr 16, 2019
e16f1bc
Merge pull request #141 from barp/master
k8s-ci-robot Apr 16, 2019
b6eaa51
Added new command line arguments --retry-interval-start and
barp Apr 18, 2019
1efaaf8
Merge pull request #142 from barp/master
k8s-ci-robot Apr 18, 2019
a53ef38
fix default leader election type
mlmhl Apr 24, 2019
e18bd66
Merge pull request #144 from mlmhl/leader-electino-type
k8s-ci-robot Apr 25, 2019
1425846
Update RBAC for CSINode
lpabon Apr 25, 2019
bf1237f
Merge pull request #146 from lpabon/update-rbac
k8s-ci-robot Apr 26, 2019
066143d
build.make: allow repos to use 'go mod' for vendoring
pohly May 10, 2019
0399988
Merge pull request #19 from pohly/go-mod-vendor
k8s-ci-robot May 13, 2019
f953647
Use patch to replace update
May 10, 2019
3cb3d2f
Merge pull request #149 from cwdsuzhou/json_patch
k8s-ci-robot May 17, 2019
2e5b1be
update rbac for secret
hoyho Jun 5, 2019
08983ee
Merge pull request #152 from hoyho/bugfix/secret_permission
k8s-ci-robot Jun 6, 2019
6e29c74
Update vendor of k8s.io/api to 1.15 for volumeattachment API updates
ddebroy Jun 8, 2019
16260ee
Add support for attachment of inline volumes migrated to CSI
ddebroy Jun 11, 2019
b73cf2a
Merge pull request #154 from ddebroy/inline2
k8s-ci-robot Jun 12, 2019
844ec92
Bump version of csi-translation-lib to master to include translation …
davidz627 Jun 17, 2019
df49834
Merge pull request #156 from davidz627/fix/ff
k8s-ci-robot Jun 17, 2019
7c8996b
Revert "Use patch to replace update"
jsafrane Jun 18, 2019
71c873a
Add issue number to PATCH TODO
jsafrane Jun 20, 2019
7ebc037
Merge pull request #157 from jsafrane/revert-patch
k8s-ci-robot Jun 20, 2019
16465d7
Add 1.2 changelog with notable features and update kubernetes required
davidz627 Jun 12, 2019
834bae5
Merge pull request #155 from davidz627/fix/changelog
k8s-ci-robot Jun 21, 2019
b2f4e05
prow.sh: flexible test driver config
pohly Jul 8, 2019
db8abb6
Merge pull request #20 from pohly/test-driver-config
k8s-ci-robot Jul 8, 2019
a6f21d4
Add variables for 1.15
msau42 Jul 11, 2019
ecc7918
Update kind to v0.4.0. This requires overriding Kubernetes versions
msau42 Jul 11, 2019
4b6fa4a
Update hostpath version for sidecar testing to v1.2.0-rc2
msau42 Jul 11, 2019
4e31f07
Change default hostpath driver name to hostpath.csi.k8s.io
msau42 Jul 12, 2019
f4f73ce
Merge pull request #21 from msau42/add-1.15-jobs
k8s-ci-robot Jul 12, 2019
91b90d9
release-tools: support Kubernetes 1.15
pohly Jul 12, 2019
cb185bd
Merge pull request #159 from pohly/prow-update
k8s-ci-robot Jul 12, 2019
0c0dc30
prow.sh: tag master images with a large version number
msau42 Jul 15, 2019
1cac3af
Merge pull request #22 from msau42/add-1.15-jobs
k8s-ci-robot Jul 16, 2019
d82429e
release-tools: update
pohly Jul 16, 2019
ace52bc
Merge pull request #160 from pohly/prow-update-master
k8s-ci-robot Jul 16, 2019
b83b26b
Translate PV so that the pvSpec is also translated for things like Ac…
davidz627 Jul 16, 2019
e4b1060
Merge pull request #163 from davidz627/fix/migrationSpec
k8s-ci-robot Jul 17, 2019
452b089
Fixed ControllerUnpublish error handling
jsafrane Aug 8, 2019
f304b8b
Merge pull request #165 from jsafrane/fix-detach-error
k8s-ci-robot Aug 8, 2019
f46191d
Kubernetes master changed the way that releases are tagged, which needed
msau42 Aug 5, 2019
aa85b82
Merge pull request #23 from msau42/fix-master-jobs
k8s-ci-robot Aug 9, 2019
9e80f5c
release-tools: update
msau42 Aug 9, 2019
8615e16
Merge pull request #167 from msau42/prow-update-master
k8s-ci-robot Aug 12, 2019
c2ed912
2.0 prep: Remove deprecated flags
jsafrane Aug 15, 2019
4ac5289
Fix name of retry-interval-end parameter
jsafrane Aug 15, 2019
b0b0982
Revert "Revert "Use patch to replace update""
jsafrane Aug 15, 2019
f622643
Merge pull request #174 from jsafrane/fix-retry-interval-end
k8s-ci-robot Aug 15, 2019
8478829
Restore disabled unit test
jsafrane Aug 16, 2019
298f850
Remove `--dummy` parameter
jsafrane Aug 16, 2019
b35db9d
Remove old CRD-based informer
jsafrane Aug 16, 2019
c745c0f
Merge pull request #173 from jsafrane/remove-deprecated-flags
k8s-ci-robot Aug 16, 2019
d1fdcd6
Merge pull request #177 from jsafrane/use-patch-2
k8s-ci-robot Aug 16, 2019
dc0a5d8
Update kind to v0.5.0
msau42 Aug 21, 2019
69530e2
make worker-threads configurable
hoyho Aug 13, 2019
ea63959
Merge pull request #175 from hoyho/feat/worker-config
k8s-ci-robot Aug 22, 2019
0400867
Merge pull request #25 from msau42/fix-master-jobs
k8s-ci-robot Aug 27, 2019
9fba09b
Add rule for building Windows binaries
ddebroy Aug 28, 2019
f85ab5a
Merge pull request #26 from ddebroy/windows1
k8s-ci-robot Aug 28, 2019
35ceaed
prow.sh: install dep if needed
pohly Aug 29, 2019
df8530d
Merge pull request #27 from pohly/dep-vendor-check
k8s-ci-robot Aug 29, 2019
a8ea8bc
create 2-node kind cluster since topology support is added to hostpat…
mucahitkurt Sep 6, 2019
2d33550
Merge pull request #29 from mucahitkurt/create-2-node-kind-cluster
k8s-ci-robot Sep 7, 2019
ea2f1b5
build windows binaries with .exe suffix
msau42 Sep 7, 2019
6ecaa76
Merge pull request #30 from msau42/fix-windows
k8s-ci-robot Sep 7, 2019
002a835
Merge commit '6ecaa76eb94a5b30907fccdccbd678e53887298d' into prow-upd…
msau42 Sep 7, 2019
0acde82
Merge pull request #180 from msau42/prow-update-master
k8s-ci-robot Sep 9, 2019
bcf4343
Add v2.0 changelog
jsafrane Sep 10, 2019
88483a5
Merge pull request #181 from jsafrane/add-2.0-changelog
k8s-ci-robot Sep 10, 2019
ee70752
Exit on connection loss
jsafrane Sep 17, 2019
9f5902f
Merge pull request #182 from jsafrane/die-on-connection-loss
k8s-ci-robot Sep 17, 2019
741013c
Update 2.0 changelog
jsafrane Sep 18, 2019
27b83ca
Merge pull request #183 from jsafrane/update-2.0-changelog
k8s-ci-robot Sep 18, 2019
bba17bc
Merge upstream v2.0.0
jsafrane Oct 14, 2019
41334c8
UPSTREAM: <carry>: Add OpenShift OWNERS
jsafrane Oct 14, 2019
7db8260
UPSTREAM: <carry>: Add downstream Dockerfiles
jsafrane Oct 14, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions CHANGELOG-1.1.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
# Changelog since v1.1.0

## Other notable changes

* Fix RBAC rule for CSINode ([#147](https://github.com/kubernetes-csi/external-attacher/pull/147))
* Fix default leader election type ([#145](https://github.com/kubernetes-csi/external-attacher/pull/145))

# Changelog since v1.0.1

## Deprecations
Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG-1.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Changelog since v1.1.0

## New Features

- Adds CSI Migration support for Azure Disk/File, fixes for backward compatible AccessModes for GCE PD. ([#156](https://github.com/kubernetes-csi/external-attacher/pull/156), [@davidz627](https://github.com/davidz627))
- Support attachment of inline volumes migrated to CSI ([#154](https://github.com/kubernetes-csi/external-attacher/pull/154), [@ddebroy](https://github.com/ddebroy))
- Adds --retry-interval-max and --retry-interval-start to the csi-attacher parameters to allow users to limit the exponential backoff retry time for requests. ([#141](https://github.com/kubernetes-csi/external-attacher/pull/141), [@barp](https://github.com/barp))


## Bug Fixes

- The default leader election type will be `configmaps` if not specified in the command line ([#144](https://github.com/kubernetes-csi/external-attacher/pull/144), [@mlmhl](https://github.com/mlmhl))
21 changes: 21 additions & 0 deletions CHANGELOG-2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog since v1.2.0

The version 2.0 is not compatible with v1.x. See Action Required section and update CSI driver manifests.

## Action Required

- The external-attacher now uses PATCH HTTP method to update API objects. Please update the attacher RBAC policy to allow the attacher to `patch` VolumeAttachments and PersistentVolumes. See `deploy/kubernetes/rbac.yaml` for an example. ([#177](https://github.com/kubernetes-csi/external-attacher/pull/177), [@jsafrane](https://github.com/jsafrane))
- The `-connection-timeout`, `-leader-election-type` and `-leader-election-identity` flags, deprecated in v1.2, have been removed. Please update your manifests for the external-attacher. Leader election uses `lease` object now. Rolling update from v1.2.y release may not work, as multiple leaders may be elected during the update (one using config maps and another using `lease` object).
- The `-dummy` flag has been removed. Please update your manifests for the external-attacher. ([#173](https://github.com/kubernetes-csi/external-attacher/pull/173), [@jsafrane](https://github.com/jsafrane))
- Processing of ControllerUnpublish errors has changed. CSI drivers SHALL return success (0), when a deleted node or volume implies that the volume is detached from the node. The external attacher treats NotFound error as any other error and it assumes that the volume may still be attached to the node. Please check behavior of your CSI driver and fix it accordingly. ([#165](https://github.com/kubernetes-csi/external-attacher/pull/165), [@jsafrane](https://github.com/jsafrane))


## Bug Fixes

- Fixed issue to actually translate backwards compatible access modes for CSI Migration ([#163](https://github.com/kubernetes-csi/external-attacher/pull/163), [@davidz627](https://github.com/davidz627))
- The external attacher now exits when it loses the connection to a CSI driver. This speeds up re-election of a new attacher leader that has connection to the driver. ([182](https://github.com/kubernetes-csi/external-attacher/pull/182), [@jsafrane](https://github.com/jsafrane))


## Other Notable Changes

- Added a new flag `--worker-threads` to control the number of goroutines for processing VolumeAttachments. The default value is 10 workers. ([#175](https://github.com/kubernetes-csi/external-attacher/pull/175), [@hoyho](https://github.com/hoyho))
2 changes: 1 addition & 1 deletion Dockerfile.openshift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM registry.svc.ci.openshift.org/openshift/release:golang-1.11 AS builder
FROM registry.svc.ci.openshift.org/openshift/release:golang-1.12 AS builder
WORKDIR /go/src/github.com/kubernetes-csi/external-attacher
COPY . .
RUN make build
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.openshift.rhel7
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM registry.svc.ci.openshift.org/ocp/builder:golang-1.11 AS builder
FROM registry.svc.ci.openshift.org/ocp/builder:golang-1.12 AS builder
WORKDIR /go/src/github.com/kubernetes-csi/external-attacher
COPY . .
RUN make build
Expand Down
35 changes: 8 additions & 27 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 3 additions & 16 deletions Gopkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,28 +20,15 @@
name = "github.com/json-iterator/go"
version = "1.1.4"

[[constraint]]
[[override]]
name = "k8s.io/api"
version = "kubernetes-1.14.0"
branch = "release-1.15"

[[constraint]]
name = "k8s.io/csi-translation-lib"
version = "kubernetes-1.14.0"

[[constraint]]
name = "k8s.io/apimachinery"
version = "kubernetes-1.14.0"

[[constraint]]
name = "k8s.io/client-go"
version = "kubernetes-1.14.0"

[[constraint]]
name = "github.com/kubernetes-csi/csi-lib-utils"
version = ">=0.6.1"
branch = "master"

[prune]
non-go = true
go-tests = true
unused-packages = true

18 changes: 7 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ This information reflects the head of this branch.

| Compatible with CSI Version | Container Image | Min K8s Version |
| ------------------------------------------------------------------------------------------ | ----------------------------| --------------- |
| [CSI Spec v1.0.0](https://github.com/container-storage-interface/spec/releases/tag/v1.0.0) | quay.io/k8scsi/csi-attacher | 1.14 |
| [CSI Spec v1.0.0](https://github.com/container-storage-interface/spec/releases/tag/v1.0.0) | quay.io/k8scsi/csi-attacher | 1.15 |

## Feature Status

Expand Down Expand Up @@ -61,10 +61,13 @@ Note that the external-attacher does not scale with more replicas. Only one exte

* `--timeout <duration>`: Timeout of all calls to CSI driver. It should be set to value that accommodates majority of `ControllerPublish` and `ControllerUnpublish` calls. See [CSI error and timeout handling](#csi-error-and-timeout-handling) for details. 15 seconds is used by default.

#### Other recognized arguments
* `--worker-threads`: The number of goroutines for processing VolumeAttachments. 10 workers is used by default.

* `--retry-interval-start`: The exponential backoff for failures. See [CSI error and timeout handling](#csi-error-and-timeout-handling) for details. 1 second is used by default.

* `--dummy`: Runs the external-attacher in dummy mode, i.e. without any CSI driver. All volumes are immediately reported as attached / detached as controller-manager requires. This option can be used for debugging of other CSI components such as Kubernetes Attach / Detach controller.
* `--retry-interval-max`: The exponential backoff maximum value. See [CSI error and timeout handling](#csi-error-and-timeout-handling) for details. 5 minutes is used by default.

#### Other recognized arguments
* `--kubeconfig <path>`: Path to Kubernetes client configuration that the external-attacher uses to connect to Kubernetes API server. When omitted, default token provided by Kubernetes will be used. This option is useful only when the external-attacher does not run as a Kubernetes pod, e.g. for debugging.

* `--resync <duration>`: Internal resync interval when the external-attacher re-evaluates all existing `VolumeAttachment` instances and tries to fulfill them, i.e. attach / detach corresponding volumes. It does not affect re-tries of failed CSI calls! It should be used only when there is a bug in Kubernetes watch logic.
Expand All @@ -73,13 +76,6 @@ Note that the external-attacher does not scale with more replicas. Only one exte

* All glog / klog arguments are supported, such as `-v <log level>` or `-alsologtostderr`.

#### Deprecated arguments
* `--connection-timeout <duration>`: This option was used to limit establishing connection to CSI driver. Currently, the option does not have any effect and the external-attacher tries to connect to CSI driver socket indefinitely. It is recommended to run ReadinessProbe on the driver to ensure that the driver comes up in reasonable time.

* `--leader-election-type`: This option was used to choose which leader election resource type to use. Currently, the option defaults to `configmaps`, but will be removed in the future to only support `leases` based leader election.

* `--leader-election-identity <id>`: This option is deprecated and has no effect since external-attacher will now use the pod hostname as the leader election identity

### CSI error and timeout handling
The external-attacher invokes all gRPC calls to CSI driver with timeout provided by `--timeout` command line argument (15 seconds by default).

Expand All @@ -88,7 +84,7 @@ The external-attacher invokes all gRPC calls to CSI driver with timeout provided
* `Probe`: The external-attacher re-tries calling Probe until the driver reports it's ready. It re-tries also when it receives timeout from `Probe` call. The external-attacher has no limit of retries. It is expected that ReadinessProbe on the driver container will catch case when the driver takes too long time to get ready.
* `GetPluginInfo`, `GetPluginCapabilitiesRequest`, `ControllerGetCapabilities`: The external-attacher expects that these calls are quick and does not retry them on any error, including timeout. Instead, it assumes that the driver is faulty and exits. Note that Kubernetes will likely start a new attacher container and it will start with `Probe` call.

Correct timeout value depends on the storage backend and how quickly it is able to processes `ControllerPublish` and `ControllerUnpublish` calls. The value should be set to accommodate majority of them. It is fine if some calls time out - such calls will be re-tried after exponential backoff (starting with 5ms), however, this backoff will introduce delay when the call times out several times for a single volume.
Correct timeout value depends on the storage backend and how quickly it is able to processes `ControllerPublish` and `ControllerUnpublish` calls. The value should be set to accommodate majority of them. It is fine if some calls time out - such calls will be re-tried after exponential backoff (starting with `--retry-interval-start`), however, this backoff will introduce delay when the call times out several times for a single volume (up to `--retry-interval-max`).

## Community, discussion, contribution, and support

Expand Down
Loading