diff --git a/basic/README.md b/basic/README.md index e2f8f69..112b661 100644 --- a/basic/README.md +++ b/basic/README.md @@ -10,7 +10,7 @@ The [package1 directory](./package1) is an example of a custom package that you This configuration instructs idpbuilder to: 1. Create a Gitea repository. -2. Sync the contents of the [manifests](./package1/manifests) directory to the repostiory. +2. Sync the contents of the [manifests](./package1/manifests) directory to the repository. 3. Replace the `spec.Source(s).repoURL` field with the Gitea repository URL. ### Remote manifests diff --git a/localstack-integration/README.md b/localstack-integration/README.md new file mode 100644 index 0000000..eaf6015 --- /dev/null +++ b/localstack-integration/README.md @@ -0,0 +1,17 @@ +# Localstack Integration + +Please use the below command to deploy an IDP reference implementation with an Argo application that adds Localstack, as well as integrating with Crossplane. + +```bash +idpbuilder create \ + --use-path-routing \ + --package-dir examples/ref-implementation \ + --package-dir examples/localstack-integration +``` + +As you see above, this add-on to `idpbuilder` has a dependency on the [reference implementation](../ref-implementation/). This command primarily does the following: + +1. Installs `localstack` helmchart as an `argo` application. +2. Adds localstack crossplane ProviderConfig, targetting localstack + +Once the custom package is installed, localstack can be used from the backstage template `app-with-aws-resources`, by changing the `providerConfigName` during the bucket configuration page from `default` to `localstack`. diff --git a/localstack-integration/crossplane-provider-localstack.yaml b/localstack-integration/crossplane-provider-localstack.yaml new file mode 100644 index 0000000..8403c17 --- /dev/null +++ b/localstack-integration/crossplane-provider-localstack.yaml @@ -0,0 +1,22 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: crossplane-provider-localstack + namespace: argocd + labels: + example: localstack-integration +spec: + project: default + source: + repoURL: cnoe://crossplane-provider-localstack + targetRevision: HEAD + path: "." + destination: + server: "https://kubernetes.default.svc" + namespace: crossplane-system + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/localstack-integration/crossplane-provider-localstack/provider-config-localstack.yaml b/localstack-integration/crossplane-provider-localstack/provider-config-localstack.yaml new file mode 100644 index 0000000..78ce775 --- /dev/null +++ b/localstack-integration/crossplane-provider-localstack/provider-config-localstack.yaml @@ -0,0 +1,19 @@ +apiVersion: aws.crossplane.io/v1beta1 +kind: ProviderConfig +metadata: + name: localstack + annotations: + argocd.argoproj.io/sync-wave: "20" + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true +spec: + credentials: + source: Secret + secretRef: + namespace: crossplane-system + name: local-secret + key: creds + endpoint: + hostnameImmutable: true + url: + type: Static + static: http://localstack.localstack.svc.cluster.local:4566 diff --git a/localstack-integration/localstack.yaml b/localstack-integration/localstack.yaml new file mode 100644 index 0000000..afeb2c2 --- /dev/null +++ b/localstack-integration/localstack.yaml @@ -0,0 +1,24 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: localstack + namespace: argocd + labels: + example: localstack-integration +spec: + project: default + source: + repoURL: https://localstack.github.io/helm-charts + targetRevision: 0.6.12 + chart: localstack + helm: + releaseName: localstack + destination: + server: "https://kubernetes.default.svc" + namespace: localstack + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/ref-implementation/README.md b/ref-implementation/README.md index c1738e4..7045274 100644 --- a/ref-implementation/README.md +++ b/ref-implementation/README.md @@ -117,7 +117,7 @@ You can click on the ArgoCD Application name to see more details. In this example, we will deploy a simple Apache Spark job through Argo Workflows. -Click on the `Create...` button on the left, then select the `Basic Argo Workflow witha Spark Job` template. +Click on the `Create...` button on the left, then select the `Basic Argo Workflow with a Spark Job` template. ![img.png](images/backstage-templates-spark.png) diff --git a/terraform-integrations/README.md b/terraform-integrations/README.md index f027455..a0e9a73 100644 --- a/terraform-integrations/README.md +++ b/terraform-integrations/README.md @@ -2,7 +2,7 @@ `idpBuilder` is now experimentally extensible to launch custom terraform patterns using package extensions. This is an experimental effort allowing the users of the `idpBuilder` to run terraform modules using the tooling in place. -Please use the below command to deploy an IDP reference implementation with an Argo application for terraform integrations with few sample patterns we have built: +Please use the below command to deploy an IDP reference implementation with an Argo application for preparing up the setup for terraform integrations: ```bash idpbuilder create \ @@ -13,6 +13,5 @@ idpbuilder create \ As you see above, this add-on to `idpbuilder` has a dependency to the [reference implementation](../ref-implementation/). This command primarily does the following: -1. Installs `fluxcd` source respository controller as an `argo` application. -2. Installs `tofu-controller` for managing the lifecycle of terraform deployments from your Kubernetes cluster for operations such as create, delete and update. -3. Finally, this stack add-on goes together with the work done under [backstage-terraform-integrations](https://github.com/cnoe-io/backstage-terraform-integrations/). Once the add-on is enabled, the user will need to follow the setup discussed in the [backstage-terraform-integrations](https://github.com/cnoe-io/backstage-terraform-integrations/) repo for the remainder of the configuration, and terraform integrations should work. \ No newline at end of file +1. Installs `fluxcd` source repository controller as an `argo` application. +2. Installs `tofu-controller` for managing the lifecycle of terraform deployments from your Kubernetes cluster for operations such as create, delete and update. \ No newline at end of file