Traditionally, Ganesha consumes /etc/idmapd.conf, which controls
mapping of user/owner identities under NFSv4+. With containerized service
deployment, this file has beenan immutable part of the container image
and could not be modified.
Recently ceph-ansible was modified to allow the user to set the path
for idmapd.conf and to override ini settings in this file by supplying
json configuration for the overrides in the same way that it can be
supplied for ceph.conf overrides . Also, the default path setting
for the idmapd.conf file is /etc/ganesha/idmap.conf, which already is
reflected into containerized ganesha under /etc/ganesha, solving the
immutability issue. If no overrides are supplied, the file put in this
location will match that originally frozen into the container, so there
is no issue here with backwards compatibility.
This change exposes parameters for idmap.conf file path and override
contents in TripleO and passes them into ceph-ansible. It also sets up
these parameters for cephadm. Cephadm support for OpenStack Ganesha
is WIP so there will likely need to be a followup patch to make these
effective when cephadm replaces ceph ansible.
When deploying Manila with CephFS backend it might be preferable
to keep the Ganesha service deployment under control of TripleO but
still point it to an external Ceph cluster.
From version 4.0.0rc9  ceph-ansible is capable of deploying Ganesha and
configure it to use an external Ceph cluster. We can use this feature
TripleO enabling the CephNfs and CephClient services on those roles
where Ganesha needs to go.
It will be possible to deploy Manila with a CephFS backend together
with Ganesha (pacemaker managed) and point them to an external Ceph
cluster combining the two environments:
Implements: blueprint manila-external-ganesha
manila now  supports configuring an octal value for the
rwx permissions mode of the cephfs volumes and snapshots
and groups of these that back manila shares, snapshots,
Expose this parameter in the backend manifests for manila
This change combines the previous puppet and docker files into a single
file that performs the docker service installation and configuration
for all manila services.
With this patch the baremetal version of each manila service has been removed.
to eliminate special 'docker' names.
Containerized manila is now the standard way to deploy
so we can avoid confusion by just using the regular
manila environment file names for these rather than having
some manila environment files with 'docker' in their names.
Note that we are using the content of
environments/manila-cephfsnative-config.yaml. This resolves an
issue wherein the parameters in the latter file were not updated
when support for the CephFS-NFS back end was added .