Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Release v1.2.0 #245

Merged
merged 46 commits into from
Sep 16, 2018
Merged

Release v1.2.0 #245

merged 46 commits into from
Sep 16, 2018

Conversation

shay-berman
Copy link
Contributor

@shay-berman shay-berman commented Aug 30, 2018

This is the PR to merge GA v1.2.0 content from dev to master (via release branch named release_v1.2.0).
This PR related to the ubiquiy-k8s release PR IBM/ubiquity-k8s#211.

Here is the release content (The content will be mentioned also in the release tag description of v1.2.0):

New in this release


This change is Reviewable

shay-berman and others added 30 commits March 28, 2018 17:20
* place holders comments for potential idempotent fixes - unmount and mount flow
* mount idempotent - new mounter factory inteface to get relevant backend mounter(will be used in k8s side)
* mount idempotent : add new intefaces for slink manipulation for k8s controller.
* refactor IsDeviceMounted so it will return also the mountpaths of the given device if mounted
* Add idempotent handling to MountDeviceFlow (skip if already mounted)
* Add timeout for mount command (to be save from hanging if any)
* Add new error.go file for mounter utils (part of mount idempotent)
Merge v1.1.1 to dev branch (Add support for IBM Power Systems)
Refactor helper scripts to push images (rename scripts and fix manife…
* UB-624:Flex should NOT write its log into the flex driver directory

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* create log directory

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* add FLEX-LOG-ROTATE-MAXSIZE in config

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* update openssl to 1.0.2o-r0

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>
…212)

* MountDeviceFlow prevent mounting device if the mountpoint is already in use by other device. (Its a fix for PR #196)
* remove sqlite

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Remove the sqlite3

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>

* Add ut for connection

Signed-off-by: feihuang <feihuang@feihuangs-mbp.cn.ibm.com>
Added request id and go id to the ubiquity server logs


* UB-1099: add go_id:request_id to ubiquity server logs

* UB-1099: added back a go-logging import

* UB-1099: exidental enter

* UB-1099: code review fixes

* UB-1099: code review changes

* UB-1099: code review changes

* UB-1099: code review changes

* UB-1099: code revie changes

* UB-1099: code review fixes
…he PV existence) (#216)

* Refactor volumeNotFoundError in database to be standard error for StorageClient interface.

Move this error from scbe backend to be generic for ubiqutiy StorageClient interface,
So the plugins will be able to identify if the GetVolume interface fail to find the volume because an error or because it was not found in Ubiqutiy DB.
The first to use it in the plugin is the flex Unmount CLI to identify if PV exist in ubiquity before unmount start (for idempotent issue resolving)
In this PR I wanted to update the new logging to the following state:
in the ubiquity logger there we be shown the go routine id (and the pid will be removed from the log) : because the ubiquity server always runs in the same pid so no need to show it in the log since it does not give us any more information.
in flex logger we will show the pid only (the go id routine will be removed) : since every flex request will always have the same go routine id there is not need to show both the request id and the go routine id.
in provisioner log we will neither show the go routine id nor the pid of the process : since as for the flex logger each request will always have the same go routine id. and also like the ubiqity server the provisioner will always run with the same pid.
added timestamp to start server message:
2018-07-01 11:52:15.077 INFO storage_api_server.go:73 web_server::printStartMsg [NA:1] Starting Storage API server on port 9999 .... [] 2018-07-01 11:52:15.077 INFO storage_api_server.go:74 web_server::printStartMsg [NA:1] CTL-C to exit/stop Storage API server service []
Cleanup old ubiquity linux service, config files and few old deployment files
#223)

* UB-1387 : added log for idempotent issue when mount-point already exists *
#222)

* UB-1098: change logging message to warning instead of info for idempotent issues*
this PR will add an action name to each log line. (for example all oprerations that are part of Delete will have the request-action name in the log.
like : fd5dd389-7acb-11e8-88cd-54ee75515403-Delete )
* Set lumberjack version
* Set ginkgo to v1.5.0
* Set gomega to v1.4.0
* Use Docker caching in DockerFile
* Update dependencies
* Add k8s apmachinery to glide.yaml
* Add dependencies to testImport
we added 2 things to support ubiquity on Z:
1. runnig multipath AND with multipath -r
2. adding a timeout on the multipath command (10 seconds) due to env issues on Z that cause the multipath to be stuck sometimes
Don't want to see an error every time a volume is being discovered. so I removed the error message and am just returning the error.
…230)

* Expose the http response including the error reason to the plugins (instead of hiding the reason)
* Fix code review comments by Olga and Ran
In this PR , the following idempotent issue with Unmount flow is fixed:
if a discovery of a volume fails, no need to fail the Unmount command, just need to skip the UnmountDeviceFlow.

more info:
if volume's mpath NOT discovered (because the device does not exist at all in multipath -ll) then we should skip UnmountDeviceFlow instead of failing (reminder - the UnmountDeviceFlow is the flow that does umount the device and cleanup of the mpath device) .
Why its idempotent? - because there is a chance that unmount flow will fail at the end of UnmountDeviceFlow after it unmounts and cleans the mpath device. So to be idempotent the unmount needs to handle unmount request while the mpath device was already cleaned.
…ity server if volume is already detached (#231)

In the ubiquity server if the volume is already detached we will not fail the flow but succeed.
olgashtivelman and others added 15 commits August 8, 2018 17:04
This PR is to not allow attachement of 2 pods to one PVC.
currently this is allowed due to a fix of another idempotent issue.
we are checking if a PVC is already attached to another pod using the slinks - in the mount process we check if the /ubiquity/volume is already linked to a pod that is not the current pod - if so then we will fail the mount process.
also a mountlock is added to prevent operations during the mount happening for 2 different pods (and same PVC)
…ing it as Volume not found (#236)

This PR will return the actual error that is returned from sg_inq and not mask it as a volume not found error .
this is important because if we mask the error from sg_inq we might stumble into an idempotent case and continue the umount even thought we should not and we will be stuck.
(this can happen when there is a faulty device so sg_inq returns an error and we return a volume not found error in this case, and after that because we know to continue with the unmount in case of a volume not found we will continue the umount even though other steps did not happen and this is not really the case of a volume not found because it was already unmounted.)
added timeout to some commands as part of the unmount process as follows:

unmount (timeout 30s)
clean up command : dmsetup and multipath -f (each should be with timeout of 30s)
multipath -ll (timeout 20s)
multipath -r (timeout 60s)
rescan -r (timeout 2 minutes)
iscsiadm rescan (timeout 1 minutes)
added a log message to indicate that a device was already unmounted.
as part of this message we needed to add the volume WWN (to enable the automation to work and check this case) so some changes in the API were made to support this.
…ocker manifest commands (#240)

1. To allow run the script with additional docker manifest flags (mainly for CI use case with internal docker registry) 
2. Also move helper scripts under ci directory
the getBackend function in the storage_api_handler was returning the wrong error message and the controller was expecting the right one, so i fixed it to return the correct error.
@coveralls
Copy link

coveralls commented Aug 30, 2018

Coverage Status

Coverage decreased (-2.8%) to 51.98% when pulling de2fb2a on release_v1.2.0 into 05e861a on master.

Copy link
Contributor Author

@shay-berman shay-berman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 95 of 95 files at r1.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @beckmani and @olgashtivelman)

Copy link
Collaborator

@olgashtivelman olgashtivelman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @beckmani and @olgashtivelman)

@shay-berman
Copy link
Contributor Author

We have a green light to merge v1.2 to master.

@shay-berman shay-berman merged commit eef6f1d into master Sep 16, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants