{"id":28535163,"url":"https://github.com/gerritcodereview/k8s-gerrit","last_synced_at":"2026-03-03T23:01:01.570Z","repository":{"id":43669082,"uuid":"157905457","full_name":"GerritCodeReview/k8s-gerrit","owner":"GerritCodeReview","description":"Kubernetes support for Gerrit Code Review","archived":false,"fork":false,"pushed_at":"2026-02-27T22:21:12.000Z","size":14336,"stargazers_count":36,"open_issues_count":5,"forks_count":24,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-02-28T01:52:44.380Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GerritCodeReview.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-11-16T18:21:06.000Z","updated_at":"2026-02-27T22:21:16.000Z","dependencies_parsed_at":"2023-12-22T15:06:28.894Z","dependency_job_id":"3c87a80d-e43a-4a7b-953f-1516f6b3b5c8","html_url":"https://github.com/GerritCodeReview/k8s-gerrit","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/GerritCodeReview/k8s-gerrit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerritCodeReview%2Fk8s-gerrit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerritCodeReview%2Fk8s-gerrit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerritCodeReview%2Fk8s-gerrit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerritCodeReview%2Fk8s-gerrit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GerritCodeReview","download_url":"https://codeload.github.com/GerritCodeReview/k8s-gerrit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GerritCodeReview%2Fk8s-gerrit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30064779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2025-06-09T17:14:13.597Z","updated_at":"2026-03-03T23:01:01.565Z","avatar_url":"https://github.com/GerritCodeReview.png","language":"Java","readme":"# Gerrit Deployment on Kubernetes\n\nContainer images, configurations and a Kubernetes Operator for installing\n[Gerrit](https://www.gerritcodereview.com/) on [Kubernetes](https://kubernetes.io/).\n\n# Deploying Gerrit on Kubernetes\n\nA Gerrit Operator can be used to install and operate Gerrit in a\nKubernetes cluster. The [documentation](./Documentation/operator.md) describes\nhow to build and deploy the Gerrit Operator and how to use it to install Gerrit.\n\n# Docker images\n\nThis project provides the sources for docker images used by the Kubernetes\ndeployment. The images are also provided on [Dockerhub](https://hub.docker.com/u/k8sgerrit).\n\nThe project also provides scripts to build and publish the images so that custom\nversions can be used. This requires however a docker registry that can be accessed\nfrom the Kubernetes cluster, on which Gerrit will be deployed. The functionality\nof the scripts is described in the following sub-sections.\n\n## Building images\n\nTo build all images, the `build`-script in the root directory of the project can\nbe used:\n\n```\n./build\n```\n\nIf a specific image should be built, the image name can be specified as an argument.\nMultiple images can be specified at once:\n\n```\n./build gerrit git-gc\n```\n\nThe build-script usually uses the `latest`-tag to tag the images. By using the\n`--tag TAG`-option, a custom tag can be defined:\n\n```\n./build --tag test\n```\n\nThe version of Gerrit built into the images can be changed by providing a download\nURL for a `.war`-file containing Gerrit:\n\n```\n./build --gerrit-url https://example.com/gerrit.war\n```\n\nThe version of plugins and modules built into the images can be changed by providing\nthe Gerrit branch. By default, the branch is set to `master`:\n```\n./build --branch stable-3.13\n```\n\nNote, if you do not include the `--gerrit-url` option, the image will automatically use\nthe Gerrit release that corresponds to the selected `--branch`.\n\nThe version of a health-check plugin built into the images can be changed by\nproviding a download URL for a `.jar`-file containing the plugin:\n\n```\n./build --healthcheck-jar-url https://example.com/healthcheck.jar\n```\n\nThe build script will in addition tag the image with the output of\n`git describe --dirty`.\n\nThe target platform for the image build can be specified by using the `--platform PLATFORM` option.\nThis allows you to build images for different architectures such as ARM or x86. By default, the\nplatform is set to linux/amd64.\n\n```\n./build --platform linux/arm64\n```\n\nThe single component images inherit a base image. The `Dockerfile` for the base\nimage can be found in the `./base`-directory. It will be\nautomatically built by the `./build`-script. If the component images are built\nmanually, the base image has to be built first with the target\n`base:latest`, since it is not available in a registry and thus has\nto exist locally.\n\n## Publishing images\n\nThe publish script in the root directory of the project can be used to push the\nbuilt images to the configured registry. To do so, log in first, before executing\nthe script.\n\n```\ndocker login \u003cregistry\u003e\n```\n\nTo configure the registry and image version, the respective values can be\nconfigured via env variables `REGISTRY` and `TAG`. In addition, these values can\nalso be passed as command line options named `--registry` and `--tag` in which\ncase they override the values from env variables:\n\n```\n./publish \u003ccomponent-name\u003e\n```\n\nThe `\u003ccomponent-name\u003e` is one of: `apache-git-http-backend`, `git-gc`, `gerrit`\nor `gerrit-init`.\n\nAdding the `--update-latest`-flag will also update the images tagged `latest` in\nthe repository:\n\n```\n./publish --update-latest \u003ccomponent-name\u003e\n```\n\n## Running images in Docker\n\nThe container images are meant to be used by the Kubernetes deployment provided\nin this project. The images are thus not designed to be used in a standalone\nsetup. To run Gerrit on Docker use the\n[docker-gerrit](https://gerrit-review.googlesource.com/admin/repos/docker-gerrit)\nproject.\n\n# Running tests\n\nThe tests are implemented using Python and `pytest`. To ensure a well-defined\ntest-environment, `pipenv` is meant to be used to install packages and provide a\nvirtual environment in which to run the tests. To install pipenv, use `brew`:\n\n```sh\nbrew install pipenv\n```\n\nMore detailed information can be found in the\n[pipenv GitHub repo](https://github.com/pypa/pipenv).\n\nTo create the virtual environment with all required packages, run:\n\n```sh\npipenv install\n```\n\nTo run all tests, execute:\n\n```sh\npipenv run pytest\n```\n\nSome tests will need to create files in a temporary directory. Some of these\nfiles will be mounted into docker containers by tests. For this to work make\neither sure that the system temporary directory is accessible by the Docker\ndaemon or set the base temporary directory to a directory accessible by Docker\nby executing:\n\n```sh\npipenv run pytest --basetemp=/tmp/k8sgerrit\n```\n\nBy default the build of the container images will not use the build cache\ncreated by docker. To enable the cache, execute:\n\n```sh\npipenv run pytest --build-cache\n```\n\nSlow tests may be marked with the decorator `@pytest.mark.slow`. These tests\nmay then be skipped as follows:\n\n```sh\npipenv run pytest --skip-slow\n```\n\nThere are also other marks, allowing to select tests (refer to\n[this section](#test-marks)).\n\nTo run specific tests, execute one of the following:\n\n```sh\n# Run all tests in a directory (including subdirectories)\npipenv run pytest tests/container-images/base\n\n# Run all tests in a file\npipenv run pytest tests/container-images/base/test_container_build_base.py\n\n# Run a specific test\npipenv run \\\n  pytest tests/container-images/base/test_container_build_base.py::test_build_base\n\n# Run tests with a specific marker\npipenv run pytest -m \"docker\"\n```\n\nFor a more detailed description of how to use `pytest`, refer to the\n[official documentation](https://docs.pytest.org/en/latest/contents.html).\n\n## Test marks\n\n### docker\n\nMarks tests which start up docker containers. These tests will interact with\nthe containers by either using `docker exec` or sending HTTP-requests. Make\nsure that your system supports this kind of interaction.\n\n### incremental\n\nMarks test classes in which the contained test functions have to run\nincrementally.\n\n### integration\n\nMarks integration tests. These tests test interactions between containers,\nbetween outside clients and containers.\n\n### slow\n\nMarks tests that need an above average time to run.\n\n### structure\n\nMarks structure tests. These tests are meant to test, whether certain components\nexist in a container. These tests ensure that components expected by the users\nof the container are present in the containers.\n\n# Contributing\n\nContributions to this project are welcome. If you are new to the Gerrit workflow,\nrefer to the [Gerrit-documentation](https://gerrit-review.googlesource.com/Documentation/intro-gerrit-walkthrough.html)\nfor guidance on how to contribute changes.\n\nThe contribution guidelines for this project can be found\n[here](Documentation/developer-guide.md).\n\n# Roadmap\n\nThe roadmap of this project can be found [here](Documentation/roadmap.md).\n\nFeature requests can be made by pushing a change for the roadmap. This can also\nbe done to announce/discuss features that you would like to provide.\n\n# Contact\n\nThe [Gerrit Mailing List](https://groups.google.com/forum/#!forum/repo-discuss)\ncan be used to post questions and comments on this project or Gerrit in general.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerritcodereview%2Fk8s-gerrit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerritcodereview%2Fk8s-gerrit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerritcodereview%2Fk8s-gerrit/lists"}