diff --git a/.github/workflows/check-signed.yml b/.github/workflows/check-signed.yml new file mode 100644 index 0000000..f110c78 --- /dev/null +++ b/.github/workflows/check-signed.yml @@ -0,0 +1,14 @@ +--- +name: Validate if commits in PR are signed +on: pull_request + +jobs: + signed-commits-check: + runs-on: ubuntu-latest + steps: + + - name: Check out code + uses: actions/checkout@v3.5.3 + + - name: Check signed commits in PR + uses: 1Password/check-signed-commits-action@v1 diff --git a/.github/workflows/check-yaml.yml b/.github/workflows/check-yaml.yml new file mode 100644 index 0000000..776a934 --- /dev/null +++ b/.github/workflows/check-yaml.yml @@ -0,0 +1,19 @@ +--- +name: YAML Validation +on: [push, workflow_dispatch] + +jobs: + yaml-check: + runs-on: ubuntu-latest + steps: + + - name: Checkout this repository + uses: actions/checkout@v3.5.3 + + - name: Lint YAML files + uses: karancode/yamllint-github-action@v2.1.1 + with: + yamllint_config_datapath: .yamllint.yml + yamllint_strict: true + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..f28a9f8 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,7 @@ +--- +extends: default + +rules: + line-length: disable + truthy: + check-keys: false diff --git a/README.md b/README.md index 3c71893..3492621 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,75 @@ -# gitops-catalog +

+ + + + +

-The marketplace bound to your gitops desired state. +# Community-driven Cloud Native GitOps -## Community-driven Cloud Native Gitops - -The kubefirst gitops catalog repository is a community-driven series of cloud native apps that can be added onto the kubefirst platform easily once the platform has been provisioned. +The kubefirst GitOps Catalog repository is a community-driven series of cloud native apps that can be added onto the kubefirst platform easily once the platform has been provisioned. ## Contributing -To make a new app available for installation, you'll need to: +To make a new application available for installation, you'll need to: - Fork this repository. -- Create a new directory with your new app's name in your fork. -- Update [index.yaml](index.yaml) with your app's name and directory. -- In your app directory, add, and organize your Argo CD gitops file(s). +- Add a new entry to the [index.yaml](index.yaml) file with: + - **name**: application name as described in your YAML file. + - **displayName**: name to be displayed in the GitOps catalog (120 characters maximum). + - **website**: application website or GitHub repository. + - **imageUrl**: full web URL for the application's logo. It will be displayed in the GitOps catalog. _For now, it needs to be located on a third-party server, but we'll update this field to grab them from the GitHub repository soon, so it doesn't depend on external URL._ + - **description**: an insightful description about your application. It will be displayed in the GitOps Catalog (200 characters maximum). + - **categories**: one category amongts the following ones: + - App management + - Architecture + - CI/CD + - Database + - FinOps + - Infrastructure + - Monitoring + - Observability + - Security + - Storage + - Testing +- Create a new directory with your new application's name in your fork. + - Add, and organize your Argo CD gitops file(s) into it, if any. - Create a pull request with the changes from your branch to our main branch. -## Need help +### Acceptance Criteria + +We will approve all GitOps Catalog application submissions as long as they are working with the latest version of kubefirst. + +### Application Maintenance and Removal + +We may remove an application from the GitOps Catalog with no notice if a severe vulnerability is discovered. Another reason for removing an application is if an application becomes abandoned or unmaintained by the upstream project. + +### Testing + +If you want to test the application you are adding to the catalog, you need to run a couple of things locally. + +Firstly, if it's not already done, you need to [create a fork](https://github.com/kubefirst/kubefirst-api/fork) of the gitops-catalog repository. + +Secondly, you need to clone the [Kubefirst API](https://github.com/kubefirst/kubefirst-api/) repository locally, and edit the file `internal/gitShim/gitopsCatalog.go`: + +1. Update the `KubefirstGitHubOrganization` constant with the organization or username on which you forked the gitops-catalog repository. +2. Update the `KubefirstGitopsCatalogRepository` constant if you change the repository name when you forked it into your account. + +Once it's done, follow [the instructions from the README](https://github.com/kubefirst/kubefirst-api/#running-locally) to run the API locally. + +Thirdly, you will also need to run the [console application](https://github.com/kubefirst/console) locally. To do so, clone the repository locally, and follow [the instructions from the README](https://github.com/kubefirst/console#setup-instructions). It will be the equivalent of using the CLI with the `launch up` command. + +Lastly, you will need to create a new cluster like you would usually do, using the UI installation. Once your new cluster is created, you'll see the [GitOps Catalog](https://docs.kubefirst.io/civo/gitops-catalog) tab, and you should see your new application listed, and try to install it. + +#### Debugging + +If you need to refresh the GitOps catalog list of applications, instead of restarting the whole process, which can be cumbersome with the creation of a new cluster, you can connect to the MongoDB instance (using their [CLI](https://www.mongodb.com/docs/mongodb-shell/connect/) or [UI client](https://www.mongodb.com/docs/compass/current/connect/)), delete the `gitops-catalog` collection from the `api` database, and restart the API. You can now refresh the console browser tab, and you should see a new list. If you use the CLI, you can run `echo 'use api;\ndb.getCollection("gitops-catalog").drop();' | mongosh mongodb://:@:` in the terminal after replacing the ``, ``, ``, and `` with your database connection information. + +If you already installed the application, to reinstall it another time without restarting the whole process, you'll need to follow these two steps: + +1. Go into your `gitops` repository, the one created when you created your cluster from the console application. In the repository, go into the `registry` folder, followed by going into the folder named after your cluster name. You will need to delete the application YAML file inside this directory. Check also inside the `components` folder: if there is a folder with the name of the application you want to remove, delete it also. Once your changes are committed, Argo CD should sync, and remove the application. This is the usual process for removing an application from your cluster, GitOps catalog or not. +2. To be able to see the application as installable again in the catalog, you will need to update the `services` collection within the `api` database in MongoDB. You will need to remove the specific object associated with the application from the `services` array. If you use the CLI, you can run `echo 'use api;\ndb.services.updateOne({'cluster_name': "" }, { $pull: { services: { name: "" } } } );' | mongosh mongodb://:@:` in the terminal after, as before, replacing the ``, ``, ``, and `` with your database connection information. You will also need to update the `` with the name of the cluster you created, and the `` value in the query, with the name of the application to remove from the document. + +### Need Help -As always, we are on our [Slack community](https://kubefirst.io/slack) if you need any help. We also welcome any constructive feedback or feature suggestions. +As always, we are on our [Slack community](https://kubefirst.io/slack) in the #gitops-catalog channel if you need any help. We also welcome any constructive feedback or feature suggestions. diff --git a/argo-events/application.yaml b/argo-events/application.yaml index 3a3edb2..fd86197 100644 --- a/argo-events/application.yaml +++ b/argo-events/application.yaml @@ -1,10 +1,11 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: argo-events namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: argo-events @@ -23,4 +24,4 @@ spec: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true diff --git a/argo-rollouts/application.yaml b/argo-rollouts/application.yaml index 29a6a74..ae90f1c 100644 --- a/argo-rollouts/application.yaml +++ b/argo-rollouts/application.yaml @@ -1,10 +1,11 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: argo-rollouts namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: argo-rollouts @@ -23,4 +24,4 @@ spec: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true diff --git a/datadog-agent/application.yaml b/datadog-agent/application.yaml index 153dab3..0f45290 100644 --- a/datadog-agent/application.yaml +++ b/datadog-agent/application.yaml @@ -1,3 +1,4 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: @@ -44,7 +45,7 @@ spec: selfHeal: true syncOptions: - CreateNamespace=true -# ### NOTE: uncomment below to establish a datadog apm service for your cluster to leverage +# NOTE: uncomment below to establish a datadog apm service for your cluster to leverage # --- # apiVersion: v1 # kind: Service @@ -57,4 +58,4 @@ spec: # ports: # - protocol: TCP # port: 8126 -# targetPort: 8126 \ No newline at end of file +# targetPort: 8126 diff --git a/datadog-agent/external-secret.yaml b/datadog-agent/external-secret.yaml index 539456d..010a3df 100644 --- a/datadog-agent/external-secret.yaml +++ b/datadog-agent/external-secret.yaml @@ -1,3 +1,4 @@ +--- apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: diff --git a/goldilocks/application.yaml b/goldilocks/application.yaml index 8a22e1c..58072cd 100644 --- a/goldilocks/application.yaml +++ b/goldilocks/application.yaml @@ -1,3 +1,4 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: diff --git a/img/kubefirst-light.svg b/img/kubefirst-light.svg new file mode 100644 index 0000000..f260485 --- /dev/null +++ b/img/kubefirst-light.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/kubefirst.svg b/img/kubefirst.svg new file mode 100644 index 0000000..71e3ab7 --- /dev/null +++ b/img/kubefirst.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/index.yaml b/index.yaml index 25afde0..55db1be 100644 --- a/index.yaml +++ b/index.yaml @@ -4,16 +4,18 @@ apps: displayName: Argo Events website: "https://github.com/argoproj/argo-events" imageUrl: "https://argoproj.github.io/argo-events/assets/logo.png" - description: "Argo Events is an event-driven workflow automation framework for Kubernetes which helps you trigger K8s objects, Argo Workflows, Serverless workloads, etc. on events from a variety of sources like webhooks, S3, schedules, messaging queues, gcp pubsub, sns, sqs, etc" + description: "Argo Events is an event-driven workflow automation framework for Kubernetes which helps you trigger K8s objects, Argo Workflows, Serverless workloads, etc. on events from a variety of sources." categories: - - Queueing + - CI/CD + - name: argo-rollouts displayName: Argo Rollouts website: "https://github.com/argoproj/argo-rollouts" imageUrl: "https://argoproj.github.io/static/3748e3a7881fe3b037f2401b65943dc0/93d75/rollouts.png" - description: "Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes." + description: "A Kubernetes controller & set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, & progressive delivery features to Kubernetes." categories: - - Continuous Delivery + - CI/CD + - name: datadog-agent displayName: Datadog website: "https://github.com/DataDog/datadog-agent" @@ -23,10 +25,10 @@ apps: - name: app-key label: Datadog application key imageUrl: "https://imgix.datadoghq.com/img/dd_logo_n_70x75.png" - description: "Datadog’s SaaS-based infrastructure monitoring provides metrics, visualizations, and alerting to ensure your engineering teams can maintain and optimize your cloud or hybrid environments." + description: "Datadog's SaaS-based infrastructure monitoring provides metrics, visualizations, and alerting to ensure your engineering teams can maintain and optimize your cloud or hybrid environments." categories: - - Monitoring - Observability + - name: goldilocks displayName: Goldilocks website: "https://github.com/FairwindsOps/goldilocks" @@ -34,20 +36,48 @@ apps: description: "Goldilocks is a utility that can help you identify a starting point for resource requests and limits." categories: - Monitoring + - name: kratix displayName: Kratix website: "https://github.com/syntasso/kratix" imageUrl: "https://assets.website-files.com/6194c620b350c4056027fac7/62c6d513f52586d698eb1c43_kratix-logo.png" description: "Kratix is a framework used by platform teams to build the custom platforms tailored to their organisation." categories: - - Application Management + - App Management + - name: kubernetes-dashboard displayName: Kubernetes Dashboard website: "https://github.com/kubernetes/dashboard" imageUrl: "https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.svg" - description: "Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters. It allows users to manage applications running in the cluster and troubleshoot them, as well as manage the cluster itself." + description: "Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters. It allows users to manage apps running in the cluster & troubleshoot them, as well as manage the cluster itself." categories: - Observability + + - name: kutt + displayName: Kutt + website: "https://github.com/thedevs-network/kutt" + secretKeys: + - name: admin.emails + label: Comma seperated list of email addresses that can access admin actions on settings page + - name: config.disallowAnonymousLinks + label: "true or false to Disable anonymous link creation" + - name: mail-from + label: The email address Kutt will send emails from + - name: mail-host + label: The host of the external SMTP server that Kutt should use to send emails + - name: mail-password + label: The password to authenticate to the SMTP host when sending emails + - name: mail-port + label: The port used to connect to the SMTP host + - name: mail-secure + label: "true or false. If true the connection will use TLS when connecting to server. If false (the default) then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false" + - name: mail-username + label: The username to authenticate to the SMTP host when sending emails + imageUrl: "https://kutt.it/images/logo.svg" + description: "Kutt is a modern URL shortener with support for custom domains. Shorten URLs, manage your links and view the click rate statistics." + categories: + - Applications + - name: kyverno displayName: Kyverno website: "https://github.com/kyverno/kyverno" @@ -55,6 +85,7 @@ apps: description: "Kyverno is a policy engine designed for Kubernetes. Kyverno Policies are managed as Kubernetes resources and no new language is required to write policies." categories: - Security + - name: opencost displayName: OpenCost website: "https://github.com/opencost/opencost" @@ -62,7 +93,7 @@ apps: description: "OpenCost is a vendor-neutral open source project for measuring and allocating infrastructure and container costs in real time." categories: - FinOps - - Observability + - name: polaris displayName: Polaris website: "https://github.com/FairwindsOps/polaris" @@ -70,6 +101,7 @@ apps: description: "Polaris is an open source policy engine for Kubernetes." categories: - Security + - name: testkube displayName: Testkube website: "https://github.com/kubeshop/testkube" @@ -77,7 +109,14 @@ apps: description: "Testkube is a Kubernetes-native testing framework that allows you to automate the executions of your existing testing tools inside your Kubernetes cluster." categories: - Testing - - Kubeshop + secretKeys: + - name: testkube-api.cloud.key + label: Testkube API Key + - name: testkube-api.cloud.orgId + label: Testkube Org ID + - name: testkube-api.cloud.envId + label: Testkube Environment ID + - name: tracetest displayName: Tracetest website: "https://github.com/kubeshop/tracetest" @@ -85,5 +124,3 @@ apps: description: "Tracetest uses your existing OpenTelemetry traces to power trace-based testing with assertions against your trace data at every point of the request transaction." categories: - Testing - - Observability - - Kubeshop diff --git a/kratix/application.yaml b/kratix/application.yaml index 0469248..7944d82 100644 --- a/kratix/application.yaml +++ b/kratix/application.yaml @@ -1,3 +1,4 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: @@ -9,11 +10,51 @@ spec: project: default source: repoURL: 'https://github.com/syntasso/kratix' - path: distribution/single-cluster + path: charts/kratix targetRevision: HEAD + # helm: + # values: | + # # You will need to register a Destination where Kratix can + # # schedule resources. This Destination is a State Store that + # # represents a location where you want to deploy declared + # # resources. + # # + # # In order for Kratix to write any declared resources to this + # # Destination, you will also need to provide configuration + # # via a State Store object. + # # + # # For more details, please see: + # # https://kratix.io/docs/main/reference/destinations/intro + # destinations: + # # This represents the Git repository used by KubeFirst. + # # It depends on the State Store below. + # - name: platform + # namespace: kratix-platform-system + # labels: + # type: platform + # stateStoreRef: + # name: default + # kind: GitStateStore + # stateStores: + # # This requires: + # # 1. The correct Git URL used by K1 and + # # 2. A secret with the necessary values called `default-git-secret` + # # + # # These values are available or can be generated with the details + # # in Terraform within the atlantis_secrets` resource. + # # + # # Docs: + # # https://kratix.io/docs/main/reference/statestore/gitstatestore + # - kind: GitStateStore + # name: default + # namespace: kratix-platform-system + # secretRef: + # name: default-git-secret + # url: https://github.com//gitops. + # path: registry/kratix destination: server: 'https://kubernetes.default.svc' - namespace: kratix + namespace: kratix-platform-system syncPolicy: automated: prune: true diff --git a/kubernetes-dashboard/application.yaml b/kubernetes-dashboard/application.yaml index 0272238..35a0273 100644 --- a/kubernetes-dashboard/application.yaml +++ b/kubernetes-dashboard/application.yaml @@ -1,3 +1,4 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: diff --git a/kubernetes-dashboard/clusterolebinding.yaml b/kubernetes-dashboard/clusterolebinding.yaml index 9abc09a..21377c9 100644 --- a/kubernetes-dashboard/clusterolebinding.yaml +++ b/kubernetes-dashboard/clusterolebinding.yaml @@ -1,3 +1,4 @@ +--- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: @@ -5,10 +6,10 @@ metadata: annotations: argocd.argoproj.io/sync-wave: "0" subjects: -- kind: ServiceAccount - name: k8s-dashboard-sa - namespace: default + - kind: ServiceAccount + name: k8s-dashboard-sa + namespace: default roleRef: kind: ClusterRole name: admin - apiGroup: rbac.authorization.k8s.io \ No newline at end of file + apiGroup: rbac.authorization.k8s.io diff --git a/kubernetes-dashboard/serviceaccount.yaml b/kubernetes-dashboard/serviceaccount.yaml index db04ce4..11cc645 100644 --- a/kubernetes-dashboard/serviceaccount.yaml +++ b/kubernetes-dashboard/serviceaccount.yaml @@ -1,5 +1,6 @@ +--- apiVersion: v1 kind: ServiceAccount metadata: name: k8s-dashboard-sa - namespace: default \ No newline at end of file + namespace: default diff --git a/kutt/application.yaml b/kutt/application.yaml new file mode 100644 index 0000000..d91bc84 --- /dev/null +++ b/kutt/application.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: kutt + namespace: argocd +spec: + project: default + source: + chart: kutt + repoURL: https://christianknell.github.io/helm-charts + targetRevision: 2.10.4 + helm: + releaseName: my-release + destination: + server: 'https://kubernetes.default.svc' + namespace: kutt + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/kyverno/kyverno-policies.yaml b/kyverno/kyverno-policies.yaml index dfbbb84..e739fc3 100644 --- a/kyverno/kyverno-policies.yaml +++ b/kyverno/kyverno-policies.yaml @@ -1,10 +1,11 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: kyverno-policies namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: kyverno @@ -12,8 +13,8 @@ spec: project: default source: chart: kyverno-policies - repoURL: https://kubeshop.github.io/helm-charts - targetRevision: v2.5.5 + repoURL: https://kyverno.github.io/kyverno + targetRevision: v3.0.3 helm: releaseName: kyverno-policies # values: | @@ -23,4 +24,4 @@ spec: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true diff --git a/kyverno/kyverno.yaml b/kyverno/kyverno.yaml index 1a70f27..2b385e5 100644 --- a/kyverno/kyverno.yaml +++ b/kyverno/kyverno.yaml @@ -1,10 +1,11 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: kyverno namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: kyverno @@ -12,8 +13,8 @@ spec: project: default source: chart: kyverno - repoURL: https://kubeshop.github.io/helm-charts - targetRevision: v3.0.0 + repoURL: https://kyverno.github.io/kyverno + targetRevision: v3.0.4 helm: releaseName: kyverno # values: | @@ -23,4 +24,6 @@ spec: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true + # https://kyverno.io/docs/installation/platform-notes/#notes-for-argocd-users + - Replace=true diff --git a/kyverno/policy-reporter.yaml b/kyverno/policy-reporter.yaml new file mode 100644 index 0000000..fe3f484 --- /dev/null +++ b/kyverno/policy-reporter.yaml @@ -0,0 +1,37 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: policy-reporter + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + destination: + namespace: kyverno + server: https://kubernetes.default.svc + project: default + source: + chart: policy-reporter + repoURL: https://kyverno.github.io/policy-reporter + targetRevision: v2.19.4 + helm: + releaseName: policy-reporter + values: | + ui: + enabled: true + kyvernoPlugin: + enabled: true + metrics: + enabled: true + global: + # available plugins + plugins: + # enable kyverno for Policy Reporter UI and monitoring + kyverno: true + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/opencost/opencost.yaml b/opencost/opencost.yaml index afe2b6b..76bccb4 100644 --- a/opencost/opencost.yaml +++ b/opencost/opencost.yaml @@ -1,3 +1,4 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: @@ -6,7 +7,7 @@ metadata: name: opencost namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: opencost @@ -25,4 +26,4 @@ spec: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true diff --git a/opencost/prometheus.yaml b/opencost/prometheus.yaml index f336bec..e26b807 100644 --- a/opencost/prometheus.yaml +++ b/opencost/prometheus.yaml @@ -1,3 +1,4 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: @@ -6,7 +7,7 @@ metadata: name: prometheus namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: prometheus diff --git a/polaris/application.yaml b/polaris/application.yaml index c869c5d..15c5994 100644 --- a/polaris/application.yaml +++ b/polaris/application.yaml @@ -1,3 +1,4 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: diff --git a/testkube/application.yaml b/testkube/application.yaml index 4a4be4e..7b838fb 100644 --- a/testkube/application.yaml +++ b/testkube/application.yaml @@ -1,10 +1,11 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: testkube namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: testkube @@ -16,11 +17,17 @@ spec: targetRevision: 1.11.214 helm: releaseName: testkube - # values: | - # example: value + values: | + testkube-api.minio.enabled: false + mongodb.enabled: false + testkube-dashboard.enabled: false + testkube-api.cloud.url: "agent.testkube.io:443" + testkube-api.cloud.key: testkube-api.cloud.key + testkube-api.cloud.orgId: testkube-api.cloud.orgId + testkube-api.cloud.envId: testkube-api.cloud.envId syncPolicy: automated: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true diff --git a/testkube/external-secret.yaml b/testkube/external-secret.yaml new file mode 100644 index 0000000..720dcad --- /dev/null +++ b/testkube/external-secret.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: testkube-secret + namespace: testkube +spec: + target: + name: testkube + secretStoreRef: + kind: ClusterSecretStore + name: vault-kv-secret + refreshInterval: 10s + dataFrom: + - extract: + key: /testkube +--- diff --git a/tracetest/application.yaml b/tracetest/application.yaml index 0152230..64c84df 100644 --- a/tracetest/application.yaml +++ b/tracetest/application.yaml @@ -1,10 +1,11 @@ +--- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: tracetest namespace: argocd finalizers: - - resources-finalizer.argocd.argoproj.io + - resources-finalizer.argocd.argoproj.io spec: destination: namespace: tracetest @@ -23,4 +24,4 @@ spec: prune: true selfHeal: true syncOptions: - - CreateNamespace=true \ No newline at end of file + - CreateNamespace=true