<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Concepts on Capsule</title><link>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/</link><description>Recent content in Concepts on Capsule</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/index.xml" rel="self" type="application/rss+xml"/><item><title>Architecture</title><link>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/architecture/</guid><description>Key Decisions Introducing a new separation of duties can lead to a significant paradigm shift. This has technical implications and may also impact your organizational structure. Therefore, when designing a multi-tenant platform pattern, carefully consider the following aspects. As Cluster Administrator, ask yourself:
🔑 How much ownership can be delegated to Tenant Owners (Platform Users)? The answer to this question may be influenced by the following aspects:
Are the Cluster Administrators willing to grant permissions to Tenant Owners?</description></item><item><title>Parameter Schemas and Dynamic Forms</title><link>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/parameter-schema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/parameter-schema/</guid><description>Capsule parameter schemas define the contract between a template and the values submitted by a consuming API object. Resource Permits currently use spec.paramSchema to validate ResourcePermit.spec.params before context loading and rendering.
spec.paramSchema on the referenced template is the complete contract for ResourcePermit.spec.params. It accepts JSON Schema 2020-12 keywords, Kubernetes-compatible x-kubernetes-validations CEL rules, and Capsule&amp;rsquo;s x-capsule-form presentation extension.
Capsule validates parameters during ResourcePermit admission, before loading context or rendering resources. Invalid parameters are rejected and no ResourcePermit is created.</description></item><item><title>Managed Resources and Server-Side Apply</title><link>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/managed-resources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/managed-resources/</guid><description>Capsule uses a shared resource manager to apply Kubernetes objects, track their ownership, and prune them when they leave scope. TenantResource, GlobalTenantResource, ResourcePermitTemplate, and GlobalResourcePermitTemplate share spec.resources[].policy. Each block controls its generated resources, allowing namespaces within a tenant to receive different configuration and lifecycle behavior.
Apply and ownership model Capsule uses Kubernetes server-side apply (SSA) with a stable field manager for each managing parent. A ResourcePermit manager is derived from the request UID:</description></item><item><title>Known Metadata</title><link>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/known-metadata/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/known-metadata/</guid><description>Labels Labels commonly used in Capsule items are listed below. These labels are applied to the corresponding resources by the Capsule controller and can be used for filtering and selection purposes.
capsule.clastix.io/tenant Description Target Objects Audience Established the connection between Object and Tenant. It&amp;rsquo;s value indicates the owning Tenant * Namespaces having a relationship to Tenants Controller projectcapsule.dev/tenant Description Target Objects Audience Established the connection between Object and Tenant. It&amp;rsquo;s value indicates the owning Tenant.</description></item><item><title>Templating</title><link>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/templating/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-164--docs-projectcapsule.netlify.app/docs/operating/concepts/templating/</guid><description>Fast Templates For simple template cases we provide a fast templating engine. With this engine, you can use Go templates syntax to reference Tenant and Namespace fields. There are no operators or anything else supported.
Available fields are:
{{tenant.name}}: The Name of the Tenant {{namespace}}: The Name of the namespace within the tenant (current context) Sprout Templating Our template library is mainly based on the upstream implementation from Sprout. You can find the all available functions here:</description></item></channel></rss>