blob: 55a493949e0e82faaa3f66bf506676607fc9fad6 [file] [view]
# FetchJob container image
Container to run a job that fetches from remote repositories to corresponding
local repositories. This can be used to create copies of repositories hosted on
other git servers in the local Gerrit. This is useful for backing up repositories
or to have a copy of branches of a project that was forked in the local Gerrit.
## Content
* base image
* `fetch-job.py`: script executing the fetches
## Start
* execution of the provided `fetch-job.py`
## Configuration
```yaml
remotes:
- name: example
url: https://example.com
timeout: 5m
fetch:
- remoteRepo: project1
- remoteRepo: project2
localRepo: local/project2
- remoteRepo: project3
localRepo: local/project3
refSpec: "+refs/heads/*:refs/heads/remote/*"
- remoteRepo: project4
localRepo: local/project4
refSpec:
- +refs/heads/*:refs/heads/remote/*
- ^refs/heads/excluded-*
```
## Authentication
Mount a `.netrc` file at `/home/gerrit/.netrc` to provide credentials for
authenticating with remote servers.
## TLS/SSL
If the remote server uses a certificate signed by a non-publicly-trusted CA
(e.g. an internal CA), provide the CA certificate in PEM format at
`/home/gerrit/ca.crt`. The fetch-job will automatically use it for all fetch
operations if present.
When using the Gerrit operator, both the `.netrc` and `ca.crt` files can be
provided via the `secretRef` field of the `IncomingReplicationTask` resource.
If the referenced secret contains a `.netrc` key and/or a `ca.crt` key, the
operator will mount them at the expected paths automatically.
Adding a custom `ca.crt` will use that file for SSL verification, ignoring
existing system CA bundles.