{"id":26276674,"url":"https://github.com/jsabo/gremlin-boshrelease","last_synced_at":"2026-01-02T16:04:37.024Z","repository":{"id":273419152,"uuid":"919604233","full_name":"jsabo/gremlin-boshrelease","owner":"jsabo","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-20T19:29:46.000Z","size":1,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-20T20:30:21.533Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/jsabo.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":"2025-01-20T17:41:05.000Z","updated_at":"2025-01-20T19:29:50.000Z","dependencies_parsed_at":"2025-01-20T20:41:04.567Z","dependency_job_id":null,"html_url":"https://github.com/jsabo/gremlin-boshrelease","commit_stats":null,"previous_names":["jsabo/gremlin-boshrelease"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsabo%2Fgremlin-boshrelease","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsabo%2Fgremlin-boshrelease/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsabo%2Fgremlin-boshrelease/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsabo%2Fgremlin-boshrelease/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsabo","download_url":"https://codeload.github.com/jsabo/gremlin-boshrelease/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243565368,"owners_count":20311705,"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":[],"created_at":"2025-03-14T11:19:00.291Z","updated_at":"2026-01-02T16:04:37.013Z","avatar_url":"https://github.com/jsabo.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# gremlin-boshrelease\n\nA BOSH release for the Gremlin Chaos Engineering client (`gremlin`) and daemon (`gremlind`).  \nUse this release to deploy Gremlin into any BOSH-managed environment (e.g. Cloud Foundry Diego cells).\n\n---\n\n## 📂 Repository Layout\n\n```\n.\n├── VERSION                      # current release version\n├── Makefile                     # helpers for building \u0026 uploading releases\n├── config/\n│   ├── blobs.yml                # blobstore config for `bosh create-release`\n│   ├── vars.yaml                # dev ops-file variables\n│   └── final.yml                # final ops-file variables\n├── scripts/\n│   └── prepare-gremlin-blobs.sh # download \u0026 extract upstream .deb packages\n├── blobs/gremlin/               # local blobstore (gitignored)\n├── packages/gremlin/            # gremlin CLI package spec\n├── jobs/gremlind/               # gremlind job spec, Monit config \u0026 templates\n└── example/                     # example runtime-configs and ops-files (e.g. for cf-deployment)\n```\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- [BOSH CLI v2](https://bosh.io/docs/cli-v2)\n- A live BOSH Director and creds\n- Internet access to `https://deb.gremlin.com/`\n\n### 1. Prepare the blobs\n\n```bash\nmake blobs\n```\n\nDownloads the latest `gremlin` \u0026 `gremlind` `.deb` packages and stages their binaries under `blobs/gremlin/`.\n\n### 2. Cut a **dev** release\n\n```bash\nmake cut_release\n```\n\nBuilds `gremlin-$(cat VERSION)-dev.$(date +%Y%m%d%H%M%S).tgz`.\n\n### 3. Upload the **dev** release\n\n```bash\nmake upload\n```\n\nRuns `bosh upload-release` for the freshly built tarball.\n\n### 4. Cut \u0026 upload a **final** release\n\n1. Bump `VERSION` to your target (e.g. `1.2.3`).\n2. Run:\n\n   ```bash\n   make final\n   bosh upload-release gremlin-$(cat VERSION).tgz\n   ```\n\n---\n\n## 🎯 Using in Your BOSH Deployment\n\n1. **Add** the release to your manifest:\n\n   ```yaml\n   releases:\n   - name: gremlin\n     version: ((release_version))\n   ```\n\n2. **Wire in** the `gremlind` job:\n\n   ```yaml\n   instance_groups:\n   - name: diego-cell\n     jobs:\n     - name: gremlind\n       release: gremlin\n       properties:\n         gremlin:\n           team_id:            ((gremlin.team_id))\n           team_certificate:   ((gremlin.team_certificate))\n           team_private_key:   ((gremlin.team_private_key))\n           tags:               ((gremlin.tags))\n   ```\n\n3. **Deploy** with your variables:\n\n   ```bash\n   bosh -e \u003cenv\u003e -d \u003cdeployment\u003e deploy manifest.yml \\\n     -v release_version=$(cat VERSION) \\\n     -v gremlin.team_id=\"$(\u003c platform-team-id)\" \\\n     -v gremlin.team_certificate=\"$(\u003c platform-team-client.pub_cert.pem)\" \\\n     -v gremlin.team_private_key=\"$(\u003c platform-team-client.priv_key.pem)\" \\\n     --vars-store creds.yml \\\n     -o operations/gremlin.yml \\\n     [other ops-files]\n   ```\n\n---\n\n## 📝 Tips \u0026 Best Practices\n\n- Keep secrets out of Git. Use `--vars-store creds.yml` or a CredHub ops-file.\n- `.gitignore` should exclude build artifacts and local blob caches:\n\n  ```\n  blobs/\n  .dev_builds/\n  .final_builds/\n  *.tgz\n  config/private.yml\n  ```\n\n- Always bump `VERSION` for final releases. CI pipelines can tag and publish automatically.\n- Directory permissions for `/var/lib/gremlin` and `/var/log/gremlin` are set to `750` in the `pre-start` hook.\n\n---\n\n## ⚠ Troubleshooting\n\n- Monit looks for the PID at `/var/vcap/sys/run/gremlind/gremlind.pid`—the release’s templates handle this.\n  ```\n  bosh -d cf ssh diego-cell/0 sudo monit summary\n  ``` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsabo%2Fgremlin-boshrelease","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsabo%2Fgremlin-boshrelease","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsabo%2Fgremlin-boshrelease/lists"}