{"id":40064565,"url":"https://github.com/n3ziniuka5/gantry","last_synced_at":"2026-01-19T07:34:28.535Z","repository":{"id":290076851,"uuid":"864542016","full_name":"n3ziniuka5/gantry","owner":"n3ziniuka5","description":"Simplifying deployments to Kubernetes","archived":false,"fork":false,"pushed_at":"2025-04-26T17:41:36.000Z","size":36,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-26T18:30:42.944Z","etag":null,"topics":["helm","helmfile","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/n3ziniuka5.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-28T13:53:02.000Z","updated_at":"2025-04-26T17:41:38.000Z","dependencies_parsed_at":"2025-04-26T18:42:29.349Z","dependency_job_id":null,"html_url":"https://github.com/n3ziniuka5/gantry","commit_stats":null,"previous_names":["n3ziniuka5/gantry"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/n3ziniuka5/gantry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n3ziniuka5%2Fgantry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n3ziniuka5%2Fgantry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n3ziniuka5%2Fgantry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n3ziniuka5%2Fgantry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n3ziniuka5","download_url":"https://codeload.github.com/n3ziniuka5/gantry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n3ziniuka5%2Fgantry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28562995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["helm","helmfile","kubernetes"],"created_at":"2026-01-19T07:34:28.462Z","updated_at":"2026-01-19T07:34:28.522Z","avatar_url":"https://github.com/n3ziniuka5.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gantry\n\n\u003e **Note:** Gantry binaries are not yet published. The project is currently in development.\n\nGantry is a tool designed to simplify Kubernetes deployments by abstracting away the intricacies and challenges often associated with Kubernetes and Helm charts.\n\n## Overview\n\n[Helm](https://github.com/helm/helm) and [Helmfile](https://github.com/helmfile/helmfile) are amazing tools, and they are required for Gantry to work. However, development teams using these tools often struggle with:\n- Steep learning curve for team members not familiar with Kubernetes and Helm\n- Enforcing common configuration across charts, e.g. making sure every deployment contains a pod disruption budget\n- Creation, maintenance and storage of Helm charts\n\n## Example Usage\n\ncreate a `gantry.conf` file for your application, here's an example one for nginx:\n```conf\nname: nginx\n\nimage: {\n  repository: nginx\n  tag: latest\n}\n\nports: [\n  {\n    name: http # to reference in liveness/readiness probes and services\n    port: 80   # the port the container listens on\n  }\n]\n```\n\nThen run `gantry helm install` to generate a Helm chart and install it into your cluster. You do not need to publish the Helm chart to a remote repository.\n\nThis creates a Helm release named `nginx`, and then you can use standard Helm commands to interact with the release, such as `helm uninstall` or `helm rollback`.\n\n# Development\n\n## Prerequisites\n\nFor local development and testing, we use the following tools:\n\n1. **Devbox**: A command-line tool that lets you easily create isolated shells for development. It's used to manage project dependencies and provide a consistent development environment.\n\n   To get started with Devbox:\n   ```\n   curl -fsSL https://get.jetpack.io/devbox | bash\n   devbox shell\n   # optionally install direnv to automatically initialize devbox - https://direnv.net/#basic-installation\n   direnv allow\n   ```\n\n1. **Just**: A handy command runner that serves as a modern alternative to `make`. It's used to define and run project-specific commands.\n\n   To run a command defined in the `Justfile`:\n   ```\n   just \u003ccommand-name\u003e\n   ```\n   Commands:\n   - `build`: Compile the project\n   - `clean`: Clean build artifacts\n   - `up`: Start Kind cluster for local testing\n   - `down`: Remove local Kind cluster\n   - `install-chart`: Install Helm chart\n   - `uninstall-chart`: Uninstall Helm chart\n   - `reinstall-chart`: Reinstall Helm chart\n   - `build-chart`: Generate Helm chart to `generated-chart` directory\n\n1. **SBT (Scala Build Tool)**: The de facto build tool for Scala projects. It's used to compile, test, and run the Scala code.\n\n   To start an SBT session:\n   ```\n   ./sbt\n   ```\n\n1. **Docker**: Used for containerizing the application and running it locally.\n\n   Make sure you have Docker installed and running on your machine.\n\n\n## TODO\n\n- [x] Basic deployment configuration\n- [x] Service and port configuration\n- [ ] Use HOCON instead of Yaml to configure Gantry\n- [ ] Publish binaries\n- [ ] Publish doc site\n- [ ] Resource and number of replicas configuration\n- [ ] Liveness/Readiness probes\n- [ ] Reference/include other configuration files, e.g. to share between applications\n- [ ] Deployment strategy configuration\n- [ ] Pod Disruption Budget configuration\n- [ ] Secret configuration\n- [ ] Config configuration\n- [ ] Write tests\n- [ ] Pre-stop wait to improve networking\n- [ ] Sidecar support\n- [ ] Cronjob support\n- [ ] Option to replace deployment on service major version change\n- [ ] Configurable entrypoint and command\n- [ ] Add \"Gantry Compose\" to deploy multipe services\n- [ ] GitHub action to install Gantry CLI\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn3ziniuka5%2Fgantry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn3ziniuka5%2Fgantry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn3ziniuka5%2Fgantry/lists"}