add back crossplane compositions (#33)
Signed-off-by: Manabu McCloskey <manabu.mccloskey@gmail.com>
This commit is contained in:
parent
8a38e3c94b
commit
54500c9c8a
3 changed files with 178 additions and 0 deletions
22
crossplane-integrations/crossplane-compositions.yaml
Executable file
22
crossplane-integrations/crossplane-compositions.yaml
Executable file
|
@ -0,0 +1,22 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: crossplane-compositions
|
||||
namespace: argocd
|
||||
labels:
|
||||
env: dev
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: cnoe://crossplane-compositions
|
||||
targetRevision: HEAD
|
||||
path: "."
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: "https://kubernetes.default.svc"
|
||||
namespace: crossplane-system
|
||||
syncPolicy:
|
||||
automated: {}
|
|
@ -0,0 +1,76 @@
|
|||
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
apiVersion: apiextensions.crossplane.io/v1
|
||||
kind: CompositeResourceDefinition
|
||||
metadata:
|
||||
name: xobjectstorages.awsblueprints.io
|
||||
spec:
|
||||
claimNames:
|
||||
kind: ObjectStorage
|
||||
plural: objectstorages
|
||||
group: awsblueprints.io
|
||||
names:
|
||||
kind: XObjectStorage
|
||||
plural: xobjectstorages
|
||||
connectionSecretKeys:
|
||||
- region
|
||||
- bucket-name
|
||||
- s3-put-policy
|
||||
versions:
|
||||
- name: v1alpha1
|
||||
served: true
|
||||
referenceable: true
|
||||
schema:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
spec:
|
||||
description: ObjectStorageSpec defines the desired state of ObjectStorage
|
||||
properties:
|
||||
resourceConfig:
|
||||
description: ResourceConfig defines general properties of this AWS
|
||||
resource.
|
||||
properties:
|
||||
deletionPolicy:
|
||||
description: Defaults to Delete
|
||||
enum:
|
||||
- Delete
|
||||
- Orphan
|
||||
type: string
|
||||
name:
|
||||
description: Set the name of this resource in AWS to the value
|
||||
provided by this field.
|
||||
type: string
|
||||
providerConfigName:
|
||||
type: string
|
||||
region:
|
||||
type: string
|
||||
tags:
|
||||
items:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- key
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- providerConfigName
|
||||
- region
|
||||
- tags
|
||||
type: object
|
||||
required:
|
||||
- resourceConfig
|
||||
type: object
|
||||
status:
|
||||
description: ObjectStorageStatus defines the observed state of ObjectStorage
|
||||
properties:
|
||||
bucketName:
|
||||
type: string
|
||||
bucketArn:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
|
@ -0,0 +1,80 @@
|
|||
apiVersion: apiextensions.crossplane.io/v1
|
||||
kind: Composition
|
||||
metadata:
|
||||
name: s3bucket.awsblueprints.io
|
||||
labels:
|
||||
awsblueprints.io/provider: aws
|
||||
awsblueprints.io/environment: dev
|
||||
s3.awsblueprints.io/configuration: standard
|
||||
spec:
|
||||
writeConnectionSecretsToNamespace: crossplane-system
|
||||
compositeTypeRef:
|
||||
apiVersion: awsblueprints.io/v1alpha1
|
||||
kind: XObjectStorage
|
||||
patchSets:
|
||||
- name: common-fields
|
||||
patches:
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.providerConfigName
|
||||
toFieldPath: spec.providerConfigRef.name
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.deletionPolicy
|
||||
toFieldPath: spec.deletionPolicy
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.region
|
||||
toFieldPath: spec.forProvider.region
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.name
|
||||
toFieldPath: metadata.annotations[crossplane.io/external-name]
|
||||
resources:
|
||||
- name: s3-bucket
|
||||
connectionDetails:
|
||||
- name: bucket-name
|
||||
fromConnectionSecretKey: endpoint
|
||||
- name: region
|
||||
fromConnectionSecretKey: region
|
||||
base:
|
||||
apiVersion: s3.aws.crossplane.io/v1beta1
|
||||
kind: Bucket
|
||||
spec:
|
||||
deletionPolicy: Delete
|
||||
forProvider:
|
||||
objectOwnership: BucketOwnerEnforced
|
||||
publicAccessBlockConfiguration:
|
||||
blockPublicPolicy: true
|
||||
restrictPublicBuckets: true
|
||||
serverSideEncryptionConfiguration:
|
||||
rules:
|
||||
- applyServerSideEncryptionByDefault:
|
||||
sseAlgorithm: AES256
|
||||
tagging:
|
||||
tagSet:
|
||||
- key: cnoe
|
||||
value: "1"
|
||||
patches:
|
||||
- type: PatchSet
|
||||
patchSetName: common-fields
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.tags
|
||||
toFieldPath: spec.forProvider.tagging.tagSet
|
||||
policy:
|
||||
mergeOptions:
|
||||
appendSlice: true
|
||||
keepMapValues: true
|
||||
- type: FromCompositeFieldPath
|
||||
fromFieldPath: spec.resourceConfig.region
|
||||
toFieldPath: spec.forProvider.locationConstraint
|
||||
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
|
||||
toFieldPath: spec.writeConnectionSecretToRef.namespace
|
||||
- type: ToCompositeFieldPath
|
||||
fromFieldPath: metadata.annotations[crossplane.io/external-name]
|
||||
toFieldPath: status.bucketName
|
||||
- type: ToCompositeFieldPath
|
||||
fromFieldPath: status.atProvider.arn
|
||||
toFieldPath: status.bucketArn
|
||||
- fromFieldPath: metadata.uid
|
||||
toFieldPath: spec.writeConnectionSecretToRef.name
|
||||
transforms:
|
||||
- type: string
|
||||
string:
|
||||
fmt: "%s-bucket"
|
Loading…
Reference in a new issue