Skip to content

Is mandatory that var-dir is shared between masters and compilers? #220

@cpiment

Description

@cpiment

Use Case

I'm trying to deploy a multi-master, multi-compiler Puppet environment. To achieve that, some PVCs must be shared between masters and compilers. The shared paths are:

  • (code) /etc/puppetlabs/code/ -> Written by r10k, read by every master and compiler
  • (puppet) /etc/puppetlabs/puppet/ -> Puppet Agent configuration
  • (vardir) /opt/puppetlabs/server/data/puppetserver/ -> var-dir
  • (confd) /etc/puppetlabs/puppetserver/conf.d/ -> Puppetserver configuration files
  • (ca) /etc/puppetlabs/puppetserver/ca -> CA certificates

By default, these paths are created in different PVCs, and those PVCs are shared between masters and compilers, so, for them to work correctly must be deployed in a RWX PV. In my environment, the only solution for RWX PVs is very slow when it has to handle many small files, so I have problems when I try to share the vardir directory between many nodes, because every pod copies the vendored-jruby directory into the PVC during startup

Is really necessary for that directory to be shared between instances? Could vardir directory be a local directory inside every pod that is not shared between masters and compilers?

Describe the Solution You Would Like

vardir directory local in each instance and not shared

Describe Alternatives You've Considered

I'm currently testing puppet using a single master and a PVC in RWO to avoid this issue.

Additional Context

N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions