156 lines
377 KiB
HTML
156 lines
377 KiB
HTML
|
<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Project Documentation for TrueCharts"><meta name=author content="TrueCharts Team"><link href=https://truecharts.org/manual/development/questions-yaml/ rel=canonical><link rel=icon href=../../../_static/img/favicon.png><meta name=generator content="mkdocs-1.3.0, mkdocs-material-8.3.8"><title>Questions.yaml - TrueCharts</title><link rel=stylesheet href=../../../assets/stylesheets/main.1d29e8d0.min.css><link rel=stylesheet href=../../../assets/stylesheets/palette.cbb835fc.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../../_static/custom.css><script>__md_scope=new URL("../../..",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-6G6694723V"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&>ag("event","search",{search_term:this.value})}),"undefined"!=typeof location$&&location$.subscribe(function(e){gtag("config","G-6G6694723V",{page_path:e.pathname})})})</script><script async src="https://www.googletagmanager.com/gtag/js?id=G-6G6694723V"></script></head> <body dir=ltr data-md-color-scheme data-md-color-primary=none data-md-color-accent=none> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#questionsyaml class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class=md-header data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=../../.. title=TrueCharts class="md-header__button md-logo" aria-label=TrueCharts data-md-component=logo> <img src=../../../_static/img/logo1024.png alt=logo> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> TrueCharts </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Questions.yaml </span> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/truecharts/pub title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 480 512"><!-- Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5
|
||
|
label: "Volume"
|
||
|
schema:
|
||
|
type: dict
|
||
|
$ref:
|
||
|
- "normalize/ixVolume"
|
||
|
attrs:
|
||
|
- variable: mountPath
|
||
|
label: "Mount Path"
|
||
|
description: "Path where the volume will be mounted inside the pod"
|
||
|
schema:
|
||
|
type: path
|
||
|
required: true
|
||
|
- variable: datasetName
|
||
|
label: "Dataset Name"
|
||
|
schema:
|
||
|
type: string
|
||
|
required: true
|
||
|
</code></pre></div> In the above variable we define a <code>$ref</code> in schema which specifies that the system should take some action for normalising the value specified for the variable. In this specific case, <code>ix_volume</code> is a concept introduced where we recommend using a volume which we are able to rollback automatically on chart release rollback. In essence, it is just a <code>hostPath</code> volume for which the system automatically creates the dataset specified. We have following types of actions supported in <code>$ref</code> right now: 1) definitions 2) normalize For (1), system will automatically update schema for a particular definition. For example, <div class=highlight><pre><span></span><code>- variable: hostInterface
|
||
|
description: "Please specify host interface"
|
||
|
label: "Host Interface"
|
||
|
schema:
|
||
|
type: string
|
||
|
required: true
|
||
|
$ref:
|
||
|
- "definitions/interface"
|
||
|
</code></pre></div> System will automatically populate available interfaces for the user based on what interfaces are available on the system. For (2), system will normalize values or perform some actions as discussed above.</p> <h3 id=standardised-questionsyaml-sections>Standardised questions.yaml sections<a class=headerlink href=#standardised-questionsyaml-sections title="Permanent link">¶</a></h3> <p>To minimise the maintenance load of our App collection, we always aim to standardise as much as possible. The same goes for questions.yaml. Included here are some code standardised code-snippets that are expected to be included in every App. Be aware that sometimes specific functions might or might not completely function. Leaving them out would, however, everely increase the maintenance load and often said functionality will be added in the common-chart later on anyway.</p> <h5 id=groups>Groups<a class=headerlink href=#groups title="Permanent link">¶</a></h5> <p>To make sure all apps stay somewhat the same, we use a list of standardised groups for the groups section. Please make sure to use these groups in your Apps: <div class=highlight><pre><span></span><code>groups:
|
||
|
- name: "Container Image"
|
||
|
description: "Image to be used for container"
|
||
|
- name: "Workload Configuration"
|
||
|
description: "Configure workload deployment"
|
||
|
- name: "Configuration"
|
||
|
description: "additional container configuration"
|
||
|
- name: "Networking"
|
||
|
description: "Configure Network and Services for container"
|
||
|
- name: "Storage"
|
||
|
description: "Persist and share data that is separate from the lifecycle of the container"
|
||
|
- name: "Resources and Devices"
|
||
|
description: "Specify resources/devices to be allocated to workload"
|
||
|
- name: "Ingress Configuration"
|
||
|
description: "Ingress Configuration"
|
||
|
- name: "Security"
|
||
|
description: "Configure security context"
|
||
|
- name: "Advanced"
|
||
|
description: "Advanced Configuration"
|
||
|
- name: "WARNING"
|
||
|
description: "WARNING"
|
||
|
</code></pre></div></p> <h5 id=general-configuration-options>General Configuration options<a class=headerlink href=#general-configuration-options title="Permanent link">¶</a></h5> <p>These options are always* included because almost every chart (eventually) has a use for them and/or other parts of the common chart depend on them. They are called general options, because they affect the basic functionalities of a chart. For example: Custom User environment variables, permissions and timezones.</p> <p>*<code>PUID</code>, <code>PGID</code>, <code>UMASK</code> are only included when they are needed.</p> <div class=highlight><pre><span></span><code> - variable: env
|
||
|
group: "Configuration"
|
||
|
label: "Image Environment"
|
||
|
schema:
|
||
|
additional_attrs: true
|
||
|
type: dict
|
||
|
attrs:
|
||
|
- variable: TZ
|
||
|
label: "Timezone"
|
||
|
schema:
|
||
|
type: string
|
||
|
default: "Etc/UTC"
|
||
|
$ref:
|
||
|
- "definitions/timezone"
|
||
|
- variable: PUID
|
||
|
label: "PUID"
|
||
|
description: "Sets the PUID env var for LinuxServer.io (compatible) containers"
|
||
|
schema:
|
||
|
type: int
|
||
|
default: 568
|
||
|
- variable: PGID
|
||
|
label: "PGID"
|
||
|
description: "Sets the PGID env var for LinuxServer.io (compatible) containers"
|
||
|
schema:
|
||
|
type: int
|
||
|
default: 568
|
||
|
- variable: UMASK
|
||
|
label: "UMASK"
|
||
|
description: "Sets the UMASK env var for LinuxServer.io (compatible) containers"
|
||
|
schema:
|
||
|
type: string
|
||
|
default: "002"
|
||
|
|
||
|
# Configure Custom Enviroment Variables
|
||
|
- variable: environmentVariables
|
||
|
label: "Image environment"
|
||
|
group: "Configuration"
|
||
|
schema:
|
||
|
type: list
|
||
|
default: []
|
||
|
items:
|
||
|
- variable: environmentVariable
|
||
|
label: "Environment Variable"
|
||
|
schema:
|
||
|
type: dict
|
||
|
attrs:
|
||
|
- variable: name
|
||
|
label: "Name"
|
||
|
schema:
|
||
|
type: string
|
||
|
- variable: value
|
||
|
label: "Value"
|
||
|
schema:
|
||
|
type: string
|
||
|
</code></pre></div> <h5 id=security-context-configuration-options>Security Context Configuration options<a class=headerlink href=#security-context-configuration-options title="Permanent link">¶</a></h5> <div class=highlight><pre><span></span><code> # Enable privileged
|
||
|
- variable: securityContext
|
||
|
group: "Security"
|
||
|
label: "Security Context"
|
||
|
schema:
|
||
|
additional_attrs: true
|
||
|
type: dict
|
||
|
attrs:
|
||
|
- variable: privileged
|
||
|
label: "Enable privileged mode for Common-Chart based charts"
|
||
|
schema:
|
||
|
type: boolean
|
||
|
default: false
|
||
|
# Set Pod Security Policy
|
||
|
- variable: podSecurityContext
|
||
|
group: "Security"
|
||
|
label: "Pod Security Context"
|
||
|
schema:
|
||
|
additional_attrs: true
|
||
|
type: dict
|
||
|
attrs:
|
||
|
- variable: runAsNonRoot
|
||
|
label: "runAsNonRoot"
|
||
|
schema:
|
||
|
type: boolean
|
||
|
default: true
|
||
|
- variable: runAsUser
|
||
|
label: "runAsUser"
|
||
|
description: "The UserID of the user running the application"
|
||
|
schema:
|
||
|
type: int
|
||
|
default: 568
|
||
|
- variable: runAsGroup
|
||
|
label: "runAsGroup"
|
||
|
description: The groupID this App of the user running the application"
|
||
|
schema:
|
||
|
type: int
|
||
|
default: 568
|
||
|
- variable: fsGroup
|
||
|
label: "fsGroup"
|
||
|
description: "The group that should own ALL storage."
|
||
|
schema:
|
||
|
type: int
|
||
|
default: 568
|
||
|
- variable: fsGroupChangePolicy
|
||
|
label: "When should we take ownership?"
|
||
|
schema:
|
||
|
type: string
|
||
|
default: "OnRootMismatch"
|
||
|
enum:
|
||
|
- value: "OnRootMismatch"
|
||
|
description: "OnRootMismatch"
|
||
|
- value: "Always"
|
||
|
description: "Always"
|
||
|
</code></pre></div> </article> </div> </div> </main> <footer class=md-footer> <nav class="md-footer__inner md-grid" aria-label=Footer> <a href=../portal/ class="md-footer__link md-footer__link--prev" aria-label="Previous: Portal Button" rel=prev> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </div> <div class=md-footer__title> <div class=md-ellipsis> <span class=md-footer__direction> Previous </span> Portal Button </div> </div> </a> <a href=../services/ class="md-footer__link md-footer__link--next" aria-label="Next: Services" rel=next> <div class=md-footer__title> <div class=md-ellipsis> <span class=md-footer__direction> Next </span> Services </div> </div> <div class="md-footer__button md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg> </div> </a> </nav> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright © 2020 - 2022 The TrueCharts Project </div> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"base": "../../..", "features": ["navigation.tabs", "navigation.tracking", "navigation.instant", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.b97dbffb.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script> <script src=../../../assets/javascripts/bundle.0238f547.min.js></script> </body> </html>
|