diff --git a/content/en/docs/neo-porch/2_concepts/fundamentals.md b/content/en/docs/neo-porch/2_concepts/fundamentals.md index 1be57b9d..85d7567e 100644 --- a/content/en/docs/neo-porch/2_concepts/fundamentals.md +++ b/content/en/docs/neo-porch/2_concepts/fundamentals.md @@ -49,7 +49,7 @@ revision may be in one of several lifecycle stages: cloning it to one or several downstream packages, as well as preparing new downstream package revisions when a new revision of the upstream package is published. Package variant sets enable the same behaviour for package variants themselves. Use of package variants involves advanced concepts worthy of their own separate document: - [Package Variants]({{% relref "/docs/neo-porch/5_architecture_and_components/controllers/pkg-variant-controllers.md" %}}) + [Package Variants]({{% relref "/docs/neo-porch/5_architecture_and_components/controllers/packagevariant.md" %}}) In addition, some terms may be used with specific qualifiers, frequently enough to count them as sub-concepts: diff --git a/content/en/docs/neo-porch/5_architecture_and_components/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/_index.md index bfa1ae54..8cd037f7 100644 --- a/content/en/docs/neo-porch/5_architecture_and_components/_index.md +++ b/content/en/docs/neo-porch/5_architecture_and_components/_index.md @@ -5,6 +5,112 @@ weight: 5 description: Porch Architecture and its underlying components --- -## Lorem Ipsum +## Overview -Lorem Ipsum +This section provides developer-level documentation of Porch's internal architecture. It explains how the main components work together to provide package orchestration capabilities, and details the implementation of each component and its subcomponents. + +Porch is built as a **Kubernetes extension** consisting of multiple deployable components that work together to manage the lifecycle of KRM configuration packages stored in Git or OCI repositories. + +## High-Level Architecture + +Porch's architecture follows a modular design with clear separation of concerns. The diagram below shows the main components and their relationships: + + + +The architecture includes: + +- **Porch Server**: Kubernetes Aggregated API Server containing the Engine, Cache, and Repository Adapters +- **Function Runner**: Separate gRPC service for executing KRM functions +- **Controllers**: Kubernetes controllers for automation (PackageVariant, PackageVariantSet) +- **External Repositories**: Git or OCI repositories storing the actual packages + +## Deployable Components + +Porch consists of the following independently deployable components: + +### 1. Porch Server + +The main API server that extends Kubernetes with Porch-specific resources. It handles all package operations, coordinates with other components, and manages package lifecycle. + +**Deployment**: Single pod (can scale horizontally) +**Port**: 4443 (API), 8443 (webhooks) + +**Internal Components**: + +- **API Server**: Kubernetes Aggregated API Server implementation +- **Engine (CaD Engine)**: Core orchestration logic for package lifecycle operations +- **Task Handler**: Executes package operations (init, clone, edit, update, render) +- **Repository Adapters**: Abstraction layer for Git/OCI repository interactions +- **Cache Client**: Interface to the caching layer +- **Watcher Manager**: Manages watch streams for real-time package revision updates +- **Webhooks**: Validation and mutation webhooks for API resources + +### 2. Function Runner + +A gRPC service that executes KRM functions to transform and validate package contents. + +**Deployment**: 2+ replicas for availability +**Port**: 9445 (gRPC) + +**Internal Components**: + +- **gRPC Server**: Exposes function evaluation endpoint +- **Executable Evaluator**: Executes built-in functions directly in the runner pod +- **Pod Evaluator**: Spawns function pods for external functions +- **Pod Cache Manager**: Manages lifecycle of cached function pods +- **Multi-Evaluator**: Coordinates between different evaluation strategies + +### 3. Controllers + +Kubernetes controllers that automate package operations by watching Porch resources and reconciling desired state. + +**Deployment**: Single pod with leader election + +**Internal Components**: + +- **PackageVariant Controller**: Automates package cloning and updates +- **PackageVariantSet Controller**: Manages sets of package variants +- **Reconciliation Logic**: Watches resources and maintains desired state + +### 4. Cache + +Storage backend for repository content caching. Can be either CR-based (using Kubernetes resources) or PostgreSQL-based. + +**Deployment**: + +- **CR Cache**: No separate deployment (uses K8s API) +- **DB Cache**: PostgreSQL StatefulSet + +**Internal Components**: + +- **Repository Sync Manager**: Periodic synchronization with external repositories +- **Cache Storage**: Stores package contents and metadata +- **Cache Invalidation**: Handles cache updates and cleanup + +## Component Interaction Flow + +Here's how components interact during a typical package operation (e.g., creating and rendering a package): + +1. **User Request**: Client sends API request to Porch Server +2. **API Server**: Validates request, authenticates user +3. **Engine**: Orchestrates the operation +4. **Cache**: Opens repository, checks current state +5. **Repository Adapter**: Interacts with Git/OCI if needed +6. **Task Handler**: Applies tasks (init, edit, etc.) +7. **Function Runner**: Executes KRM functions (if rendering) +8. **Repository Adapter**: Commits changes to Git/OCI +9. **Cache**: Updates cached state +10. **Watcher Manager**: Notifies watching clients +11. **Response**: Returns updated package revision to client + +## Design Principles + +Porch's architecture follows these key principles: + +1. **Configuration as Data**: Packages are treated as versioned data, not imperative scripts +2. **Git-Native**: Leverages Git's versioning and collaboration features +3. **Kubernetes-Native**: Extends Kubernetes API, uses standard patterns +4. **Separation of Concerns**: Clear boundaries between components +5. **Extensibility**: Function-based transformation pipeline +6. **Performance**: Caching layer for scalability +7. **Automation**: Controllers enable GitOps workflows diff --git a/content/en/docs/neo-porch/5_architecture_and_components/cache/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/cache/_index.md new file mode 100644 index 00000000..442438cb --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/cache/_index.md @@ -0,0 +1,12 @@ +--- +title: "Cache" +type: docs +weight: 2 +description: Repository content caching layer +--- + +## Overview + +The Cache is a critical performance optimization layer that stores repository contents locally. Porch supports two cache implementations: CR Cache (using Kubernetes Custom Resources) and DB Cache (using PostgreSQL). The choice between them depends on deployment requirements and scale. + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/cache/cr-cache.md b/content/en/docs/neo-porch/5_architecture_and_components/cache/cr-cache.md new file mode 100644 index 00000000..4aa5b75f --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/cache/cr-cache.md @@ -0,0 +1,10 @@ +--- +title: "CR Cache" +type: docs +weight: 1 +description: Custom Resource-based cache implementation +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/cache/db-cache.md b/content/en/docs/neo-porch/5_architecture_and_components/cache/db-cache.md new file mode 100644 index 00000000..11a65703 --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/cache/db-cache.md @@ -0,0 +1,10 @@ +--- +title: "DB Cache" +type: docs +weight: 2 +description: PostgreSQL-based cache implementation +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/cache/repo-sync/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/cache/repository-sync.md similarity index 99% rename from content/en/docs/neo-porch/5_architecture_and_components/porch-server/cache/repo-sync/_index.md rename to content/en/docs/neo-porch/5_architecture_and_components/cache/repository-sync.md index 453751a9..4be524f7 100644 --- a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/cache/repo-sync/_index.md +++ b/content/en/docs/neo-porch/5_architecture_and_components/cache/repository-sync.md @@ -168,7 +168,7 @@ Fetch Cached Packages ←→ Fetch External Packages - ⚠️ **Important**: Do not perform API operations (create, update, delete packages) on the repository while this condition is active. Wait for the sync to complete and the repository to return to "ready" state to avoid conflicts and data inconsistencies. - **ready**: Repository synchronized and ready for use - **error**: Synchronization failed with error details - - ⚠️ **Important**: Do not perform API operations on the repository while in error state. Check the error message in the condition details, debug and resolve the underlying issue (e.g., network connectivity, authentication, repository access), then wait for the repository to return to "ready" state before running API calls. See the [troubleshooting guide]({{% relref "/docs/neo-porch/9_troubleshooting_and_faq/repository-sync.md" %}}) for common sync issues and solutions. + - ⚠️ **Important**: Do not perform API operations on the repository while in error state. Check the error message in the condition details, debug and resolve the underlying issue (e.g., network connectivity, authentication, repository access), then wait for the repository to return to "ready" state before running API calls. See the [troubleshooting guide]({{% relref "/docs/neo-porch/9_troubleshooting_and_faq/repository-sync/" %}}) for common sync issues and solutions. ### Condition Functions - **Set Repository Condition**: Updates the status of a repository with new condition information diff --git a/content/en/docs/neo-porch/5_architecture_and_components/controllers/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/controllers/_index.md index e5c7b50a..320a54d8 100644 --- a/content/en/docs/neo-porch/5_architecture_and_components/controllers/_index.md +++ b/content/en/docs/neo-porch/5_architecture_and_components/controllers/_index.md @@ -1,10 +1,12 @@ --- title: "Controllers" type: docs -weight: 3 -description: controllers +weight: 5 +description: Kubernetes controllers for package automation --- -## Lorem Ipsum +## Overview -Lorem Ipsum +Porch controllers are Kubernetes controllers that watch Porch resources and automate package operations. They enable advanced workflows like automatic package cloning, updates, and variant management. + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/controllers/pkg-variant-controllers.md b/content/en/docs/neo-porch/5_architecture_and_components/controllers/packagevariant.md similarity index 100% rename from content/en/docs/neo-porch/5_architecture_and_components/controllers/pkg-variant-controllers.md rename to content/en/docs/neo-porch/5_architecture_and_components/controllers/packagevariant.md diff --git a/content/en/docs/neo-porch/5_architecture_and_components/controllers/packagevariantset.md b/content/en/docs/neo-porch/5_architecture_and_components/controllers/packagevariantset.md new file mode 100644 index 00000000..e6521b1f --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/controllers/packagevariantset.md @@ -0,0 +1,10 @@ +--- +title: "PackageVariantSet Controller" +type: docs +weight: 2 +description: PackageVariantSet controller details +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/_index.md deleted file mode 100644 index 376a1f82..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/_index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Custom Resources" -type: docs -weight: 5 -description: Custom Resources ---- - -## Repositories - -explain porch repositories diff --git a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-rev.md b/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-rev.md deleted file mode 100644 index 61966fab..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-rev.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Package Rev" -type: docs -weight: 4 -description: Package Rev ---- - -## Package Rev - -low level explanation of Package Revs diff --git a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-revision-resources.md b/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-revision-resources.md deleted file mode 100644 index b5c744cf..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-revision-resources.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Package Revision Resources" -type: docs -weight: 2 -description: Package Revision Resources ---- - -## Package Revision Resources - -low level explanation of Package Revision Resources diff --git a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-revision.md b/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-revision.md deleted file mode 100644 index 222e0bab..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-revision.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Package Revision" -type: docs -weight: 1 -description: Package Revision ---- - -## Package Revision - -low level explanation of Package Revision diff --git a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-variant-and-set.md b/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-variant-and-set.md deleted file mode 100644 index bb0f40d5..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/package-variant-and-set.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Package Variant & Package Variant Set" -type: docs -weight: 4 -description: Package Variant & Package Variant Set ---- - -## Package Variant & Package Variant Set - -low level explanation of Package Variant & Package Variant Set content explaining section can be found at [package-variant-old-content]({{% relref "/docs/neo-porch/5_architecture_and_components/relevant_old_docs/package-variant.md" %}}) diff --git a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/repositories/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/repositories/_index.md deleted file mode 100644 index 607e66e6..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/repositories/_index.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: "Repositories" -type: docs -weight: 4 ---- - -# Porch Repository Overview - -## What is a Repository CR? - -The Porch Repository is a Kubernetes [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) that represents an external repository containing KPT packages. It serves as Porch's interface to Git repositories and OCI* registries that store package content. - -## Purpose and Use Cases - -### Primary Functions -- **Package Discovery**: Automatically discovers and catalogs packages from external repositories -- **Lifecycle Management**: Manages the complete lifecycle of configuration packages -- **Synchronization**: Keeps Porch's internal cache synchronized with external repository changes -- **Access Control**: Provides authentication and authorization for repository access - -### Use Cases -- **Blueprint Repositories**: Store reusable configuration templates and blueprints -- **Deployment Repositories**: Store deployment-ready configurations for specific environments -- **Package Catalogs**: Centralized repositories of shareable configuration packages -- **Multi-Environment Management**: Separate repositories for dev, staging, and production configurations - -## Repository Types - -### Git Repositories -```yaml -apiVersion: config.porch.kpt.dev/v1alpha1 -kind: Repository -metadata: - name: blueprints - namespace: default -spec: - type: git - git: - repo: https://github.com/example/blueprints.git - branch: main - directory: packages -``` - -## Key Specifications - -### Repository Spec Fields - -For detailed Repository CR specification fields, see the [API documentation](https://doc.crds.dev/github.com/nephio-project/porch/config.porch.kpt.dev/Repository/v1alpha1@v1.5.3#spec): - -{{< iframe src="https://doc.crds.dev/github.com/nephio-project/porch/config.porch.kpt.dev/Repository/v1alpha1@v1.5.3#spec" sub="https://doc.crds.dev/github.com/nephio-project/porch/config.porch.kpt.dev/Repository/v1alpha1@v1.5.3#spec">}} - -### Deployment vs Non-Deployment Repositories -- **Non-Deployment**: Contains blueprint packages for reuse and customization -- **Deployment**: Contains finalized, environment-specific configurations ready for deployment - -## Package Structure Requirements - -### Git Repository Structure -
-repository-root/ -├── package-a/ -│ ├── Kptfile -│ └── resources.yaml -├── package-b/ -│ ├── Kptfile -│ └── manifests/ -└── nested/ - └── package-c/ - ├── Kptfile - └── config.yaml -- -### Package Identification -- Each package must contain a `Kptfile` at its root -- Packages can be nested within subdirectories -- The `directory` field in git spec defines the search root - -## Authentication - -### Basic Authentication - -For basic authentication configuration and repository registration examples, see the [Basic Auth]({{% relref "/docs/neo-porch/7_cli_api/relevant_old_docs/porchctl-cli-guide.md#basic-auth" %}}) documentation. - -### Workload Identity - -For workload identity configuration and repository registration examples, see the [Workload Identity]({{% relref "/docs/neo-porch/7_cli_api/relevant_old_docs/porchctl-cli-guide.md#workload-identity" %}}) documentation. - -## Repository Lifecycle - -### Registration -1. Create Repository CR (manually or via `porchctl repo reg`) -2. Porch validates repository accessibility -3. Initial package discovery and caching -4. Repository marked as `Ready` - -### Synchronization -1. Periodic sync based on `spec.sync.schedule` or default frequency -2. One-time sync using `spec.sync.runOnceAt` for immediate synchronization -3. Package discovery and cache updates -4. Status condition updates -5. Package change detection and notification - -**Note**: One-time syncs should only be used when discrepancies are found between the external repository and Porch cache. Under normal conditions, rely on periodic syncs for regular synchronization. - -### Package Operations -- **Discovery**: Automatic detection of new packages -- **Caching**: Local storage of package metadata and content -- **Revision Tracking**: Tracking of package revisions and changes -- **Access**: API access to package content through Porch - -## Status and Conditions - -### Repository Status -```yaml -status: - conditions: - - type: Ready - status: "True" - reason: Ready - message: 'Repository Ready (next sync scheduled at: 2025-11-05T11:55:38Z)' - lastTransitionTime: "2024-01-15T10:30:00Z" -``` - -### Condition Types -- **Ready**: Repository is accessible and synchronized -- **Error**: Authentication, network, or configuration issues -- **Reconciling**: Package reconciliation(sync) in progress - -## Integration with Porch APIs - -### PackageRevision Resources -- Repository CR enables creation of PackageRevision resources -- Each package in the repository becomes available as PackageRevision -- Package operations (clone, edit, propose, approve) work through PackageRevision API - -### Function Evaluation -- Packages may contain KRM functions for validation and transformation -- Functions are executed during package operations (render, clone, etc.) -- Repository CR provides access to package content that may contain function configurations - -## Best Practices - -### Repository Organization -- Use clear, descriptive repository names -- Organize packages in logical directory structures -- Separate blueprint and deployment repositories -- Use consistent naming conventions - -### Synchronization -- Set appropriate sync schedules based on change frequency -- Use one-time sync for immediate updates after changes -- Monitor repository conditions for sync issues - -### Security -- Use least-privilege authentication credentials -- Regularly rotate authentication tokens -- Separate repositories by access requirements - -### Performance -- Avoid overly large repositories -- Use directory filtering to limit package scope -- Monitor sync performance and adjust schedules accordingly - ---- - -{{% alert title="Note" color="primary" %}} -OCI repository support is experimental and may not have full feature parity with Git repositories. -{{% /alert %}} \ No newline at end of file diff --git a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/repositories/upstream-vs-downstream.md b/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/repositories/upstream-vs-downstream.md deleted file mode 100644 index 62c9419b..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/custom-resources/repositories/upstream-vs-downstream.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Upstream vs Downstream" -type: docs -weight: 2 -description: Upstream vs Downstream description ---- - -## Repositories - -explain porch repositories - -## [UPSTREAM] - -EXPLAIN PORCH INTERACTION WITH UPSTREAM REPO'S - -## [DOWNSTREAM] - -EXPLAIN PORCH INTERACTION WITH DOWNSTREAM REPO'S - -## [DEPLOYMENT VS NON DEPLOYMENT REPO] - -EXPLAIN WHAT THAT MEANS - -### [4 WAYS PKG REV COMES INTO EXISTENCE] - -[UPSTREAM IS THE SOURCE OF THE CLONE] - -### [CREATED USING RPKG INIT/API] - -[IN THE CASE THERE IS NO UPSTREAM] - -### [COPY FROM ANOTHER REV IN THE SAME PKG] - -[NO UPSTREAM?] - -### [CAN BE CLONED FROM ANOTHER PKG REV A NEW] - -[HAS UPSTREAM] - -### [CAN BE LOADED FROM GIT] - -[DEPENDS ON WEATHER IT HAD A HAD A CLONE SOURCE OR NOT AT THE TIME] \ No newline at end of file diff --git a/content/en/docs/neo-porch/5_architecture_and_components/function-runner/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/_index.md index e252d9fe..5384fa01 100644 --- a/content/en/docs/neo-porch/5_architecture_and_components/function-runner/_index.md +++ b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/_index.md @@ -1,10 +1,12 @@ --- title: "Function Runner" type: docs -weight: 2 -description: function runner +weight: 3 +description: KRM function execution service --- -## Lorem Ipsum +## Overview -Lorem Ipsum +The Function Runner is a gRPC service responsible for executing KRM functions that transform and validate package contents. It manages function execution in pods and maintains a cache of frequently-used function pods for performance. + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/function-runner/rendering.md b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/function-execution.md similarity index 100% rename from content/en/docs/neo-porch/5_architecture_and_components/function-runner/rendering.md rename to content/en/docs/neo-porch/5_architecture_and_components/function-runner/function-execution.md diff --git a/content/en/docs/neo-porch/5_architecture_and_components/function-runner/grpc-service.md b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/grpc-service.md new file mode 100644 index 00000000..ca11b1a9 --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/grpc-service.md @@ -0,0 +1,10 @@ +--- +title: "gRPC Service" +type: docs +weight: 1 +description: gRPC interface and protocol +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/function-runner/pod-cache.md b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/pod-cache.md new file mode 100644 index 00000000..14b89a6f --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/pod-cache.md @@ -0,0 +1,10 @@ +--- +title: "Pod Cache" +type: docs +weight: 4 +description: Pod cache warm-up and management +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/function-runner/pod-templating.md b/content/en/docs/neo-porch/5_architecture_and_components/function-runner/pod-evaluator.md similarity index 100% rename from content/en/docs/neo-porch/5_architecture_and_components/function-runner/pod-templating.md rename to content/en/docs/neo-porch/5_architecture_and_components/function-runner/pod-evaluator.md diff --git a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/porch-server/_index.md index 7853cbcb..0de974ad 100644 --- a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/_index.md +++ b/content/en/docs/neo-porch/5_architecture_and_components/porch-server/_index.md @@ -2,9 +2,11 @@ title: "Porch Server" type: docs weight: 1 -description: porch server +description: Main API server component --- -## Lorem Ipsum +## Overview -Lorem Ipsum +The Porch Server is a Kubernetes Aggregated API Server that extends the Kubernetes API with Porch-specific resources. It is the main component that handles all package operations, coordinates with other components, and manages the package lifecycle. + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/aggregated-api-server.md b/content/en/docs/neo-porch/5_architecture_and_components/porch-server/api-server.md similarity index 100% rename from content/en/docs/neo-porch/5_architecture_and_components/porch-server/aggregated-api-server.md rename to content/en/docs/neo-porch/5_architecture_and_components/porch-server/api-server.md diff --git a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/cache/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/porch-server/cache/_index.md deleted file mode 100644 index 54d51c2b..00000000 --- a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/cache/_index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Cache" -type: docs -weight: 5 -description: Caching ---- - -## CR cache explanation - -Lorem Ipsum low level explanations - -## DB cache explanation - -Lorem Ipsum low level explanations diff --git a/content/en/docs/neo-porch/5_architecture_and_components/function-runner/task-pipeline.md b/content/en/docs/neo-porch/5_architecture_and_components/porch-server/task-handler.md similarity index 100% rename from content/en/docs/neo-porch/5_architecture_and_components/function-runner/task-pipeline.md rename to content/en/docs/neo-porch/5_architecture_and_components/porch-server/task-handler.md diff --git a/content/en/docs/neo-porch/5_architecture_and_components/porch-server/webhooks.md b/content/en/docs/neo-porch/5_architecture_and_components/porch-server/webhooks.md new file mode 100644 index 00000000..947d9570 --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/porch-server/webhooks.md @@ -0,0 +1,10 @@ +--- +title: "Webhooks" +type: docs +weight: 4 +description: Validation and mutation webhooks +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/extracted_from_old_porch_concepts.md b/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/extracted_from_old_porch_concepts.md index 2dc2eaa8..acbd7bde 100644 --- a/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/extracted_from_old_porch_concepts.md +++ b/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/extracted_from_old_porch_concepts.md @@ -58,7 +58,7 @@ aggregation layer. The benefits of this approach are: The Porch server serves the primary Kubernetes resources required for basic package authoring and lifeycle management, including: -* For each package revision (see [Package Revisions]({{% relref "/docs/neo-porch/2_concepts/fundamentals.md#package-revisions" %}})): +* For each package revision (see [Package Revisions]({{% relref "/docs/neo-porch/2_concepts/fundamentals.md#package-revisions" %}}))): * `PackageRevision` - represents the *metadata* of the package revision stored in a repository. * `PackageRevisionResources` - represents the *file contents* of the package revision. {{% alert color="primary" %}} diff --git a/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/package-variant.md b/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/package-variant.md index 133e155b..f985e303 100644 --- a/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/package-variant.md +++ b/content/en/docs/neo-porch/5_architecture_and_components/relevant_old_docs/package-variant.md @@ -13,8 +13,8 @@ description: When deploying workloads across large fleets of clusters, it is often necessary to modify the workload configuration for a specific cluster. Additionally, these workloads may evolve over time -with security or other patches that require updates. [Configuration as Data]({{% relref "/docs/porch/config-as-data.md" %}}) in -general, and [Package Orchestration]({{% relref "/docs/porch/package-orchestration.md" %}}) in particular, can assist in this. +with security or other patches that require updates. [Configuration as Data]({{% relref "/docs/neo-porch/1_overview/relevant_old_docs/config-as-data.md" %}}) in +general, and [Package Orchestration]({{% relref "/docs/neo-porch/2_concepts/relevant_old_docs/package-orchestration.md" %}}) in particular, can assist in this. However, they are still centered around a manual, one-by-one hydration and configuration of a workload. @@ -30,7 +30,7 @@ dimensions of scalability: For further information, see the following links: -- [Package Orchestration]({{% relref "/docs/porch/package-orchestration.md" %}}) +- [Package Orchestration]({{% relref "/docs/neo-porch/2_concepts/relevant_old_docs/package-orchestration.md" %}}) - [#3347](https://github.com/GoogleContainerTools/kpt/issues/3347) Bulk package creation - [#3243](https://github.com/GoogleContainerTools/kpt/issues/3243) Support bulk package upgrades - [#3488](https://github.com/GoogleContainerTools/kpt/issues/3488) Porch: BaseRevision controller aka Fan Out diff --git a/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/_index.md b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/_index.md new file mode 100644 index 00000000..013d6e70 --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/_index.md @@ -0,0 +1,10 @@ +--- +title: "Repository Adapters" +type: docs +weight: 4 +description: External repository integration layer +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/authentication.md b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/authentication.md new file mode 100644 index 00000000..efd41411 --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/authentication.md @@ -0,0 +1,10 @@ +--- +title: "Authentication" +type: docs +weight: 3 +description: Credential resolution and authentication methods +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/git-adapter.md b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/git-adapter.md new file mode 100644 index 00000000..bfad6d49 --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/git-adapter.md @@ -0,0 +1,10 @@ +--- +title: "Git Adapter" +type: docs +weight: 1 +description: Git operations, branches, and commits +--- + +## Overview + +Content to be added. diff --git a/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/oci-adapter.md b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/oci-adapter.md new file mode 100644 index 00000000..b22e0c93 --- /dev/null +++ b/content/en/docs/neo-porch/5_architecture_and_components/repository-adapters/oci-adapter.md @@ -0,0 +1,10 @@ +--- +title: "OCI Adapter" +type: docs +weight: 2 +description: OCI registry operations +--- + +## Overview + +Content to be added.