Changing ownership on cloudstor storage

Expected behavior

On a cloudstor volume
chown postgres:postgres main
should change owenership of that folder

Actual behavior

No error is returned but the ownership remains with root

Additional Information

Steps to reproduce the behavior

  1. …spin a container with a cloudstore mounted volume
  2. …create a file or a directory and try to change ownership

@maartenvanveen As you mentioned in the other post @ "Cloudstor" volume plugin missing this is indeed a side effect of CIFS. As mentioned in https://www.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html

The core CIFS protocol does not provide unix ownership information or mode for files and directories. Because of this, files and directories will generally appear to be owned by whatever values the uid= or gid= options are set, and will have permissions set to the default file_mode and dir_mode for the mount. Attempting to change these values via chmod/chown will return success but have no effect.

One thing we can do is pop up the uid and gid parameters (used during CIFS mount) as options to admins that you can specify as part of the volume/service creation commandlines. Do you think that will satisfy the requirement somewhat?

@ddebroy
Thanks for your quick reply!
That would definitely be the answer but how would i go about?

I have used the following command on my workers to install the cloudstor plugin.
But i don’t see any options to parse the uid nor gid options.

docker plugin install --alias cloudstor:azure --grant-all-permissions docker4x/cloudstor:azure-v17.03.0-ce CLOUD_PLATFORM=AZURE AZURE_STORAGE_ACCOUNT_KEY=“keytomystorageaccount” AZURE_STORAGE_ACCOUNT=“nameofmystorageaccount”

Usage: docker plugin install [OPTIONS] PLUGIN [KEY=VALUE…]

Install a plugin

Options:
–alias string Local name for plugin
–disable Do not enable the plugin on install
–disable-content-trust Skip image verification (default true)
–grant-all-permissions Grant all permissions necessary to run the plugin
–help Print usage

hey @maartenvanveen we will look into introducing the uid and gid as optional parameters you can specify (during volume creation/service creation) in the next release of Editions release. It’s not something that is exposed right now.

That would be Super!

Thanks @ddebroy

Hey no news on this? Cloudstor is not very useful without this. Too many Linux based systems relay on changing file permissions.

Unfortunately the file permissions issue is a shortcoming of the CIFS protocol used by cloudstor. We will have a solution for this in the future when Azure exposes a way to create/attach individual VHDs to VMs in a VM Scale Set so that cloudstor does not have to rely on CIFS for storage.

So how do i go about in the meantime?
Are there any good shared storage volume plugins you’d recommend that i can easily install on the core-os machines?

We have a fix ready where you can specify the UID/GID for the CIFS share (during cloudstor based volume creation) and we have successfully tested Jenkins installation. Should be available next week as part of 17.06 releases.

On https://store.docker.com/editions/community/docker-ce-azure the latest version is still 17.05 ce do you know where i can i find 17.06?

17.06 with the enhancements will be released as part of Docker4Azure 17.06 in the next couple of days and will be updated in Store shortly after.

Hi ddebroy i’m very pleased to tell you that it works!!!

Thanks for your help i think the whole docker on azure community is very thankfull for this!

Excellent glad to know it’s working now @maartenvanveen!

@ddebroy is this installation available from the docker plugin install path as well? just as this was referenced for 17.03
docker plugin install --alias cloudstor:azure --grant-all-permissions docker4x/cloudstor:azure-v17.03.0-ce

@whytoe the tag was changed slightly: it’s now docker4x/cloudstor:17.06.0-ce-azure2

If you deployed from https://docs.docker.com/docker-for-azure/, you should already see it installed under docker plugin ls

@ddebroy I cant seem to locate it using docker plugin update or install
Error response from daemon: manifest for docker4x/cloudstor:azure-v17.06.0-ce not found
docker --version
Docker version 17.06.0-ce, build 02c1d87

Please note that the tag format has changed a bit. Now it is: docker4x/cloudstor:17.06.0-ce-azure2

Thanks so much for the prompt response!