Harthelm Docs
REST APIRegistries

Add a container registry

Team admins (`team.manage`). Sync uses the registry whose `address` is the longest match of an image (whole path segments) to resolve the image's digest, and the service's pods pull with the same credentials. The credentials are not checked here; a Plan reports a refused pull as the blocker `image-unavailable`. 409 `name-taken` when the team has a registry of that name or address.

Generated from openapi/harthelm.yaml at v1.5.0
POST
/teams/{team}/registries

Authorization

cookie__Host-harthelm_session<token>

Browser session of the UI (12 h idle, 7 days absolute). State-changing requests also need the header Harthelm-CSRF: 1 and a matching Origin.

Path Parameters

team*integer

Numeric resource id.

Formatint64
Range1 <= value

Header Parameters

Idempotency-Key?string

Client-chosen key (at most 255 characters); a repeated key returns the first result for 24 h.

Length1 <= length <= 255

Request Body

application/json
  1. body
name*string
Length1 <= length <= 64
address*RegistryAddress

A registry host with an optional port and path prefix, lower case, without a scheme: ghcr.io, ghcr.io/acme, registry.example.org:5000/team. Docker Hub is docker.io. An image matches on whole path segments; the longest matching address of the team wins.

Match^[a-z0-9]([-a-z0-9.]*[a-z0-9])?(:[0-9]{1,5})?(/[a-z0-9]([-a-z0-9._]*[a-z0-9])?)*$
Lengthlength <= 255
username*string
Length1 <= length <= 255
password*string

The password or access token; stored sealed and never returned.

Formatpassword
Length1 <= length <= 4096

Response Body

The registry.

application/json
  1. response
id*ID

Numeric resource id.

Formatint64
Range1 <= value
team_id*ID

Numeric resource id.

Formatint64
Range1 <= value
name*string
address*RegistryAddress

A registry host with an optional port and path prefix, lower case, without a scheme: ghcr.io, ghcr.io/acme, registry.example.org:5000/team. Docker Hub is docker.io. An image matches on whole path segments; the longest matching address of the team wins.

Match^[a-z0-9]([-a-z0-9.]*[a-z0-9])?(:[0-9]{1,5})?(/[a-z0-9]([-a-z0-9._]*[a-z0-9])?)*$
Lengthlength <= 255
username*string
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
curl -X POST 'https://console.example.com/api/v1/teams/1/registries' \  -H 'Content-Type: application/json' \  -d '{  "name": "string",  "address": "string",  "username": "string",  "password": "pa$$word"}'
{  "id": 1,  "team_id": 1,  "name": "string",  "address": "string",  "username": "string",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}