x-generation
x-generation copied to clipboard
Support Environment Configs
What problem are you facing?
Support generating manifests with EnvironmentConfig support
How could Crossplane help solve your problem?
Add support for top level environment config, (patches, selectors, etc.) and setting ToEnvironmentFieldPath and FromEnvironmentFieldPath.
@stevendborrelli after we merge https://github.com/crossplane-contrib/x-generation/pull/29 we have the option to use EnvironmentConfig like this - does this makes sense for your ?
group: eks.aws.example.cloud
name: Cluster
version: v1beta1
provider:
baseURL: https://raw.githubusercontent.com/crossplane-contrib/%s/%s/package/crds/%s
name: provider-upjet-aws
version: v1.3.1
crd:
file: eks.aws.upbound.io_clusters.yaml
version: v1beta1
compositions:
- name: xcluster.eks.aws.example.cloud
provider: example
default: true
overrideFieldsInClaim:
- claimPath: spec.forProvider.vpcConfig
ignore: true
overrideSettings:
patches:
- type: FromEnvironmentFieldPath
fromFieldPath: aws.vpc.subnetIds
toFieldPath: spec.forProvider.vpcConfig[0].subnetIds
policy:
fromFieldPath: Required
usePipeline: true
additionalPipelineSteps:
- before: true
step: environmentConfigs
functionRef:
name: function-environment-configs
input:
apiVersion: environmentconfigs.fn.crossplane.io/v1beta1
kind: Input
spec:
environmentConfigs:
- type: Selector
selector:
matchLabels:
- key: region
type: FromCompositeFieldPath
valueFromFieldPath: spec.forProvider.region
- key: type
type: Value
value: network
is released with v0.10.0 checkout: https://github.com/crossplane-contrib/x-generation/blob/main/package/EKS-Cluster/generate.yaml#L27-L28