Skip to content
This repository was archived by the owner on Dec 10, 2025. It is now read-only.

v0.1.0

Choose a tag to compare

@iciclespider iciclespider released this 06 Oct 04:08
· 21 commits to main since this release

Enable generating Crossplane Usages based on the dependencies between Composed Resources.

BREAKING CHANGE

In order to track dependencies, primitive values obtained from protobuf messages, such as strings and numbers, are no longer the primitive value itself, but are now instances of the crossplane.pythonic.protobuf.Value class. When assigned to other protobuf fields, this is handled transparently. When these primitive values are used in pure python, the Value needs to be coerced into the raw primitive value.

For example, take the following Composite which contains an integer count value used in a loop in the Composition:

apiVersion: example.pythonic.com/v1alpha1
kind: Count
metadata:
  name: pythonic
spec:
  count: 4

In v0.0.11, this count could be processed like so:

  - step: render-templates
    functionRef:
      name: function-pythonic
    input:
      apiVersion: pythonic.fn.fortra.com/v1alpha1
      kind: Composite
      composite: |
        class Composite(BaseComposite):
          def compose(self):
            for ix in range(self.spec.count):
              # Create some resource...

In v0.1.0, self.spec.count needs to be coerced to an integer, like so:

  - step: render-templates
    functionRef:
      name: function-pythonic
    input:
      apiVersion: pythonic.fn.fortra.com/v1alpha1
      kind: Composite
      composite: |
        class Composite(BaseComposite):
          def compose(self):
            for ix in range(int(self.spec.count)):
              # Create some resource...