Skip to Content
OpenETL
Reference

openetl-connector.yaml

Every field of the file a connector package is built from.

A connector package, as its author writes it. openetl connector package builds it and writes its descriptor.

The file is openetl-connector.yaml at the root of the package's directory. openetl connector validate checks it without building, and the descriptor openetl connector package writes for each version is a Connector descriptor. openetl connector schema file prints its JSON Schema, for an editor to check the file as you write it. Build a connector shows one.

This page is generated from internal/connectorpkg/openetl-connector.schema.json. A field that isn't listed is refused, unless its section says other fields are allowed.

Top-level fields

FieldTypeRequiredDescription
namestringYesThe package's name: owner/name, or name for the official owner, openetl. Each part is lowercase letters, digits and hyphens, at most 63 characters. Matches ^([a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?/)?[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?$.
titlestringNoA display name, such as PostgreSQL. None: the name. Matches ^[^\n\r]*$. Has at most 100 characters.
descriptionstringNoOne line. Matches ^[^\n\r]*$. Has at most 500 characters.
licensestringNoAn SPDX expression, such as Apache-2.0. Matches ^[A-Za-z0-9.+:()\- ]{1,100}$.
repositoryhttpsYesThe package's source repository. Its name stays with it.
docshttpsNoThe package's documentation, which the console's connector catalog links to.
logohttps or stringNoAn SVG or PNG image of at most 256 KiB, which the UI shows: a file beside this one, such as ./logo.svg, which is packaged with each version, or an https URL, which openetl connector publish copies into the registry. Either https, or a string that matches ^[^:/][^:]*\.(svg|png)$.
authorstringNoWho makes the package, which the catalog shows. Has at most 200 characters.
tagsarray of stringNoWords the catalog shows with the package, such as database. Has at most 20 items. Each item matches ^[a-z0-9][a-z0-9-]{0,31}$.
platformsarray of stringNoThe os/arch pairs to build. Default: linux/amd64, linux/arm64, darwin/amd64 and darwin/arm64. Has at least one item. Has no item twice. Each item matches ^[a-z0-9]+/[a-z0-9]+$.
rolesobjectYesWhat the package provides, a source, a destination or both, and how each is built or run.

roles

What the package provides, a source, a destination or both, and how each is built or run.

FieldTypeRequiredDescription
sourceobjectNoThe package's source.
destinationobjectNoThe package's destination.
  • Has at least one of its fields.

roles.ROLE

ROLE is source or destination.

How one role is built, or run from an image or a manifest.

FieldTypeRequiredDescription
buildobjectNoHow to build the role's executable for each platform.
imagestringNoAn OCI image repository, without a tag: its tag is the release's version. Matches ^[a-z0-9]+([._-][a-z0-9]+)*(\.[a-z0-9-]+)*(:[0-9]+)?(/[a-z0-9]+([._-][a-z0-9]+)*)+$.
commandarray of stringNoThe image's argv, where it isn't its entrypoint. Each item isn't empty.
manifeststringNoA DeclarativeSource document, relative to this file. Sources only, and nothing else. Isn't empty.
requiresobjectNoWhat the role needs from the platform.
resourcesobjectNoA container launcher's requests and limits, and the job size the role wants.
stateobjectNoThe version of the checkpoint state the role writes, and the oldest it can resume from.
  • Has at least one of build, image or manifest.

roles.ROLE.build

How to build the role's executable for each platform.

FieldTypeRequiredDescription
gostringNoA Go main package, relative to this file, cross-compiled with CGO_ENABLED=0. Isn't empty.
commandstringNoRun once with sh in this file's directory, with OPENETL_VERSION and OPENETL_PLATFORMS set. Isn't empty.
outputstringNoWhere command leaves each platform's executable, relative to this file, with {os} and {arch} in it. Isn't empty.
  • Has exactly one of these: go; or command and output.

roles.ROLE.requires

What the role needs from the platform.

FieldTypeRequiredDescription
platformstringNoThe oldest openetl release the role runs on. Matches ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$.

roles.ROLE.resources

A container launcher's requests and limits, and the job size the role wants.

FieldTypeRequiredDescription
cpustringNoCPU, as a Kubernetes quantity, such as 500m or 2. Matches ^([0-9]+m|[0-9]+(\.[0-9]{1,3})?)$.
memorystringNoMemory, as a Kubernetes quantity, such as 512Mi. Matches ^[0-9]+(Ki|Mi|Gi|Ti|k|M|G|T)?$.
diskstringNoThe size of TMPDIR. Matches ^[0-9]+(Ki|Mi|Gi|Ti|k|M|G|T)?$.
hintstringNoThe job size a pipeline of this role starts at when it's sized automatically. Is one of xs, s, m, l or xl.

roles.ROLE.state

The version of the checkpoint state the role writes, and the oldest it can resume from.

FieldTypeRequiredDescription
versionintegerYesThe version of the state the role writes. Is at least 1.
readsintegerYesThe oldest version of the state the role can resume from. Is at least 1.

Types

Fields above refer to these types by name.

https

An https URL. A string. Matches ^https://[^/?#\s]+. Has at most 2048 characters.

On this page