From e92c9bed0ee0138e3f2c8bf5060c1b8473861c9c Mon Sep 17 00:00:00 2001 From: nold Date: Wed, 8 Nov 2023 09:09:04 +0100 Subject: [PATCH] add: crossplane resources --- .../manifests/composition-bucket.yml | 138 +++++++++++++++ .../manifests/composition-postgres.yml | 164 ++++++++++++++++++ .../manifests/provider-kubernetes.yml | 6 + ...-terraform.yaml => provider-terraform.yml} | 0 projects/crossplane/manifests/xrd-bucket.yml | 42 +++++ .../crossplane/manifests/xrd-postgres.yml | 48 +++++ 6 files changed, 398 insertions(+) create mode 100644 projects/crossplane/manifests/composition-bucket.yml create mode 100644 projects/crossplane/manifests/composition-postgres.yml create mode 100644 projects/crossplane/manifests/provider-kubernetes.yml rename projects/crossplane/manifests/{crossplane-plugin-terraform.yaml => provider-terraform.yml} (100%) create mode 100644 projects/crossplane/manifests/xrd-bucket.yml create mode 100644 projects/crossplane/manifests/xrd-postgres.yml diff --git a/projects/crossplane/manifests/composition-bucket.yml b/projects/crossplane/manifests/composition-bucket.yml new file mode 100644 index 00000000..337e917e --- /dev/null +++ b/projects/crossplane/manifests/composition-bucket.yml @@ -0,0 +1,138 @@ +apiVersion: apiextensions.crossplane.io/v1 +kind: Composition +metadata: + annotations: + labels: + implementation: terraform + provider: minio + name: tf-bucket.gnu.one +spec: + compositeTypeRef: + apiVersion: s3.gnu.one/v1alpha1 + kind: XBucket + mode: Resources + publishConnectionDetailsWithStoreConfigRef: + name: default + resources: + - base: + apiVersion: tf.upbound.io/v1beta1 + kind: Workspace + spec: + forProvider: + module: | + terraform { + required_providers { + minio = { + source = "aminueza/minio" + version = "1.17.2" + } + } + } + + variable "access_key" { + description = "S3 Access Key" + type = string + } + + variable "secret_key" { + description = "S2 Secret Key" + type = string + sensitive = true + } + + variable "name" { + description = "Name of Bucket & Service Account" + type = string + } + + variable "endpoint" { + description = "Minio Endpoint" + type = string + default = "s3-minio.s3.svc.cluster.local:9000" + } + + provider "minio" { + minio_server = var.endpoint + minio_user = var.access_key + minio_password = var.secret_key + } + + resource "minio_s3_bucket" "bucket" { + bucket = var.name + acl = "private" + force_destroy = false + } + + resource "minio_iam_policy" "policy" { + name = var.name + policy= <