Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create mpas section #136

Merged
merged 14 commits into from
Sep 22, 2023
Merged
69 changes: 69 additions & 0 deletions content/en/mpas/core_concepts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: "Core Concepts"
description: Core Concepts of Mpas.
lead: ""
date: 2023-09-12T10:37:58+01:00
lastmod: 2023-09-12T10:37:58+01:00
draft: true
images: []
weight: 101
toc: true
---


## Product

Products are packages of software that can be deployed to a Kubernetes cluster.
souleb marked this conversation as resolved.
Show resolved Hide resolved
Products are made available to the `MPAS` system as `OCM` Components via a Subscription.
Multiple instances of a Product may be installed that refer to the same Subscription.

A `ProductDeployment` is a Kubernetes Custom Resource that represents a product to
be deployed to a Kubernetes cluster. The `ProductDeployment` is reconciled by the
souleb marked this conversation as resolved.
Show resolved Hide resolved
`MPAS Product Controller` which will generate the necessary Kubernetes resources
morri-son marked this conversation as resolved.
Show resolved Hide resolved
to deploy the product to the cluster.
souleb marked this conversation as resolved.
Show resolved Hide resolved

A `ProductDeploymentGenerator` is a Kubernetes Custom Resource that represents a
`ProductDeployment` to be deployed to a Kubernetes cluster.
The `ProductDeploymentGenerator` is reconciled by the `MPAS Product Controller`
in order to generate the `ProductDeployment` resource.

A `ProductDescription` is a manifest that describes a product. It specifies the set
of resources that are needed to deploy the product in a form of pipeline steps.
The `ProductDescription` is retrieved by the `MPAS Product Controller` in order to
generate the `ProductDeployment` resource during a `ProductDeploymentGenerator` reconciliation.

A `ProductDeploymentPipeline` is a Kubernetes Custom Resource that defines a resource
that needs to be deployed as part of the `ProductDeployment`. The `ProductDeploymentPipeline` is
reconciled by the `MPAS Product Controller` as part of the `ProductDeployment` deployment.


## Project

A `Project` is a Kubernetes Custom Resource that is used to manage the lifecycle of
a `MPAS` project. A `Project` is reconciled by the `MPAS Project Controller` which
will generate a project namespace and a git repository for the project containing
the project folder structure. The controller will also generate the necessary
`Flux kustomization` resources in the `mpas-system` namespace in order to update
the cluster with the project resources from the git repository. All items that the
'MPAS Project controller` created during reconcile, are visible in the status of a
`Project` CR.

The project git repository is designed to be used as a gitops repository for the
project. It is where all the product custom resources are to be defined in order
to be deployed to the cluster.

morri-son marked this conversation as resolved.
Show resolved Hide resolved
## Subscription

The purpose of a Subscription is to replicate `OCM` components containing a particular
Product from a delivery registry to a registry in the `MPAS` customer's environment.

A `ComponentSubscription` is a Kubernetes Custom Resource that represents a subscription
to a component. The `ComponentSubscription` is reconciled by the `OCM Replication Controller`
which will transfer the OCM component using the OCM library into the target registry.

## Target

A `Target` is a Kubernetes Custom Resource that represents a target environment where
a `Product` is to be deployed. The `MPAS Product Controller` controller reconciles the `Target`
and creates any necessary prerequisite that needs to exist in the target environment, e.g.
a namespace and service account.
Loading
Loading