lock
BigConfig Lock manages resource locking and unlocking while applying changes. It provides functionality similar to Atlantis for Terraform, but operates entirely client-side. This makes operations interactive again by removing the mandatory Pull Request step, and it is versatile enough to be used with other tools like Ansible.
Under the hood, BigConfig leverages Git repository tags to acquire and release locks.
Workflow Context
Section titled “Workflow Context”optsmap: The primary BigConfig configuration map threaded through the workflow steps.
Options for opts
Section titled “Options for opts”To manage locks, the following keys are required within the opts map:
:big-config.lock/owner(Required): A string used to distinguish between different users or CI environments.:big-config.lock/lock-keys(Required): A list of qualified keys used to generate a uniquelock-id.
Lock Logic
Section titled “Lock Logic”- Re-acquisition: Re-acquiring a
lock-idwith the sameownerwill succeed (idempotent). - Conflict: Attempting to acquire a
lock-idcurrently held by a differentownerwill fail.
big-config.unlock/unlock-any
Section titled “big-config.unlock/unlock-any”This workflow is used to force-release a lock-id, regardless of which owner
currently holds it.
(lock)(lock opts)(lock step-fns opts)(lock [opts])(lock step-fns [opts])Function.
This workflow is used to acquire the lock-id. See the namespace big-config.lock.