Skip to content

Commit 019f194

Browse files
additional reworking to Porch theory introduction
- port some last bits in from kpt documentation
1 parent 5037ee1 commit 019f194

File tree

1 file changed

+17
-12
lines changed
  • content/en/docs/neo-porch/2_concepts

1 file changed

+17
-12
lines changed

content/en/docs/neo-porch/2_concepts/theory.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,15 @@ Having established the basics of a very generic CaD architecture, the remainder
4444
on **Porch** - the Package Orchestration service.
4545

4646
Package Orchestration - "Porch" for short - is "[kpt][kpt]-as-a-service". It provides opinionated, Kubernetes-based interfaces
47-
to manage and orchestrate kpt packages, allowing a user to automate package management, content manipulation, version control,
48-
and lifecycle operations using standard Kubernetes controller techniques.
47+
to manage and orchestrate kpt configuration packages, allowing the use of standard Kubernetes controller techniques to automate:
48+
* package management, including [CRUD][CRUD] operations, content manipulation, and lifecycle operations
49+
* connection to package repositories, with automatic discovery of packages contained in them
50+
* [WYSIWYG](https://en.wikipedia.org/wiki/WYSIWYG) package authoring
51+
* evaluation of [KRM functions][krm functions] on package contents
52+
* package version control, with a proposal/approval workflow around publishing new package versions
53+
* package customization with guardrails
4954

50-
To cement the role of Porch-as-CaD-implementation, it covers:
55+
To cement the role of Porch as part of the Nephio CaD implementation, it covers:
5156

5257
* [Repository Management](#repository-management)
5358
* [Package Discovery](#package-discovery)
@@ -56,17 +61,16 @@ To cement the role of Porch-as-CaD-implementation, it covers:
5661
The following section expands more on each of these areas. The term *client* used in these sections can be either a person
5762
interacting with the API (e.g., through a web application or a command-line tool), or an automated agent or process.
5863

59-
### Porch: Why?
64+
### Rationale behind Porch
6065

6166
The benefits of Configuration as Data are already available in CLI form, using kpt and the KRM function ecosystem, which
6267
includes a kpt-hosted [function catalog](https://catalog.kpt.dev/). YAML files can be created and organised into packages
63-
using any editor with YAML support. However, a UI experience of [WYSIWYG](https://en.wikipedia.org/wiki/WYSIWYG) package
64-
management is not yet available which can support broader package lifecycle management and necessary development guardrails.
65-
66-
Porch enables development of such a UI experience. Part of the Nephio Configuration as Data implementation, it offers an
67-
API and CLI which provide lifecycle management of kpt packages, including package authoring with guardrails, a proposal/approval
68-
workflow, package deployment, and more.
68+
using any editor with YAML support. However, a WYSIWYG user experience of package management is not yet available which can
69+
support broader package lifecycle management and necessary development guardrails.
6970

71+
Porch enables development of such a user experience. It enables workflows similar to those supported by the kpt CLI, offering
72+
them as-a-service over an API and CLI which provide lifecycle management of kpt packages, package authoring with guardrails,
73+
a proposal/approval workflow, package deployment, and more.
7074

7175
### Repository Management
7276

@@ -88,7 +92,7 @@ Porch's package discovery functionality enables the client to read package data:
8892
* Sort and filter based on package metadata (labels) or a selection of field values.
8993
* To improve performance and latency, package revisions are automatically discovered and cached in Porch upon repository
9094
registration.
91-
* Porch's repository-synchronisation then polls the repository at a user-customisable interval to keep the cache up to date.
95+
* Porch's repository-synchronisation then polls the repository at a user-customizable interval to keep the cache up to date.
9296
* Retrieve details of an individual package revision.
9397
* Discover upstream packages with new latest revisions to which their downstream packages can be upgraded.
9498
* Identify deployment-ready packages that are available to be deployed by the chosen deployment software.
@@ -113,7 +117,7 @@ Porch's package lifecycle management enables the client to orchestrate packages
113117
* Update the package contents of a draft package revision by pushing an edited local copy to the draft (`porchctl rpkg push`).
114118
Example edits:
115119
* Add, modify, or delete resources in the package.
116-
* Add, modiy, or delete the KRM functions in the pipeline in the package's `kptfile`.
120+
* Add, modify, or delete the KRM functions in the pipeline in the package's `kptfile`.
117121
* e.g.: mutator functions to transform the KRM resources in the package contents; validator functions to enforce validation.
118122
* Add, modify, or delete a sub-package.
119123

@@ -152,6 +156,7 @@ user, service account) can perform. For example, access can be segregated to res
152156

153157
<!-- Reference links -->
154158
[Config Sync]: https://cloud.google.com/anthos-config-management/docs/config-sync-overview
159+
[CRUD]: https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
155160
[kpt]: https://kpt.dev/
156161
[krm]: https://github.com/kubernetes/design-proposals-archive/blob/main/architecture/resource-management.md
157162
[krm functions]: https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md

0 commit comments

Comments
 (0)