diff --git a/services/acm/certaws-composition.yaml b/services/acm/certaws-composition.yaml new file mode 100644 index 0000000..e1d1065 --- /dev/null +++ b/services/acm/certaws-composition.yaml @@ -0,0 +1,82 @@ +apiVersion: apiextensions.crossplane.io/v1 +kind: Composition +metadata: + name: awscert-composition + labels: + crossplane/provider: default + crossplane/xrd: xawscerts.crossplane.evina +spec: + compositeTypeRef: + apiVersion: crossplane.evina/v1alpha1 + kind: XAWSCert + patchSets: + - name: region + patches: + - type: FromCompositeFieldPath + fromFieldPath: spec.parameters.region + toFieldPath: spec.forProvider.region + - name: providerConfigRef + patches: + - type: FromCompositeFieldPath + fromFieldPath: spec.parameters.providerConfigRef + toFieldPath: spec.providerConfigRef.name + writeConnectionSecretsToNamespace: crossplane + resources: + - name: Certificate + base: + apiVersion: acm.aws.upbound.io/v1beta1 + kind: Certificate + metadata: + labels: + resource: Certificate + spec: + forProvider: + validationMethod: DNS + tags: + Environment: #Environment + Project: #NomDuProject + CreatedBy: Crossplane + Team: infra + Region: eu-west-1 + Service: ACM + patches: + - type: PatchSet + patchSetName: region + - type: PatchSet + patchSetName: providerConfigRef + - type: FromCompositeFieldPath + fromFieldPath: spec.parameters.domainName + toFieldPath: spec.forProvider.domainName + - type: ToCompositeFieldPath + fromFieldPath: status.atProvider.arn + toFieldPath: status.certificate.arn + - type: ToCompositeFieldPath + fromFieldPath: status.atProvider.domainValidationOptions + toFieldPath: status.certificate.domainValidationOptions + - name: Record + base: + apiVersion: route53.aws.upbound.io/v1beta1 + kind: Record + metadata: + labels: + resource: Record + spec: + forProvider: + ttl: 300 + patches: + - type: PatchSet + patchSetName: region + - type: FromCompositeFieldPath + fromFieldPath: spec.parameters.zoneId + toFieldPath: spec.forProvider.zoneId + - type: FromCompositeFieldPath + fromFieldPath: status.certificate.domainValidationOptions[0].resourceRecordName + toFieldPath: spec.forProvider.name + - type: FromCompositeFieldPath + fromFieldPath: status.certificate.domainValidationOptions[0].resourceRecordValue + toFieldPath: spec.forProvider.records[0] + - type: FromCompositeFieldPath + fromFieldPath: status.certificate.domainValidationOptions[0].resourceRecordType + toFieldPath: spec.forProvider.type + policy: + fromFieldPath: Required \ No newline at end of file diff --git a/services/acm/certaws.yaml b/services/acm/certaws.yaml new file mode 100644 index 0000000..60b8ae6 --- /dev/null +++ b/services/acm/certaws.yaml @@ -0,0 +1,55 @@ +apiVersion: apiextensions.crossplane.io/v1 +kind: CompositeResourceDefinition +metadata: + name: xawscerts.crossplane.evina +spec: + group: crossplane.evina + names: + kind: XAWSCert + plural: xawscerts + claimNames: + kind: AWSCert + plural: awscerts + defaultCompositionRef: + name: awscert-composition + versions: + - name: v1alpha1 + served: true + referenceable: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + type: object + properties: + parameters: + type: object + properties: + region: + description: Region where you want to deploy your serviceLoadBalancer + type: string + domainName: + description: Name of the domain to use + type: string + zoneId: + description: Name of the hosted zone to use + type: string + providerConfigRef: + description: Name of the Kubernetes provider config + type: string + required: + - region + - domainName + - zoneId + - providerConfigRef + status: + type: object + properties: + name: + description: name managed + type: string + certificate: + description: Values generated from the ACM API. + type: object + x-kubernetes-preserve-unknown-fields: true