Skip to content

Breaking change: puppet UID/GID changed 999 -> 1001 in #141 with no migration path #150

Description

@bootc

Summary

#141 changed ARG OPENVOX_USER_UID / OPENVOX_USER_GID from 999 to 1001. Existing persisted data written by prior images (owned 999:999) is no longer owned by the running process, and any deployment pinning 999 breaks. This is a silent breaking change.

Affected images

Evidence

OLD:  puppet:x:999:999:puppetserver daemon:/opt/puppetlabs/server/data/puppetserver:/bin/sh
NEW:  puppet:x:1001:1001::/opt/puppetlabs/server/data/puppetserver:/usr/sbin/nologin

(The login shell also changed /bin/sh/usr/sbin/nologin.)

Impact

  • Persisted volumes (CA dir, SSL, server/data/puppetserver, reports, code) written as 999:999 become inaccessible to the new process (uid 1001) on upgrade, with no automatic remediation.
  • Deployments hard-coding user: "999:999", K8s runAsUser: 999, or host ACLs for uid 999 break.
  • docker exec … sh / debugging as the puppet user breaks due to the nologin shell change.

Suggested fix

Either:

  1. Revert to UID/GID 999 to preserve compatibility; or
  2. Keep 1001 but treat it as a documented breaking change — release notes + an upgrade step (recursive chown of persisted dirs) and a clear statement of the new shell. If the UID is meant to be configurable, document the OPENVOX_USER_UID/GID build args and the implications of changing them.

Consider whether the shell change to nologin is intentional; if debugging access matters, retain a usable shell.

Related: #148, #149 — all stem from #141.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Fields

    No fields configured for Bug.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions