{"id":20263648,"url":"https://github.com/springerpe/bosh-cli-wrapper","last_synced_at":"2025-03-03T19:59:46.158Z","repository":{"id":80986960,"uuid":"122610993","full_name":"SpringerPE/bosh-cli-wrapper","owner":"SpringerPE","description":"Bash script to make bosh-cli easy for humans","archived":false,"fork":false,"pushed_at":"2018-02-23T11:11:20.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-14T04:44:37.969Z","etag":null,"topics":["bosh","bosh-cli"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SpringerPE.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-23T11:06:47.000Z","updated_at":"2018-02-23T11:10:00.000Z","dependencies_parsed_at":"2023-06-04T04:30:28.799Z","dependency_job_id":null,"html_url":"https://github.com/SpringerPE/bosh-cli-wrapper","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/SpringerPE%2Fbosh-cli-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpringerPE%2Fbosh-cli-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpringerPE%2Fbosh-cli-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpringerPE%2Fbosh-cli-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SpringerPE","download_url":"https://codeload.github.com/SpringerPE/bosh-cli-wrapper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241731744,"owners_count":20010781,"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":["bosh","bosh-cli"],"created_at":"2024-11-14T11:35:49.536Z","updated_at":"2025-03-03T19:59:46.123Z","avatar_url":"https://github.com/SpringerPE.png","language":"Shell","readme":"# Bosh-cli wrapper script for humans\n\nThis repo contains a bash script and examples about how to setup a folder structure to easily create and deploy environments.\nThe script will be showing the commands it runs (and logging to a file) to make it easy to copy and reproduce manually.\n\nMoreover it can be sourced (`. bosh.sh`) to make all the functions availabe in another shell scripts (upload stemcells, releases, etc)\nand automatically define all bosh environment variables (certs, user, environment) to operate `bosh-cli` againts a director. \n\n\n## Usage\n\nThe script was created to manage Bosh Director environments, but it can be used to deploy other environments like concourse, jumpbox, etc\n\nType `./bosh.sh --help` to see the usage.\n\nProbably you will need to initialize the upstream git submodules:\n\n```\ngit submodule init\ngit submodule update\n```\n\n\nFeatures:\n\n1. The script looks for a folder with the same name as the script. So if the script is called `bosh.sh` it will expect a folder called `bosh`,\n   if the script is `concourse.sh` (it can be a link) it will look for a folder called `concourse`.\n\n2. The folder should have a `operations` folder with at least one base yml file, the rest of the optinonal files (or links) are operations files\n   which add or remove keys/values defined on the first file. The files are sorted lexicographically, so a good patter is always use a naming\n   convention like `00-bosh.yml`, `50-cpi-vpshere.yml`, ... and so on. The idea is defining each dozen as a group of setting regarding one\n   particular aspect, for example: `50-cpi-vsphere.yml` and `55-vsphere-resource-group.yml` are in the 50th dozen which in this example is\n   for cpi configuration. It is also important to try not use sequential numbers to leave holes for other future settings. The rest of the\n   files without `.yml` extension are ignored.\n\n3. Variables. The script expects two files `director.yml` and `director-secrets.yml`. The first one normally includes IPs, CPI settings\n   and the second one includes passwords regarding the CPI, etc. `director-secrets.yml` should include passwords/certs/users which should\n   not be auto generated by bosh-cli, the passwords/certs which cannot be autogenerated. Autogenerated passwords will be stored in a file \n   called `creds.yml` and they will be different on each deployment. A folder called `variables` can also be created to define other variable\n   files (especially useful for stemcells and release versions).\n\n4. The previous seetings can be managed/changed by defining environment variables. See the script.\n\n5. If the script deploys a Bosh Director you can make use of Bosh specific arguments:\n\n   * It can apply runtime-config defined in `runtime-config` folder (interpolating operations files, if there are more than one) after\n      deploying a bosh-director (arg `bosh-init`).\n   * Manage cloud-config by interpolating all files in `cloud-config` folder.\n   * Talk with `credhub` to read secrets and certificates and make them availabe as environemnt variables by sourcing the script.\n   * Show with `bosh-env` arg how to get the env variables from `credhub` and `secrets` to define as environment variables.\n\n6. The upstream deployments repos are included as submodules inside each folder which makes easy the usage of links, specially to\n   link the base files and other common operations files. It is also usefull to track upstream versions.\n\n7. There is an additional `deployments` folder which is meant to store the manifest for all deployments of a bosh director. \n\n\n## Examples\n\n* `bosh.sh`: `bosh`, `runtime-config`, `cloud-config` and `deployments` folders.\n* `concourse.sh`: `concourse` and `pipelines` folders.\n* `jumpbox`: `jumpbox` folder.\n\n\n## Decrypting the repo\n\nImportant! You can encrypt the secrets files, you will NEED to do the following, otherwise you will not be able to proceed\n\n    # Install git-crypt(https://github.com/AGWA/git-crypt)\n    # Get the key used for encryption and decryption of files\n    pass keys/gitrepos/bosh-cli-wrapper.key \u003e ~/.bosh-cli-wrapper.key\n\n    # Tell git crypt to use the key for encryption and decryption in your repo\n    cd bosh-cli-wrapper\n    git-crypt unlock ~/.bosh-cli-wrapper.key\n\n\n# License\n\nApache 2.0  (c) Springernature Platform Engineering\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringerpe%2Fbosh-cli-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspringerpe%2Fbosh-cli-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspringerpe%2Fbosh-cli-wrapper/lists"}