Skip to content

Commit

Permalink
feat: add integrations category
Browse files Browse the repository at this point in the history
  • Loading branch information
moshloop committed Dec 2, 2024
1 parent 42ce05c commit f976801
Show file tree
Hide file tree
Showing 21 changed files with 573 additions and 0 deletions.
24 changes: 24 additions & 0 deletions mission-control/docs/integrations/argo.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
draft: true
---

# ArgoCD Integration

Mission Control integrates with ArgoCD to provide monitoring and relationship tracking of ArgoCD Applications and their associated resources.

## Resource Scraping & Relationships

The integration automatically scrapes ArgoCD Applications (Custom Resources with apiVersion starting with `argoproj.io`) and establishes parent-child relationships between the Application and its deployed resources. This is done by:

1. Examining the `status.resources` field of ArgoCD Applications
2. Creating links between the Application and each resource referenced in the status
3. Tracking resources across all supported Kubernetes types like Deployments, Services, ConfigMaps etc.

For example, if an ArgoCD Application deploys a Deployment and Service, Mission Control will automatically:

Check warning on line 17 in mission-control/docs/integrations/argo.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/argo.mdx#L17

[Flanksource.FutureTense] Use present tense verbs, not future tense verbs like 'will'. Say '(event) happens' instead of '(event) will happen'.
Raw output
{"message": "[Flanksource.FutureTense] Use present tense verbs, not future tense verbs like 'will'. Say '(event) happens' instead of '(event) will happen'.", "location": {"path": "mission-control/docs/integrations/argo.mdx", "range": {"start": {"line": 17, "column": 89}}}, "severity": "WARNING"}
- Detect the Application as the parent resource
- Link it to the child Deployment and Service resources
- Allow you to navigate and view the full resource hierarchy

## Health Status

ArgoCD's built-in health checks are used to determine the overall health status of Applications and their resources. The status is gathered from ArgoCD's native health assessment and surfaced in Mission Control's UI.
3 changes: 3 additions & 0 deletions mission-control/docs/integrations/aws/catalog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
draft: true
---
53 changes: 53 additions & 0 deletions mission-control/docs/integrations/aws/cloudformation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
draft: true
---

# <span class=" iconify-color logos--aws-cloudformation"></span> CloudFormation

CloudFormation stacks and their relationships are automatically tracked by Mission Control through the AWS scraper. Here's how it works:

![](/img/cloudformation.svg)

## Features

- Tracks all CloudFormation stacks across enabled regions
- Automatically discovers stack dependencies and relationships
- Links resources created by CloudFormation stacks back to their parent stack
- Provides status and health monitoring of stacks
- Creates deep links to the AWS Console
- Retains stack deletion history and reasons

## Stack Relationships

Any AWS resource that has an `aws:cloudformation:stack-id` tag is automatically linked to its parent CloudFormation stack. The scraper:

1. Discovers the stack ID from resource tags
2. Creates a parent relationship from the resource to the stack
3. Moves any default parent relationships to soft relationships
4. Maintains the full stack tree hierarchy

## Stack Properties

The following properties are tracked for each stack:

- Stack name and ID
- Creation time
- Deletion time and reason (if deleted)
- Current status and health state
- Stack status reason messages
- Console URL link

## Configuration

CloudFormation scraping is enabled by default when AWS scraping is configured. Include "cloudformation" in the AWS scraper config to explicitly enable it:

Check failure on line 42 in mission-control/docs/integrations/aws/cloudformation.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/aws/cloudformation.md#L42

[Flanksource.Spelling] Is 'cloudformation' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'cloudformation' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/aws/cloudformation.md", "range": {"start": {"line": 42, "column": 89}}}, "severity": "ERROR"}

```yaml
spec:
aws:
- regions: ['us-east-1']
includes: ['cloudformation']
```
## Learn More
- [AWS](/config-db/scrapers/aws) Scraper
39 changes: 39 additions & 0 deletions mission-control/docs/integrations/aws/cloudtrail.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
draft: true
---

# CloudTrail Integration

Mission Control integrates with AWS CloudTrail to track API activity and changes across your AWS accounts. The AWS scraper handles CloudTrail events and trails.

## Features

- Discovers CloudTrail trails across regions
- Maps trail configurations and settings
- Links trails to their associated S3 buckets
- Tracks multi-region trail setups
- Creates relationships between trails and logged resources

## Trail Properties

The following properties are tracked for CloudTrail trails:

- Trail name and ARN
- Associated S3 bucket and prefix
- Multi-region status
- Log file validation settings
- CloudWatch logs configuration
- KMS encryption settings

## Configuration

CloudTrail scraping is enabled by default in the AWS scraper. Include "cloudtrail" in the AWS config to explicitly enable it:

Check failure on line 30 in mission-control/docs/integrations/aws/cloudtrail.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/aws/cloudtrail.md#L30

[Flanksource.Spelling] Is 'cloudtrail' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'cloudtrail' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/aws/cloudtrail.md", "range": {"start": {"line": 30, "column": 72}}}, "severity": "ERROR"}

```yaml
spec:
aws:
- regions: ['us-east-1']
includes: ['cloudtrail']
```
This allows Mission Control to maintain a complete audit trail of changes across your AWS infrastructure.
3 changes: 3 additions & 0 deletions mission-control/docs/integrations/aws/cloudwatch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
draft: true
---
39 changes: 39 additions & 0 deletions mission-control/docs/integrations/aws/cur.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
draft: true
---

# Cost & Usage Reports

Mission Control can track AWS Cost and Usage Reports (CUR) to help monitor and analyze your AWS spending. The AWS scraper handles CUR data collection.

## Features

- Discovers configured Cost and Usage Reports
- Maps report delivery settings and schedules
- Links reports to their S3 buckets
- Tracks report time ranges and formats
- Creates relationships to billed resources

## Report Properties

The following properties are tracked for Cost and Usage Reports:

- Report name and ARN
- S3 bucket and prefix path
- Time granularity settings
- File format and compression
- Report content configuration
- Resource IDs and tagging

## Configuration

CUR scraping is enabled by default in the AWS scraper. Include "cur" in the AWS config to explicitly enable it:

```yaml
spec:
aws:
- regions: ['us-east-1']
includes: ['cur']
```
This allows Mission Control to help track and analyze your AWS infrastructure costs.
3 changes: 3 additions & 0 deletions mission-control/docs/integrations/azure.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
draft: true
---
45 changes: 45 additions & 0 deletions mission-control/docs/integrations/crossplane.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
draft: true
---

# Crossplane Integration

Mission Control integrates deeply with Crossplane to provide visibility and relationships across your cloud infrastructure resources managed through Crossplane.

Check warning on line 7 in mission-control/docs/integrations/crossplane.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/crossplane.mdx#L7

[Flanksource.Adverbs] Consider removing 'deeply'.
Raw output
{"message": "[Flanksource.Adverbs] Consider removing 'deeply'.", "location": {"path": "mission-control/docs/integrations/crossplane.mdx", "range": {"start": {"line": 7, "column": 28}}}, "severity": "WARNING"}

## How It Works

Mission Control's Kubernetes scraper (`kubernetes.go`) automatically detects and handles Crossplane resources by:

1. Identifying Crossplane resources through their API group - any resource with an apiVersion containing `.upbound.io` or `.crossplane.io` is treated as a Crossplane resource.

2. Categorizing them with a special "Crossplane::" type prefix instead of the standard "Kubernetes::" prefix to distinguish them from regular Kubernetes resources.

Check warning on line 15 in mission-control/docs/integrations/crossplane.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/crossplane.mdx#L15

[Flanksource.Ablist] When referring to a person, consider using 'has a disability', 'person with a disability', or 'people with disabilities' instead of 'special'.
Raw output
{"message": "[Flanksource.Ablist] When referring to a person, consider using 'has a disability', 'person with a disability', or 'people with disabilities' instead of 'special'.", "location": {"path": "mission-control/docs/integrations/crossplane.mdx", "range": {"start": {"line": 15, "column": 29}}}, "severity": "WARNING"}

3. Building relationships between:
- Crossplane managed resources and their providers
- Crossplane composite resources (XRs) and their composed resources

Check failure on line 19 in mission-control/docs/integrations/crossplane.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/crossplane.mdx#L19

[Flanksource.Spelling] Is 'XRs' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'XRs' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/crossplane.mdx", "range": {"start": {"line": 19, "column": 38}}}, "severity": "ERROR"}
- Crossplane resources and their underlying cloud infrastructure

## Resource Relationships

The scraper automatically establishes relationships between:

- Crossplane Providers and their managed resources
- Composite Resources (XRs) and their composed resources

Check failure on line 27 in mission-control/docs/integrations/crossplane.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/crossplane.mdx#L27

[Flanksource.Spelling] Is 'XRs' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'XRs' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/crossplane.mdx", "range": {"start": {"line": 27, "column": 24}}}, "severity": "ERROR"}
- Crossplane managed resources and their cloud provider equivalents (e.g. AWS RDS instances)

The relationships are created through:

1. Owner references on managed resources pointing to their providers
2. Cross-references between XRs and composed resources

Check failure on line 33 in mission-control/docs/integrations/crossplane.mdx

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/crossplane.mdx#L33

[Flanksource.Spelling] Is 'XRs' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'XRs' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/crossplane.mdx", "range": {"start": {"line": 33, "column": 29}}}, "severity": "ERROR"}
3. Cloud provider specific external IDs linking to actual cloud resources

## Scraping and Monitoring

The scraper:

- Watches for changes to Crossplane resources through the Kubernetes event stream
- Tracks health and status of Crossplane resources
- Maps relationships between components
- Provides visibility into the full stack - from Crossplane CRDs down to cloud resources

This enables Mission Control to provide a complete view of your Crossplane-managed infrastructure with proper relationship mapping and real-time updates.
24 changes: 24 additions & 0 deletions mission-control/docs/integrations/flux/catalog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: Catalog
---
import { IoIosHeart } from "react-icons/io";

# <Icon name="flux"/> FluxCD

Mission Control provides built-in support for relating Flux resources to each other, determining their health status, and building a dependency graph. This allows you to:

- Visualize relationships between Flux resources like `Kustomizations`, `HelmReleases`, `GitRepositories` etc.
- Track the health and status of related Flux resources
- Understand dependencies between resources to troubleshoot issues
- Build a graph showing how Flux resources connect and depend on each other
- Monitor the overall health of your Flux-based GitOps workflows


![](/img/helmrelease-graph.png)


## Next Steps

1. Use self-service [playbooks](./playbooks) to enable a ClickOps experience, while still leveraging the power of GitOps.
2. Manage and monitor Flux with a [topology](./topology) view, providing the missing GUI for Flux.
3. [Continuously test your control plane](/canary-checker/tutorials/control-plane-testing) with `kubernetesResource` canaries
3 changes: 3 additions & 0 deletions mission-control/docs/integrations/flux/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
title: Flux
---
113 changes: 113 additions & 0 deletions mission-control/docs/integrations/flux/playbooks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
---
title: Playbooks
---

# <Icon name="flux"/> Flux Playbooks

import { IoIosCheckmarkCircleOutline } from "react-icons/io";
import Git from '@site/docs/partials/\_git_all.mdx';

Mission control enhances a [flux](https://fluxcd.io/flux) deployment with:

1. An Argo style graph between Flux resources and the objects they create
2. A playbook libary that includes a GUI for both day 2 operations with `flux` cli and a Git

Check failure on line 13 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L13

[Flanksource.Spelling] Is 'libary' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'libary' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 13, "column": 15}}}, "severity": "ERROR"}
3. Health checks on all flux resources based on `status.conditions`
4. Alert silencing based on Flux hierachy - i.e. Silence all alerts for objects created by this Kustomization/HelmChart

Check failure on line 15 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L15

[Flanksource.Spelling] Is 'hierachy' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'hierachy' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 15, "column": 34}}}, "severity": "ERROR"}

Check failure on line 15 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L15

[Flanksource.Foreign] Use 'that is' instead of 'i.e.'.
Raw output
{"message": "[Flanksource.Foreign] Use 'that is' instead of 'i.e.'.", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 15, "column": 45}}}, "severity": "ERROR"}

## Playbooks

The following playbooks work by calling the `flux` CLI directly

| Playbook | <Icon name="kustomize"/> Kustomization | <Icon name="helm"/> HelmRelease |
| ---------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
| <Icon name="flux">Suspend</Icon><Tooltip>Runs `flux suspend`</Tooltip> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | <IoIosCheckmarkCircleOutline color='green' size={24} /> |
| <Icon name="flux">Resume</Icon><Tooltip>Runs`flux resume`</Tooltip> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | <IoIosCheckmarkCircleOutline color='green' size={24} /> |
| <Icon name="flux">Reconcile</Icon><Tooltip>Runs`flux resume`</Tooltip> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | <IoIosCheckmarkCircleOutline color='green' size={24} /> |

### ClickOps

The following playbooks enable a ClickOps style of working, but with all changes implemented using standard pull request workflows, giving developers self-service, guardrail driven access to make changes without direct git access or expertise.

| Playbook | <Icon name="kustomize" > Kustomization</Icon> | <Icon name="helm"> HelmRelease</Icon> | <Icon name="k8s-namespace"> Namespace</Icon> | <Icon name="k8s-deployment"> Deployment</Icon> |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- |
| <Icon name="kustomize"> Edit </Icon> <Tooltip>Updates the YAML of a resource</Tooltip> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | <IoIosCheckmarkCircleOutline color='green' size={24} /> |
| <Icon name="kustomize"/> Create Kustomization<Tooltip>Creates a new `Kustomization` and inserts it into the file containing the selected `Kustomization`</Tooltip> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | | | |
| <Icon name="k8s-namespace"/> Create Namespace<Tooltip>Creates a new folder with a `kustomization.yaml` and `namespace.yaml` and then adds it the `bases`</Tooltip> | <IoIosCheckmarkCircleOutline color='green' size={24} /> | | | |
| <Icon name="k8s-deployment"/> Create Deployment<Tooltip>Creates a new `Deployment` and inserts it into the `Kustomization` that created the namespace</Tooltip> | | | <IoIosCheckmarkCircleOutline color='green' size={24} /> | |
| <Icon name="helm"/> Create Helm Chart<Tooltip>Creates a new `HelmRelease` and inserts it into the `Kustomization` that created the namespace</Tooltip> | | | <IoIosCheckmarkCircleOutline color='green' size={24} /> | |
| <Icon name="helm"/> Update Values <Tooltip>Updates `.spec.values`</Tooltip> | | <IoIosCheckmarkCircleOutline color='green' size={24} /> | | |
| <Icon name="helm"/> Update Chart Version <Tooltip>Updates `.spec.chart.spec.version`</Tooltip> | | <IoIosCheckmarkCircleOutline color='green' size={24} /> | | |
| <Icon name="scale-out" className="h-5 w-auto"/> Scale<Tooltip>Updates `.spec.replicas`</Tooltip> | | | | <IoIosCheckmarkCircleOutline color='green' size={24} /> |
| <Icon name="scale-up" className="h-5 w-auto"/> Update Resources <Tooltip>Updates `containers[0].resources`</Tooltip> | | | | <IoIosCheckmarkCircleOutline color='green' size={24} /> |
| <Icon name="docker"/> Update Image <Tooltip>Updates `containers[0].image`</Tooltip> | | | | <IoIosCheckmarkCircleOutline color='green' size={24} /> |

### Just In Time (JIT) Access

Check failure on line 44 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L44

[Flanksource.DictateFeelings] Don't tell people how they feel with words like 'Just'.
Raw output
{"message": "[Flanksource.DictateFeelings] Don't tell people how they feel with words like 'Just'.", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 44, "column": 5}}}, "severity": "ERROR"}

Just In Time playbooks provide a mechnism to grant users access to a namespace for a short space of time, this works by creating a new `Rolebinding` resource and inserting it into the kustomization resources, and then after the expiry window deleting the resources from git.

Check failure on line 46 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L46

[Flanksource.DictateFeelings] Don't tell people how they feel with words like 'Just'.
Raw output
{"message": "[Flanksource.DictateFeelings] Don't tell people how they feel with words like 'Just'.", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 46, "column": 1}}}, "severity": "ERROR"}

Check failure on line 46 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L46

[Flanksource.Spelling] Is 'mechnism' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'mechnism' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 46, "column": 34}}}, "severity": "ERROR"}

This approach provides a single audit trail of who has received access, and limits the need for the control plane to have direct access to update permissions.

| Playbook | <Icon name="k8s-namespace"/> Namespace |
| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| <Icon name="k8s-rolebinding"/> Request Access <Tooltip>Creates a new `RoleBinding` with an optional expiry</Tooltip> | <IoIosCheckmarkCircleOutline color='green' size={24} /> |

## Getting Started

:::info Prerequisites
To enable the Flux integration you need

- Mission Control [installed](/installation/)
- [kubectl](/installation/saas/kubectl) access to the Mission Control instance
:::

1. Create a github connection
<p/>
:::note Optional
This step is optional if you do not plan to use the ClickOps playbooks.
:::

<Git/>

2. Install the [mission-control-playbooks-flux](https://artifacthub.io/packages/helm/flanksource/mission-control-playbooks-flux) chart

<Helm chart="mission-control-flux"
createNamespace={false}
createRepo={false}
values={{
"git.type": "github",
"git.connection": "connection://mission-control/github",
}}/>

3. Annotate resources with `config.kubernetes.io/origin`

The annotation is added by kustomize when the `originAnnotations` build flag is set:

```yaml title='kustomization.yaml'
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
// highlight-next-line
buildMetadata: [originAnnotations]
```
## Best Practises
- Don't provide the service account user who is submitting Pull Requests direct access to commit to `main`.
- Use branch protection policies to require pull requests, passing tests and selective approval
- Implement PR based integration tests that ensure changes:
- Compile using
```shell
kustomization build
```
- Are compatible with your kubernetes API versions and CRD's with:
```shell
kustomization build | kubectl apply -f - --dry-run=service
```
- Passes all compliance and governance rule
- Auto Merge PR's that are safe

Check failure on line 106 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L106

[Flanksource.Spelling] Is 'PR's' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'PR's' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 106, "column": 14}}}, "severity": "ERROR"}

## Learn More

- Playbook [exec](/playbooks/actions/exec) and [gitops](/playbooks/actions/gitops) actions
- [<iconify-icon icon="lets-icons:external"/> Auto Merging PRs](https://jhale.dev/posts/auto-merging-prs/) by @jhale, has a run-down of using Github Actions to automerge, with some gotchas

Check failure on line 111 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L111

[Flanksource.Spelling] Is 'automerge' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'automerge' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 111, "column": 161}}}, "severity": "ERROR"}
- [<iconify-icon icon="lets-icons:external"/> trivy](https://trivy.dev/) - A mis-configuration, secrets and compliance scanner with good support for Kubernetes

Check failure on line 112 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L112

[Flanksource.Spelling] Is 'trivy' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'trivy' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 112, "column": 47}}}, "severity": "ERROR"}
- [<iconify-icon icon="lets-icons:external"/> bulldozer](https://github.com/palantir/bulldozer) and [<iconify-icon icon="lets-icons:external"/> policy-bot](https://github.com/palantir/policy-bot) for auto-merging PR's using customizable rules and policies

Check failure on line 113 in mission-control/docs/integrations/flux/playbooks.md

View workflow job for this annotation

GitHub Actions / vale

[vale] mission-control/docs/integrations/flux/playbooks.md#L113

[Flanksource.Spelling] Is 'PR's' spelled correctly? Is it missing code formatting?
Raw output
{"message": "[Flanksource.Spelling] Is 'PR's' spelled correctly? Is it missing code formatting?", "location": {"path": "mission-control/docs/integrations/flux/playbooks.md", "range": {"start": {"line": 113, "column": 214}}}, "severity": "ERROR"}
27 changes: 27 additions & 0 deletions mission-control/docs/integrations/flux/topology.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: Topology
---

The flux topology

![](/img/flux-topology.svg)

## Getting Started

:::info Prerequisites
To enable the Flux Topology you need

- Mission Control [installed](/installation/)
- [kubectl](/installation/saas/kubectl) access to the Mission Control instance
- Scrape configuration for a [kubernetes](../kubernetes/config) cluster
:::

1. Install the [mission-control-flux](https://artifacthub.io/packages/helm/flanksource/mission-control-flux) chart

<Helm chart="mission-control-flux"
createNamespace={false}
createRepo={false} />

:::note Single
This chart only needs to be installed once,
:::
Empty file.
Loading

0 comments on commit f976801

Please sign in to comment.