* scheme update

This commit is contained in:
2025-11-30 01:31:03 +01:00
parent 49f0002fc6
commit e3816d8948
27 changed files with 307 additions and 0 deletions

View File

@@ -0,0 +1,137 @@
# =============================================================================
# COMPOSITION
# Configure comment créer les ressources réelles
# =============================================================================
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
# Format: <resource>.<provider>.<group>
# Exemple: database.aws.mathod.io, network.gcp.mathod.io
name: <resource>.<provider>.mathod.io
labels:
provider: <provider_name>
type: <resource_type>
spec:
# Référence vers le XRD
compositeTypeRef:
apiVersion: mathod.io/v1alpha1
kind: X<ResourceName>
# Mode Pipeline (recommandé pour Crossplane v2)
mode: Pipeline
pipeline:
- step: patch-and-transform
functionRef:
name: function-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
resources:
# =============================================
# RESSOURCE MANAGÉE #1
# =============================================
- name: <resource-name>
base:
# API de la ressource (provider specific)
apiVersion: <provider>.aws.upbound.io/v1beta1
kind: <ResourceKind>
spec:
forProvider:
# Configuration de base
<field>: <value>
# Référence au ProviderConfig
providerConfigRef:
name: aws-provider
patches:
# -------------------------------------
# FromCompositeFieldPath
# Copie depuis le XR vers la ressource
# -------------------------------------
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.<paramName>
toFieldPath: spec.forProvider.<targetField>
# -------------------------------------
# ToCompositeFieldPath
# Copie depuis la ressource vers le XR
# -------------------------------------
- type: ToCompositeFieldPath
fromFieldPath: status.atProvider.<sourceField>
toFieldPath: status.<outputField>
# -------------------------------------
# Transform - Map
# Transforme une valeur avec un mapping
# -------------------------------------
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.<boolParam>
toFieldPath: spec.forProvider.<targetField>
transforms:
- type: map
map:
"true": Enabled
"false": Disabled
# -------------------------------------
# Transform - String
# Formate une string
# -------------------------------------
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.<paramName>
toFieldPath: spec.forProvider.<targetField>
transforms:
- type: string
string:
fmt: "prefix-%s-suffix"
# -------------------------------------
# Transform - Math
# Opération mathématique
# -------------------------------------
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.<intParam>
toFieldPath: spec.forProvider.<targetField>
transforms:
- type: math
math:
multiply: 2
# -------------------------------------
# CombineFromComposite
# Combine plusieurs champs
# -------------------------------------
- type: CombineFromComposite
combine:
variables:
- fromFieldPath: spec.parameters.<param1>
- fromFieldPath: spec.parameters.<param2>
strategy: string
string:
fmt: "%s-%s"
toFieldPath: spec.forProvider.<targetField>
# =============================================
# RESSOURCE MANAGÉE #2 (avec référence)
# =============================================
- name: <related-resource>
base:
apiVersion: <provider>.aws.upbound.io/v1beta1
kind: <RelatedResourceKind>
spec:
forProvider:
# Référence vers une autre ressource
<parent>Ref:
name: ""
providerConfigRef:
name: aws-provider
patches:
# Patch la référence
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.<paramName>
toFieldPath: spec.forProvider.<parent>Ref.name
---