Skip to content

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.

  • opts map: The primary BigConfig configuration map threaded through the workflow steps.

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 unique lock-id.
  • Re-acquisition: Re-acquiring a lock-id with the same owner will succeed (idempotent).
  • Conflict: Attempting to acquire a lock-id currently held by a different owner will fail.

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.

Source