Skip to content

Commit

Permalink
Clarify Pluggable Deployment Mechanism (#3093)
Browse files Browse the repository at this point in the history
  • Loading branch information
martinmaly committed May 6, 2022
1 parent dcdca9c commit a97673b
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 14 deletions.
31 changes: 19 additions & 12 deletions docs/design-docs/07-package-orchestration.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ of WYSIWYG package authoring which supports broader package lifecycle, including
package authoring with *guardrails*, approval workflow, package deployment, and
more, is not yet available.

*Package Orchestration* service is the component that completes the set of core
Configuration as Data components - *CaD Core* - and enables building the
delightful UI experience supporting the configuration lifecycle.
*Package Orchestration* service is part of the implementation of the
Configuration as Data approach, and enables building the delightful UI
experience supporting the configuration lifecycle.

## Core Concepts

Expand Down Expand Up @@ -52,7 +52,7 @@ repository to be applied to all packages on changes.
([more details](#functions))

A repository can be designated as ***deployment repository***. *Published*
packages in a deployment repository is considered deployment-ready.
packages in a deployment repository are considered deployment-ready.
([more details](#deployment))

<!-- Reference links -->
Expand All @@ -68,7 +68,7 @@ packages in a deployment repository is considered deployment-ready.
[representation]: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#differing-representations
[crds]: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/

## CaD Core Components
## Core Components of Configuration as Data Implementation

The Core implementation of Configuration as Data, *CaD Core*, is a set of
components and APIs which collectively enable:
Expand All @@ -95,8 +95,9 @@ At the high level, the Core CaD functionality comprises:
* package discovery, authoring and lifecycle management
* [kpt][] - a Git-native, schema-aware, extensible client-side tool for
managing KRM packages
* [Config Sync][] - configuration distribution and deployment mechanism with
observability of the status of deployed resources
* a GitOps-based deployment mechanism (for example [Config Sync][]), which
distributes and deploys configuration, and provides observability of the
status of deployed resources
* a task-specific UI supporting repository management, package discovery,
authoring, and lifecycle

Expand All @@ -108,10 +109,11 @@ Concepts briefly introduced above are elaborated in more detail in this section.

### Repositories

[Config Sync][] and [kpt][] currently integrate with [git][] repositories, and
[kpt][] and [Config Sync][] currently integrate with [git][] repositories, and
there is an existing design to add [OCI support](./02-oci-support.md) to kpt.
Initially, the CaD Core system will prioritize integration with [git][], and
support for additional repository types may be added in the future as required.
Initially, the Package Orchestration service will prioritize integration with
[git][], and support for additional repository types may be added in the future
as required.

Requirements applicable to all repositories include: ability to store packages,
their versions, and sufficient metadata associated with package to capture:
Expand Down Expand Up @@ -159,7 +161,12 @@ the downstream package.

### Deployment

[Config Sync][] is the deployment mechanism used by CaD Core implementation.
The deployment mechanism is responsible for deploying configuration packages
from a repository and affecting the live state. Because the configuration
is stored in standard repositories (Git, and in the future OCI), the deployment
component is pluggable. By default, [Config Sync][] is the deployment mechanism
used by CaD Core implementation but others can be used as well.

Here we highlight some key attributes of the deployment mechanism and its
integration within the CaD Core:

Expand Down Expand Up @@ -345,7 +352,7 @@ of the basic roles. For example, only permitted roles can:
### Porch Architecture

The Package Orchestration service, **Porch** is designed to be hosted in a
[Kubernetes](https://kubernetes.io/) cluster, just like [Config Sync][].
[Kubernetes](https://kubernetes.io/) cluster.

The overall architecture is shown below, and includes also existing components
(k8s apiserver and Config Sync).
Expand Down
2 changes: 1 addition & 1 deletion docs/design-docs/CaD Core Architecture.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/design-docs/Porch Architecture.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a97673b

Please sign in to comment.