@@ -44,10 +44,15 @@ Having established the basics of a very generic CaD architecture, the remainder
4444on ** Porch** - the Package Orchestration service.
4545
4646Package 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:
5661The following section expands more on each of these areas. The term * client* used in these sections can be either a person
5762interacting 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
6166The benefits of Configuration as Data are already available in CLI form, using kpt and the KRM function ecosystem, which
6267includes 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