{"id":14965380,"url":"https://github.com/iamseth/saltstack-vulcan","last_synced_at":"2025-10-25T11:31:39.297Z","repository":{"id":57463708,"uuid":"87108376","full_name":"iamseth/saltstack-vulcan","owner":"iamseth","description":"Formula build tool for SaltStack.","archived":false,"fork":false,"pushed_at":"2019-07-02T19:51:41.000Z","size":26,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-31T07:04:24.042Z","etag":null,"topics":["build","devops-tools","python","saltstack","saltstack-formula"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamseth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-03T18:42:22.000Z","updated_at":"2020-11-19T17:53:41.000Z","dependencies_parsed_at":"2022-09-14T17:20:11.437Z","dependency_job_id":null,"html_url":"https://github.com/iamseth/saltstack-vulcan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamseth%2Fsaltstack-vulcan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamseth%2Fsaltstack-vulcan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamseth%2Fsaltstack-vulcan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamseth%2Fsaltstack-vulcan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamseth","download_url":"https://codeload.github.com/iamseth/saltstack-vulcan/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238128563,"owners_count":19421054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build","devops-tools","python","saltstack","saltstack-formula"],"created_at":"2024-09-24T13:34:39.988Z","updated_at":"2025-10-25T11:31:33.992Z","avatar_url":"https://github.com/iamseth.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# saltstack-vulcan\n\nVulcan is a formula build tool for SaltStack. The idea is to assemble formulas from remote Git repositories to create an atomic 'build' for deployment.\n\nSaltStack has a native [package manager](https://docs.saltstack.com/en/latest/topics/spm/) which is a system package manager (SPM). It assembles formulas from remote locations but is geared towards assembling on the Salt master itself and requires extra metadata.\n\nSalt is also capable of loading formulas from Git using a [fileserver_backend](https://docs.saltstack.com/en/latest/ref/configuration/master.html#std:conf_master-fileserver_backend) however this too is geared towards assembly on the host itself.\n\nThe goal of this project is to make it easy to assemble formulas from Git repositories during a build stage running on something like Jenkins. After assembly, all files can be delivered to Salt master(s) in an atomic way. This makes it easier to keep multiple masters sync'd and Docker based Salt master deployments easier.\n\n## Installation\n\n```bash\nsudo pip install saltstack-vulcan -U\n```\n\n## Configuration\n\nConfiguration is handled by a local YAML file. By default, $PWD/vulcan.yaml is used. An alternative path can be set with the --config flag.\n\nFormula configuration is stored as a list of dictionaries. Each formula has the following attributes. Only 'name' and 'url' are required however it is best practice to set the branch and revision as well.\n\n\n- **name**: A name for the formula for example 'apache' or 'mysql'. This is required.\n- **url**: Git URL for the project. This is required.\n- **branch**: Name of branch for checkout. Defaults to 'master'.\n- **revision**: Git revision to use. If this does not exists, an exception will be thrown. Defaults to 'HEAD'.\n- origin_name**: If renaming a formula, the origin_name of the formula must be used to determine the change. Defaults to value of 'name' if not set.\n- **install_directory**: Directory to install formula into. Defaults to ./formulas.\n\n### Example vulcan.yaml\n\n```yaml\nformulas:\n  - name: bind\n    url: https://github.com/saltstack-formulas/bind-formula\n    branch: master\n    revision: 29662c0f0452a48e1004038b6a3190b46fc4ed0b\n\n  - name: docker\n    url: https://github.com/saltstack-formulas/docker-formula\n    branch: master\n    revision: 0bff590b7bdd9568140c9693ca6e8b6fb4731408\n\n  - name: vpn\n    origin_name: openvpn\n    url: https://github.com/saltstack-formulas/openvpn-formula\n    branch: master\n    revision: b51cd17524cac79274c883bc381f0ba07edff3c7\n    install_directory: formulas\n\n  - name: jenkins\n    url: https://github.com/saltstack-formulas/jenkins-formula\n    branch: jenkins_plugins\n    revision: 407118135d59aa6577085b0570034341fe5f038a\n```\n\n## Usage\n\n```bash\nUsage: vulcan [OPTIONS] COMMAND [ARGS]...\n\n  Formula build tool for SaltStack.\n\n  See https://github.com/iamseth/saltstack-vulcan for documentation.\n\nOptions:\n  --debug        Enables debug mode.\n  --config PATH  Configuration file path. Defaults to ./vulcan.yaml.\n  --version      Show the version and exit.\n  --help         Show this message and exit.\n\nCommands:\n  install  Install all non-installed formulas.\n  update   Update or install formulas.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamseth%2Fsaltstack-vulcan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamseth%2Fsaltstack-vulcan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamseth%2Fsaltstack-vulcan/lists"}