<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Deploying resources on Firestartr Documentation</title><link>https://docs.firestartr.dev/docs/deploying-resources/</link><description>Recent content in Deploying resources on Firestartr Documentation</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://docs.firestartr.dev/docs/deploying-resources/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://docs.firestartr.dev/docs/deploying-resources/Migrating-to-our-new-app-state-repo-structure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.firestartr.dev/docs/deploying-resources/Migrating-to-our-new-app-state-repo-structure/</guid><description>&lt;h1 id="introduction"&gt;Introduction&lt;a class="anchor" href="#introduction"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Lately, we have the need to migrate old state repos to our new app state repo structure. This article will describe the steps needed to be followed to properly do this migration. Note that the following steps should be done in a &lt;code&gt;dev&lt;/code&gt; or &lt;code&gt;pre&lt;/code&gt; environment first, and once everything is working then applied to the &lt;code&gt;pro&lt;/code&gt; environment (during an intervention window which must be request beforehand).&lt;/p&gt;
&lt;h3 id="step-0--prerrequisites"&gt;Step 0: 🛠️ prerrequisites&lt;a class="anchor" href="#step-0--prerrequisites"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Go to the &lt;code&gt;charts&lt;/code&gt; repo of the organization and locate the &lt;code&gt;deployment.yaml&lt;/code&gt; file (or equivalent, such as &lt;code&gt;statefulset.yaml&lt;/code&gt;, &lt;code&gt;daemonset.yaml&lt;/code&gt;, etc.) for the application of the repo you are updating. Update the following line in the &lt;strong&gt;annotations of the deployment&lt;/strong&gt; (not the pod):&lt;/p&gt;</description></item><item><title/><link>https://docs.firestartr.dev/docs/deploying-resources/state-apps-repository/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.firestartr.dev/docs/deploying-resources/state-apps-repository/</guid><description>&lt;h1 id="-overview"&gt;🔍 Overview&lt;a class="anchor" href="#-overview"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This documentation focuses on the structure and purpose of application repositories for deploying workloads in Kubernetes. Each application has its own dedicated repository to ensure isolation, clear organization, and streamlined management of configuration and deployment files.&lt;/p&gt;
&lt;p&gt;The repository serves as the single source of truth for the application’s configuration across clusters, tenants, and environments.&lt;/p&gt;
&lt;h2 id="-repository-directory-structure"&gt;📂 Repository directory structure&lt;a class="anchor" href="#-repository-directory-structure"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Applications are organized in the following directory structure within the Git repository:&lt;/p&gt;</description></item><item><title/><link>https://docs.firestartr.dev/docs/deploying-resources/state-sys-services-repository/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.firestartr.dev/docs/deploying-resources/state-sys-services-repository/</guid><description>&lt;h1 id="-overview"&gt;🔍 Overview&lt;a class="anchor" href="#-overview"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This repository is dedicated to managing system services for Kubernetes clusters, referred to as sys-services. These services are critical components that ensure the smooth operation of the Kubernetes clusters, such as ingress controllers, configuration reloading utilities (e.g., Stakater Reloader), and other essential utilities.&lt;/p&gt;
&lt;p&gt;The repository centralizes all sys-service definitions and deployment configurations to ensure consistency, manageability, and automation across multiple Kubernetes clusters.&lt;/p&gt;
&lt;h2 id="-structure-of-the-repository"&gt;📂 Structure of the repository&lt;a class="anchor" href="#-structure-of-the-repository"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The repository is organized into a hierarchical folder structure to map services to clusters:&lt;/p&gt;</description></item><item><title/><link>https://docs.firestartr.dev/docs/deploying-resources/The-dot-firestartr-repository/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.firestartr.dev/docs/deploying-resources/The-dot-firestartr-repository/</guid><description>&lt;h1 id="-introduction"&gt;📄 Introduction&lt;a class="anchor" href="#-introduction"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;When using Firestartr, each client should have a repository called &lt;code&gt;.firestartr&lt;/code&gt;, which should contain a variety of YAML files describing many different aspects of the client&amp;rsquo;s repository, registry and application structures.&lt;/p&gt;
&lt;h2 id="-repo-structure"&gt;📁 Repo structure&lt;a class="anchor" href="#-repo-structure"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The repo structure is as follows:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apps/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├─ app1.yaml &lt;span style="color:#75715e"&gt;# app1 configuration YAML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├─ app2.yml &lt;span style="color:#75715e"&gt;# app2 configuration YAML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker_registries/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├─ releases.yaml &lt;span style="color:#75715e"&gt;# releases registry configuration YAML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├─ snapshots.yaml &lt;span style="color:#75715e"&gt;# snapshots registry configuration YAML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;platforms/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ├─ cluster1.yaml &lt;span style="color:#75715e"&gt;# cluster1 configuration YAML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ cluster2.yml &lt;span style="color:#75715e"&gt;# cluster2 configuration YAML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;providers/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ &lt;span style="color:#f92672"&gt;[&lt;/span&gt;app-name&lt;span style="color:#f92672"&gt;]&lt;/span&gt;/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ &lt;span style="color:#f92672"&gt;[&lt;/span&gt;claim-kind&lt;span style="color:#f92672"&gt;]&lt;/span&gt;/ &lt;span style="color:#75715e"&gt;# currently only the &amp;#39;TFWorkspace&amp;#39; kind is supported&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ &lt;span style="color:#f92672"&gt;[&lt;/span&gt;tenant&lt;span style="color:#f92672"&gt;]&lt;/span&gt;/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ &lt;span style="color:#f92672"&gt;[&lt;/span&gt;env&lt;span style="color:#f92672"&gt;]&lt;/span&gt;/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ provider1.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ provider2.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;validations/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ apps/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ &lt;span style="color:#f92672"&gt;[&lt;/span&gt;app-name&lt;span style="color:#f92672"&gt;]&lt;/span&gt;/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ &lt;span style="color:#f92672"&gt;[&lt;/span&gt;claim-kind&lt;span style="color:#f92672"&gt;]&lt;/span&gt;/ &lt;span style="color:#75715e"&gt;# currently only the &amp;#39;TFWorkspace&amp;#39; kind is supported&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ validation1.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ validation2.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ policies/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ policy1.rego
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─ policy2.rego&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A detailed explanation of each configuration file will be provided below.&lt;/p&gt;</description></item><item><title/><link>https://docs.firestartr.dev/docs/deploying-resources/Validating-our-claims/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.firestartr.dev/docs/deploying-resources/Validating-our-claims/</guid><description>&lt;ol&gt;
&lt;li&gt;Go to the &lt;code&gt;.firestartr&lt;/code&gt; repository and create the &lt;code&gt;validations&lt;/code&gt; folder structure. More info &lt;a href="https://docs.firestartr.dev/docs/deploying-resources/The-dot-firestartr-repository/"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inside the &lt;code&gt;validations/policies&lt;/code&gt; folder, create the policy as a &lt;code&gt;.rego&lt;/code&gt; file. You can learn more about Rego &lt;a href="https://www.openpolicyagent.org/docs/latest/policy-language/"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inside the &lt;code&gt;apps/[app-name]/[claim-kind]&lt;/code&gt; folder create a YAML file as follows:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;my-validation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;description&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;My validation description&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;regoFile&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;path/to_the/rego_file.rego&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;applyTo&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#f92672"&gt;app&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;sample-app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;data&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;data1&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;test-data1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;data2&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;test-data2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ae81ff"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Description of each field:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;name&lt;/strong&gt;: the name of the validation file, which must be unique between them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;: a brief description of what this validation does. Purely for human readability purpouses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;regoFile&lt;/strong&gt;: path to the rego file, relative to the policies folder (i.e., this field&amp;rsquo;s value will be concatenated to &lt;code&gt;.firestartr/validations/policies&lt;/code&gt; like so: &lt;code&gt;.firestartr/validations/policies/[this_fields_value]&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;applyTo&lt;/strong&gt;: a list of conditions which describe to which claims this validation applies to. For this, for each value in each element of the list, an AND operation is done with each other value of that element, then for each element an OR operation is done against each other element. See &lt;a href="#-about-the-applyto-field-values"&gt;&amp;ldquo;About the applyTo field values&amp;rdquo;&lt;/a&gt; to learn more about the possible values of this field.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;data&lt;/strong&gt;: key-value pairs, where each key is a variable name and each name its value, to be used inside the &lt;code&gt;regoFile&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="-about-the-applyto-field-values"&gt;❗ About the applyTo field values&lt;a class="anchor" href="#-about-the-applyto-field-values"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Each element of the &lt;code&gt;applyTo&lt;/code&gt; field can have the following values:&lt;/p&gt;</description></item></channel></rss>