{"id":15062669,"url":"https://github.com/caos/boom","last_synced_at":"2025-10-04T22:31:23.340Z","repository":{"id":57514267,"uuid":"218777185","full_name":"caos/boom","owner":"caos","description":"Operator to deploy a defined toolsets into K8s, think paas but less lock-in","archived":true,"fork":false,"pushed_at":"2020-06-12T05:59:48.000Z","size":18700,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-15T08:15:31.762Z","etag":null,"topics":["ambassador","gitops","grafana","kubernetes","metrics","paas","prometheus"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caos.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.config.js","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":"2019-10-31T13:50:42.000Z","updated_at":"2024-05-06T09:31:38.000Z","dependencies_parsed_at":"2022-08-28T16:02:55.050Z","dependency_job_id":null,"html_url":"https://github.com/caos/boom","commit_stats":null,"previous_names":["caos/toolsop"],"tags_count":81,"template":false,"template_full_name":null,"purl":"pkg:github/caos/boom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caos%2Fboom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caos%2Fboom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caos%2Fboom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caos%2Fboom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caos","download_url":"https://codeload.github.com/caos/boom/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caos%2Fboom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278386097,"owners_count":25978109,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ambassador","gitops","grafana","kubernetes","metrics","paas","prometheus"],"created_at":"2024-09-24T23:44:31.853Z","updated_at":"2025-10-04T22:31:22.919Z","avatar_url":"https://github.com/caos.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# boom: the base tooling operator\n\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n[![Release](https://github.com/caos/boom/workflows/Release/badge.svg)](https://github.com/caos/boom/actions)\n[![license](https://badgen.net/github/license/caos/boom/)](https://github.com/caos/boom/blob/master/LICENSE)\n[![release](https://badgen.net/github/release/caos/boom/stable)](https://github.com/caos/boom/releases)\n[![Go Report Card](https://goreportcard.com/badge/github.com/caos/boom)](https://goreportcard.com/report/github.com/caos/boom)\n\n\u003e This project got moved and integrated into [Orbos](https://github.com/caos/orbos).\n\n## What is it\n\n`boom` is designed to ensure that someone can create a reproducable \"platform\" with tools which are tested for their interoperability.\n\nCurrently we include the following tools:\n\n- Ambassador Edge Stack\n- Prometheus Operator\n- Grafana\n- logging-operator\n- kube-state-metrics\n- prometheus-node-exporter\n- loki\n- ArgoCD\n\nUpcoming tools:\n\n- Flux\n\n## How does it work\n\nThe operator works by reading a configuration (crd) located in a GIT Repository. Alternativly this `crd` can be read from the k8s api.\nIn our default setup our \"cluster lifecycle\" tool `orbiter`, shares the repository and secrets with `boom`. This because `orbiter` deploys `boom` in a newly created `k8s` cluster.\n\n```yaml\napiVersion: boom.caos.ch/v1beta1\nkind: Toolset\nmetadata:\n  name: caos\n  namespace: caos-system\nspec:\n  preApply:\n    deploy: true\n    folder: preapply\n  postApply:\n    deploy: true\n    folder: postapply\n  prometheus-operator:\n    deploy: true\n  logging-operator:\n    deploy: true\n  prometheus-node-exporter:\n    deploy: true\n  grafana:\n    deploy: true\n  ambassador:\n    deploy: true\n    service:\n      type: LoadBalancer\n  kube-state-metrics:\n    deploy: true\n  argocd:\n    deploy: false\n    customImage:\n      enabled: false\n      imagePullSecret: github-image\n      gopassGPGKey: \"gpg\"\n      gopassSSHKey: \"ssh\"\n      gopassStores:\n      - directory: \"directory\"\n        storeName: \"store\"\n  prometheus:\n    deploy: true\n    storage:\n      size: 5Gi\n      storageClass: standard\n  loki:\n    deploy: true\n    storage:\n      size: 5Gi\n      storageClass: standard\n```\n\n## How to use it\n\n\u003e Due to the github restriciton that even public images need to be authenticated, you need to make sure that you have `pull secret`. The used `personal access token` has to have the `repo` and `read:packages` permissions.\n\n```bash\nkubectl -n caos-system create secret docker-registry boomregistry --docker-server=docker.pkg.github.com --docker-username=${GITHUB_USERNAME} --docker-password=${GITHUB_ACCESS_TOKEN}\n```\n\n### GitOps Mode\n\n#### Demo with a public crd repository\n\nTo easy test the example we have created a `demo crd repo`, located here [demo-orbiter-boom](https://github.com/caos/demo-orbiter-boom). It holds a `boom.yml` which can be applied to your cluster.\n\nApply `Boom` to your cluster:\n\n```bash\nkustomize build examples/gitops/publicrepo | kubectl apply -f -\n```\n\n#### Example with a private repository\n\nYour first have to create an ssh-key which is added as deploy key to your git repository and then save the private key as secret in examples/gitops/privaterepo/secret.\nChange the name of the key in the examples/gitops/privaterepo/kustomization.yaml with the filename of the saved key.\n\nApply `Boom` to your cluster:\n\n```bash\nkustomize build examples/gitops/privaterepo | kubectl apply -f -\n```\n\n#### k8s API Mode\n\nexample coming soon\n\n## License\n\nAs usual Apache-2.0 see [here](./LICENSE)\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaos%2Fboom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaos%2Fboom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaos%2Fboom/lists"}