<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Guides on kpt documentation</title><link>https://deploy-preview-4458--kptdocs.netlify.app/guides/</link><description>Recent content in Guides on kpt documentation</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-4458--kptdocs.netlify.app/guides/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://deploy-preview-4458--kptdocs.netlify.app/guides/tenant-onboarding/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-4458--kptdocs.netlify.app/guides/tenant-onboarding/</guid><description>&lt;h1 id="tenant-onboarding">
 Tenant onboarding
 &lt;a href="#tenant-onboarding" class="anchor-link">#&lt;/a>
&lt;/h1>


&lt;div class="alert alert-warning">
 
 
 
 &lt;strong>&amp;#9888; Warning:&lt;/strong>
 
 

 
 
 This guide is a work in progress and may not fully reflect the
current state of kpt. It is due for a rewrite.
&lt;/div>

&lt;p>We have seen that in large organizations using kubernetes, there is a platform
team (or infrastructure team) that is responsible for managing the kubernetes
clusters. Typically a kubernetes cluster is shared by multiple teams to run
different types of workloads. One of the common use-cases platform teams have
is onboarding a new tenant on the kubernetes cluster. In this guide, you will
learn - how you can use kpt to address the tenant use-case. Though this guide
focuses on the tenant use-case, the pattern for package workflow discussed here
can be applied to other use cases as well.&lt;/p></description></item><item><title/><link>https://deploy-preview-4458--kptdocs.netlify.app/guides/value-propagation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-4458--kptdocs.netlify.app/guides/value-propagation/</guid><description>&lt;h1 id="value-propagation-pattern">
 Value propagation pattern
 &lt;a href="#value-propagation-pattern" class="anchor-link">#&lt;/a>
&lt;/h1>&lt;p>Generating a string value and propagating that value to another place
(or many other places) in your configuration is a very common pattern.
In this guide, we will go through the recommended technique to
do this value propagation using our 
&lt;a href="https://catalog.kpt.dev/function-catalog/starlark/v0.5/" target="_blank">starlark&lt;/a> and 
&lt;a href="https://catalog.kpt.dev/function-catalog/apply-replacements/v0.1/" target="_blank">apply-replacements&lt;/a>
KRM functions.&lt;/p>
&lt;h2 id="string-generation-function">
 String generation function
 &lt;a href="#string-generation-function" class="anchor-link">#&lt;/a>
&lt;/h2>&lt;p>Sometimes, the value that we need to propagate is a concatenation of
other values that come from various other resource fields. In order
to generate the value we need to propagate, we can make use of the

&lt;a href="https://catalog.kpt.dev/function-catalog/starlark/v0.5/" target="_blank">starlark&lt;/a> function.&lt;/p></description></item><item><title/><link>https://deploy-preview-4458--kptdocs.netlify.app/guides/variant-constructor-pattern/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-4458--kptdocs.netlify.app/guides/variant-constructor-pattern/</guid><description>&lt;h1 id="variant-construction-pattern">
 Variant construction pattern
 &lt;a href="#variant-construction-pattern" class="anchor-link">#&lt;/a>
&lt;/h1>&lt;p>If you look at the config workflows, you will notice that creating a variant
of a package is a very frequent operation, so reducing the steps
required to create a variant can have significant benefits for the
package consumers. In this guide, we will look at some techniques
that a package author can use to enable automatic variant construction of a package.&lt;/p>
&lt;h2 id="types-of-packages">
 Types of packages
 &lt;a href="#types-of-packages" class="anchor-link">#&lt;/a>
&lt;/h2>&lt;p>kpt packages comes in two flavors: &lt;code>abstract package&lt;/code> and
&lt;code>deployable instance&lt;/code>. An &lt;code>abstract&lt;/code> package is a reususable package that
is used to create deployable instances that can be deployed to a
kubernetes cluster. In programming language terms, you can think of an &lt;code>abstract&lt;/code>
packages as the class and &lt;code>deployable instance&lt;/code> as the instances of the class.
&lt;code>deployable&lt;/code> instances of package are also referred to as &lt;code>variant&lt;/code> of the package.&lt;/p></description></item><item><title>Namespace provisioning using kpt CLI</title><link>https://deploy-preview-4458--kptdocs.netlify.app/guides/namespace-provisioning-cli/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-4458--kptdocs.netlify.app/guides/namespace-provisioning-cli/</guid><description>&lt;h2 id="what-package-are-we-creating-">
 What package are we creating ?
 &lt;a href="#what-package-are-we-creating-" class="anchor-link">#&lt;/a>
&lt;/h2>&lt;p>Onboarding a new application or a micro-service is a very common task for a
platform team. It involves provisioning a dedicated namespace (and other
associated resources) where all resources that belong to the application reside.
In this guide, we will create a package that will be used for provisioning a namespace.&lt;/p>
&lt;h2 id="prerequisites">
 Prerequisites
 &lt;a href="#prerequisites" class="anchor-link">#&lt;/a>
&lt;/h2>&lt;h3 id="repositories">
 Repositories
 &lt;a href="#repositories" class="anchor-link">#&lt;/a>
&lt;/h3>&lt;p>Platform teams will have to setup two repos:&lt;/p></description></item><item><title>The Rationale behind kpt</title><link>https://deploy-preview-4458--kptdocs.netlify.app/guides/rationale/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-4458--kptdocs.netlify.app/guides/rationale/</guid><description>&lt;p>Most Kubernetes users either manage their resources using conventional imperative graphical user interfaces,
command-line tools (kubectl), and automation (e.g., Operators) that operate directly against Kubernetes APIs, or
declarative configuration tools, such as Helm, Terraform, cdk8s, or one of the

&lt;a href="https://docs.google.com/spreadsheets/d/1FCgqz1Ci7_VCz_wdh8vBitZ3giBtac_H8SBw4uxnrsE/edit#gid=0" target="_blank">dozens of other tools&lt;/a>.
At small scale, this is largely driven by preference and familiarity.&lt;/p>
&lt;p>As companies expand the number of Kubernetes development and production clusters they use, creating and enforcing
consistent configurations and security policies across a growing environment becomes difficult. At that point, the
choice of management surface is no longer driven by preference, but by capabilities. To address this challenge, it is
increasingly common for platform administrators to use “GitOps” methodology to deploy configuration consistently across
clusters and environments with a version-controlled deployment process. Using the same principles as Kubernetes itself,
GitOps reconciles the desired state of clusters with a set of Kubernetes declarative configuration files in a source
control system, namely git.&lt;/p></description></item></channel></rss>