Skip to content

v0.3.0-beta.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 08 Apr 12:41
e6be33c

API Breaks

  • #44: Add support for finding related resources via label selectors (by @xrstf) – see below for upgrade instructions

Features

  • #44: Add support for having one related resource match many objects (by @xrstf)
  • #52: The sync-agent does not mistakenly assume that 1 APIExport contains exactly 1 API group, and instead now correctly allows to have as many API groups as desired in one APIExport. You still need 1 agent per APIExport though (by @xrstf)
  • #52: Added group to the projection settings in a PublishedResource, allowing to rewrite the API group (by @xrstf)

Misc


Upgrade Notes

In order to upgrade to this release, you need to perform two important changes:

Updating related resources

You need to manually update every PublishedResource that contains related resources.

This was the old structure:

spec:
  related:
    - id: credentials
      reference:
        name:
          path: metadata.name
          regex: {pattern: ..., replacement: ...}
        # optional namespace
        namespace:
          path: metadata.foobar
          regex: {pattern: ..., replacement: ...}

This is the new structure (omitting the new fields introduced in 0.3):

spec:
  related:
    - id: credentials
      object:
        reference:
          path: metadata.name
          regex: {pattern: ..., replacement: ...}
        # optional namespace
        namespace:
          reference:
            path: metadata.foobar
            regex: {pattern: ..., replacement: ...}

Re-adjust projection rules

Since the api-syncagent now does not automatically project (= rename) the API group of published CRDs, if you want to keep the old behaviour (where every CRD, regardless of its API group, gets renamed to the group defined by the APIExport's name), you need to explicitly configure a projection.

In your PublishedResources, add

spec:
  projection:
    group: the.group.to.project.to # most like this is your APIExport's name if you want to keep the old behaviour