Skip to content

Commit

Permalink
Merge pull request #137 from stakater/extensions-and-custom-pricing-u…
Browse files Browse the repository at this point in the history
…pdate

Update 0.12 updated docs
  • Loading branch information
SheryarButt authored May 23, 2024
2 parents a715dab + e4d917a commit 391740c
Show file tree
Hide file tree
Showing 18 changed files with 1,009 additions and 649 deletions.
30 changes: 30 additions & 0 deletions content/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# Changelog

## v0.12.x

### v0.12.1

#### Fix

- Resolved memory consumption problems in multiple controllers by reducing the number of reconciliations.

### v0.12.0

#### Feature

#### Enhanced

- Updated Tenant CR to v1beta3, more details in [Tenant CRD](./crds-api-reference/tenant.md)
- Added custom pricing support for Opencost, more details in [Opencost](./crds-api-reference/integration-config.md#Custom-Pricing-Model)

#### Fix

- Resolved an issue in Templates that prevented the deployment of public helm charts.

## v0.11.x

### v0.11.0

#### Feature

- Added support for configuring external keycloak in integrationconfig.
- Added free tier support that allows creation of 2 tenants without license.

## v0.10.x

### v0.10.6
Expand Down
55 changes: 55 additions & 0 deletions content/crds-api-reference/extensions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Extensions

Extensions in MTO enhance its functionality by allowing integration with external services. Currently, MTO supports integration with ArgoCD, enabling you to synchronize your repositories and configure AppProjects directly through MTO. Future updates will include support for additional integrations.

## Configuring ArgoCD Integration

Let us take a look at how you can create an Extension CR and integrate ArgoCD with MTO.

Before you create an Extension CR, you need to modify the Integration Config resource and add the ArgoCD configuration.

```yaml
integrations:
argocd:
clusterResourceWhitelist:
- group: tronador.stakater.com
kind: EnvironmentProvisioner
namespaceResourceBlacklist:
- group: ''
kind: ResourceQuota
namespace: openshift-operators
```
The above configuration will allow the `EnvironmentProvisioner` CRD and blacklist the `ResourceQuota` resource. Also note that the `namespace` field is mandatory and should be set to the namespace where the ArgoCD is deployed.

Every Extension CR is associated with a specific Tenant. Here's an example of an Extension CR that is associated with a Tenant named `tenant-sample`:

```yaml
apiVersion: tenantoperator.stakater.com/v1alpha1
kind: Extensions
metadata:
name: extensions-sample
spec:
tenantName: tenant-sample
argoCDConfig:
purgeAppProjectOnDelete: true
sourceRepos:
- "github.com/stakater/repo"
appProject:
clusterResourceWhitelist:
- group: ""
kind: "Pod"
namespaceResourceBlacklist:
- group: "v1"
kind: "ConfigMap"
```

The above CR creates an Extension for the Tenant named `tenant-sample` with the following configurations:

- `purgeAppProjectOnDelete`: If set to `true`, the AppProject will be deleted when the Extension is deleted.
- `sourceRepos`: List of repositories to sync with ArgoCD.
- `appProject`: Configuration for the AppProject.
- `clusterResourceWhitelist`: List of cluster-scoped resources to sync.
- `namespaceResourceBlacklist`: List of namespace-scoped resources to ignore.

In the backend, MTO will create an ArgoCD AppProject with the specified configurations.
Loading

0 comments on commit 391740c

Please sign in to comment.