Skip to content

Indellient/bldr_package_sync

Repository files navigation

Habitat Builder Syncer

This package is intended to sync habitat packages, and their corresponding keys from an upstream builder, to a target builder.

These values are driven by configuration.

Usage

For the preferred usage on the habitat package please review the Habitat package README

Currently there is only one mode to execute in, continuity as an agent where the sync process happens followed by a sleep and re-execution.

Example

This will run the sync process with the given configuration file.

bldr_package_sync --config user.toml sync

Configuration

  • interval: integer value used to determine the amount of time to sleep after running the process
  • log_level: the level to print logs at (debug, info, warn, error)
  • temp_dir: the temp directory to stage files in
  • env: additional environment variables to use when shelling out (could be proxy or ssl, see troubleshooting)
  • features: list of beta features to include
    • options: PACKAGE_CONSTRAINTS
  • upstream: the bldr to pull packages/keys from
    • url: the url to the corresponding upstream
  • target: the bldr to push packages/keys to
    • url: the url to the corresponding target
    • authToken: the authToken to push to the origins in the target (must have access to all outlined origins)
  • origin: list of origins and channels to pull packages from
    • name: the name of the origin
    • channels: a list of channels to pull/push packages to
  • package: list of package constraints (this feature is beta)
    • name: the name of the origin
    • contraint: the constraint on the package

Full Example

interval = 300
env = []
log_level = "info"
temp_dir = "/tmp"

[upstream]
url = "https://bldr.habitat.sh"

[target]
url = ""
authToken = ""

[[origin]]
name = "habitat"
channels = ["stable", "on-prem-stable"]

[[origin]]
name = "core"
channels = ["stable"]

Package Contraints (Beta)

interval = 300
env = []
log_level = "info"
temp_dir = "/tmp"
features = ["PACKAGE_CONSTRAINTS"]

[upstream]
url = "https://bldr.habitat.sh"

[target]
url = ""
authToken = ""

[[origin]]
name = "habitat"
channels = ["stable", "on-prem-stable"]

[[origin]]
name = "core"
channels = ["stable"]

[[package]]
name = "core/hab"
constraint = "< 0.80.0"

[[package]]
name = "core/hab-pkg-export-docker"
constraint = "< 0.80.0"

Troubleshooting

If running on a mac and getting SSL related errors, try appending to the env array in the config file:

env = ["SSL_CERT_FILE=/usr/local/etc/openssl/cert.pem"]