xflux.gitops.platform.upbound.io
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xflux.gitops.platform.upbound.io
creationTimestamp: null
labels:
type: gitops
spec:
compositeTypeRef:
apiVersion: gitops.platform.upbound.io/v1alpha1
kind: XFlux
mode: Pipeline
pipeline:
- step: patch-and-transform
functionRef:
name: crossplane-contrib-function-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
patchSets:
- name: Common
patches:
- fromFieldPath: metadata.labels
toFieldPath: metadata.labels
type: FromCompositeFieldPath
- fromFieldPath: metadata.annotations
toFieldPath: metadata.annotations
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.providerConfigName
toFieldPath: spec.providerConfigRef.name
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.deletionPolicy
toFieldPath: spec.deletionPolicy
type: FromCompositeFieldPath
resources:
- base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
spec:
forProvider:
chart:
name: flux2
namespace: flux-system
values:
imageAutomationController:
create: false
imageReflectionController:
create: false
name: releaseFlux
patches:
- patchSetName: Common
type: PatchSet
- fromFieldPath: spec.parameters.operators.flux.version
toFieldPath: spec.forProvider.chart.version
type: FromCompositeFieldPath
- combine:
strategy: string
string:
fmt: https://github.com/fluxcd-community/helm-charts/releases/download/flux2-%[1]s/flux2-%[1]s.tgz
variables:
- fromFieldPath: spec.parameters.operators.flux.version
toFieldPath: spec.forProvider.chart.url
type: CombineFromComposite
- base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
spec:
forProvider:
chart:
name: flux2-sync
repository: https://fluxcd-community.github.io/helm-charts
namespace: flux-system
values:
gitRepository:
spec:
gitImplementation: go-git
kustomization:
spec:
sourceRef:
kind: GitRepository
name: syncFlux
patches:
- patchSetName: Common
type: PatchSet
- fromFieldPath: spec.parameters.operators.flux-sync.version
toFieldPath: spec.forProvider.chart.version
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.providerConfigName
toFieldPath: metadata.annotations[crossplane.io/external-name]
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.source.git.timeout
toFieldPath: spec.forProvider.values.gitRepository.spec.timeout
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.source.git.interval
toFieldPath: spec.forProvider.values.gitRepository.spec.interval
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.source.git.interval
toFieldPath: spec.forProvider.values.kustomization.spec.interval
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.source.git.ref.name
toFieldPath: spec.forProvider.values.gitRepository.spec.ref.name
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.source.git.url
toFieldPath: spec.forProvider.values.gitRepository.spec.url
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.source.git.path
toFieldPath: spec.forProvider.values.kustomization.spec.path
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.kubeConfigSecretRef.name
toFieldPath: spec.forProvider.values.kustomization.spec.kubeConfig.secretRef.name
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.kubeConfigSecretRef.key
toFieldPath: spec.forProvider.values.kustomization.spec.kubeConfig.secretRef.key
type: FromCompositeFieldPath
- fromFieldPath: spec.parameters.providerConfigName
toFieldPath: spec.forProvider.values.gitRepository.spec.ref.branch
transforms:
- match:
fallbackValue: null
patterns:
- regexp: .*
result: ""
type: regexp
type: match
type: FromCompositeFieldPath
writeConnectionSecretsToNamespace: upbound-system