feat(ci): make include replace simpler (#3904)

* move tempaltes

* update scripts

* bump for test

* print some info

* move some more files

* see what is taking so long

* remove time

* simple->LB

* CRLF->LF

* handle both LF and CRLF

* bumps
This commit is contained in:
Stavros Kois 2022-09-26 11:11:11 +03:00 committed by GitHub
parent 5039d4268e
commit 4c2ada63c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
41 changed files with 232 additions and 896 deletions

View File

@ -8,349 +8,15 @@ include_questions(){
local chartname="$2"
local train="$3"
local chartversion="$4"
local target="catalog/${train}/${chartname}/${chartversion}"
local source="charts/${train}/${chartname}/questions.yaml"
local target="catalog/${train}/${chartname}/${chartversion}/questions.yaml"
echo "Making copy of $source to $target"
cp ${source} ${target}
echo "Including standardised questions.yaml includes for: ${chartname}"
# Replace # Include{portalLink} with the standard portalLink codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{portalLink}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/portalLink.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{global} with the standard global codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{global}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/global.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{groups} with the standard groups codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{groups}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/groups.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{fixedEnv} with the standard fixedEnv codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{fixedEnv}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/fixedEnv.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controller} with the standard controller codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controller}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controller.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerDeployment} with the standard controllerDeployment codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerDeployment}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerDeployment.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerStatefullset} with the standard controllerStatefullset codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerStatefullset}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerStatefullset.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerDaemonset} with the standard controllerDaemonset codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerDaemonset}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerDaemonset.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replicas} with the standard replicas codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replicas}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replicas.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replica1} with the standard replica1 codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replica1}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replica1.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replica2} with the standard replica2 codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replica2}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replica2.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replica3} with the standard replica3 codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replica3}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replica3.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{strategy} with the standard strategy codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{strategy}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/strategy/strategy.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{recreate} with the standard recreate codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{recreate}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/strategy/recreate.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{rollingupdate} with the standard rollingupdate codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{rollingupdate}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/strategy/rollingupdate.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerTypes} with the standard controllerTypes codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerTypes}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controllerTypes.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerExpert} with the standard controllerExpert codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerExpert}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerExpert.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerExpertExtraArgs} with the standard controllerExpertExtraArgs codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerExpertExtraArgs}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerExpertExtraArgs.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerExpertCommand} with the standard controllerExpertCommand codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerExpertCommand}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerExpertCommand.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{containerConfig} with the standard containerConfig codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{containerConfig}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/containerConfig.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceRoot} with the standard serviceRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceSelectorExtras} with the standard serviceSelectorExtras codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceSelectorExtras}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceSelectorExtras.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceSelectorClusterIP} with the standard serviceSelectorClusterIP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceSelectorClusterIP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceSelectorClusterIP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceSelectorLoadBalancer} with the standard serviceSelectorLoadBalancer codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceSelectorLoadBalancer}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceSelectorLoadBalancer.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortHTTP} with the standard advancedPortHTTP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortHTTP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortHTTP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortHTTPS} with the standard advancedPortHTTPS codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortHTTPS}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortHTTPS.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortTCP} with the standard advancedPortTCP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortTCP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortTCP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortUDP} with the standard advancedPortUDP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortUDP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortUDP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceExpertRoot} with the standard serviceExpertRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceExpertRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceExpertRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceExpert} with the standard serviceExpert codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceExpert}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceExpert.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceList} with the standard serviceList codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceList}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceList.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{vctRoot} with the standard vctRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{vctRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/vctRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceRoot} with the standard persistenceRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceBasic} with the standard persistenceBasic codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceBasic}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceBasic.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceAdvanced} with the standard persistenceAdvanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceAdvanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceAdvanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceList} with the standard persistenceList codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceList}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceList.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{security} with the standard security codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{security}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/security.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{securityContextAdvancedRoot} with the standard securityContextAdvancedRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{securityContextAdvancedRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/securityContextAdvancedRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{securityContextAdvanced} with the standard securityContextAdvanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{securityContextAdvanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/securityContextAdvanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{podSecurityContextRoot} with the standard podSecurityContextRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{podSecurityContextRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/podSecurityContextRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{podSecurityContextAdvanced} with the standard podSecurityContextAdvanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{podSecurityContextAdvanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/podSecurityContextAdvanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressRoot} with the standard ingressRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressDefault} with the standard ingressDefault codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressDefault}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressDefault.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressTLS} with the standard ingressTLS codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressTLS}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressTLS.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressTraefik} with the standard ingressTraefik codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressTraefik}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressTraefik.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressExpert} with the standard ingressExpert codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressExpert}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressExpert.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressList} with the standard ingressList codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressList}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressList.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{addons} with the standard addons codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{addons}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/addons.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{metrics} with the standard metrics codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{metrics}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/metrics/metrics.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{metrics3m} with the standard metrics3m codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{metrics3m}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/metrics/metrics3m.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{metrics60m} with the standard metrics60m codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{metrics60m}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/metrics/metrics60m.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{prometheusRule} with the standard prometheusRule codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{prometheusRule}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/prometheusRule.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advanced} with the standard advanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{resources} with the standard resources codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{resources}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/resources.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{documentation} with the standard documentation codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{documentation}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/documentation.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{[forwardedHeaders]} with the standard forwardedHeaders codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{forwardedHeaders}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/forwardedHeaders.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{proxyProtocol} with the standard proxyProtocol codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{proxyProtocol}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/proxyProtocol.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{basicAuth} with the standard basicAuth codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{basicAuth}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/basicAuth.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{forwardAuth} with the standard forwardAuth codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{forwardAuth}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/forwardAuth.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{chain} with the standard chain codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{chain}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/chain.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{redirectScheme} with the standard redirectScheme codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{redirectScheme}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/redirectScheme.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{rateLimit} with the standard rateLimit codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{rateLimit}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/rateLimit.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{redirectRegex} with the standard redirectRegex codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{redirectRegex}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/redirectRegex.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{stripPrefixRegex} with the standard stripPrefixRegex codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{stripPrefixRegex}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/stripPrefixRegex.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ipWhitelist} with the standard ipWhitelist codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ipWhitelist}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/ipWhitelist.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{themePark} with the standard themePark codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{themePark}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/themePark.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{realIP} with the standard realIP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{realIP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/realIP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{addPrefix} with the standard addPrefix codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{addPrefix}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/addPrefix.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
sed -i -E 's:^.*# Include\{(.*)\}.*$:cat templates/questions/**/\1.yaml:e' ${target}
}
export -f include_questions

View File

@ -1,9 +1,9 @@
apiVersion: v2
kubeVersion: ">=1.16.0-0"
name: lancache-dns
version: 0.0.24
version: 0.0.25
appVersion: "latest"
description: DNS Chart service for a steamcache.
description: DNS Chart service for a steam cache.
type: application
deprecated: false
home: https://truecharts.org/docs/charts/incubator/lancache-dns

View File

@ -111,7 +111,7 @@ questions:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorSimple}
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: dns
label: "DNS Service Port Configuration"

View File

@ -1,9 +1,9 @@
apiVersion: v2
kubeVersion: ">=1.16.0-0"
name: lancache-monolithic
version: 0.0.28
version: 0.0.29
appVersion: "latest"
description: A monolithic lancache service capable of caching all CDN's in a single instance.
description: A monolithic lancache service capable of caching all CDNs in a single instance.
type: application
deprecated: false
home: https://truecharts.org/docs/charts/incubator/lancache-monolithic

View File

@ -97,7 +97,7 @@ questions:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorSimple}
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: https
label: "HTTPS"

View File

@ -1,198 +1,198 @@
# Include{groups}
portals:
open:
# Include{portalLink}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: secretEnv
group: "Container Configuration"
label: "Image Secrets"
schema:
additional_attrs: true
type: dict
attrs:
- variable: SPOTWEB_USERNAME
label: "Admin username"
description: "Username to configure for the admin of this installation."
schema:
type: string
default: ""
valid_chars: ^((?!god|mod|spot|admin|drazix|superuser|supervisor|root|anonymous)[^<>])*$
required: true
- variable: SPOTWEB_PASSWORD
label: "Admin password"
description: "Password to configure for the admin of this installation."
schema:
type: string
default: ""
valid_chars: "[a-zA-Z0-9!@#$%^&*?]{8,}"
private: true
required: true
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: SPOTWEB_SYSTEMTYPE
label: "System Type"
description: "System type to configure during initialization."
schema:
type: string
required: true
default: "single"
enum:
- value: "single"
description: "Singe User System"
- value: "shared"
description: "Shared System"
- value: "public"
description: "Public System"
- variable: SPOTWEB_FIRSTNAME
label: "Admin first name"
description: "The first name of the admin user."
schema:
type: string
required: true
default: "firstname"
valid_chars: ^([^<>]{2})([^<>]*)$
- variable: SPOTWEB_LASTNAME
label: "Admin last name"
description: "Last name of the admin user."
schema:
type: string
required: true
default: "lastname"
valid_chars: ^([^<>]{2})([^<>]*)$
- variable: SPOTWEB_MAIL
label: "Admin mail adres"
description: "Email adres to configure for the provided admin user."
schema:
type: string
required: true
default: firstname@lastname.com
valid_chars: ^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$
- variable: SPOTWEB_RETRIEVE
label: "SPOTWEB_RETRIEVE"
description: "Schedule on which to automatically retrieve new spots."
schema:
type: string
default: "15min"
enum:
- value: "1min"
description: "Each minute"
- value: "5min"
description: "Every 5 minutes"
- value: "15min"
description: "Every 15 minutes"
- value: "hourly"
description: "Every hour"
- value: "weekly"
description: "Once a week"
- value: "monthly"
description:: "Once a month"
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
label: "Main Service"
description: "Spotweb Web UI and API endpoint"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
label: "Web Interface"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10050
editable: true
required: true
# Include{advancedPortHTTP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceList}
# Include{ingressRoot}
- variable: main
label: "Main Ingress"
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: "The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}
# Include{groups}
portals:
open:
# Include{portalLink}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: secretEnv
group: "Container Configuration"
label: "Image Secrets"
schema:
additional_attrs: true
type: dict
attrs:
- variable: SPOTWEB_USERNAME
label: "Admin username"
description: "Username to configure for the admin of this installation."
schema:
type: string
default: ""
valid_chars: ^((?!god|mod|spot|admin|drazix|superuser|supervisor|root|anonymous)[^<>])*$
required: true
- variable: SPOTWEB_PASSWORD
label: "Admin password"
description: "Password to configure for the admin of this installation."
schema:
type: string
default: ""
valid_chars: "[a-zA-Z0-9!@#$%^&*?]{8,}"
private: true
required: true
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: SPOTWEB_SYSTEMTYPE
label: "System Type"
description: "System type to configure during initialization."
schema:
type: string
required: true
default: "single"
enum:
- value: "single"
description: "Singe User System"
- value: "shared"
description: "Shared System"
- value: "public"
description: "Public System"
- variable: SPOTWEB_FIRSTNAME
label: "Admin first name"
description: "The first name of the admin user."
schema:
type: string
required: true
default: "firstname"
valid_chars: ^([^<>]{2})([^<>]*)$
- variable: SPOTWEB_LASTNAME
label: "Admin last name"
description: "Last name of the admin user."
schema:
type: string
required: true
default: "lastname"
valid_chars: ^([^<>]{2})([^<>]*)$
- variable: SPOTWEB_MAIL
label: "Admin mail adres"
description: "Email adres to configure for the provided admin user."
schema:
type: string
required: true
default: firstname@lastname.com
valid_chars: ^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$
- variable: SPOTWEB_RETRIEVE
label: "SPOTWEB_RETRIEVE"
description: "Schedule on which to automatically retrieve new spots."
schema:
type: string
default: "15min"
enum:
- value: "1min"
description: "Each minute"
- value: "5min"
description: "Every 5 minutes"
- value: "15min"
description: "Every 15 minutes"
- value: "hourly"
description: "Every hour"
- value: "weekly"
description: "Once a week"
- value: "monthly"
description:: "Once a month"
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
label: "Main Service"
description: "Spotweb Web UI and API endpoint"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
label: "Web Interface"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10050
editable: true
required: true
# Include{advancedPortHTTP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 80
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceList}
# Include{ingressRoot}
- variable: main
label: "Main Ingress"
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressExpert}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: "The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}

View File

@ -23,7 +23,7 @@ sources:
- https://github.com/traefik/traefik-helm-chart
- https://traefik.io/
type: application
version: 13.4.1
version: 13.4.2
annotations:
truecharts.org/catagories: |
- network

View File

@ -176,17 +176,17 @@ questions:
additional_attrs: true
type: dict
attrs:
# Include{basicAuth}
# Include{forwardAuth}
# Include{chain}
# Include{redirectScheme}
# Include{rateLimit}
# Include{redirectRegex}
# Include{stripPrefixRegex}
# Include{ipWhitelist}
# Include{themePark}
# Include{realIP}
# Include{addPrefix}
# Include{basicAuthMiddleware}
# Include{forwardAuthMiddleware}
# Include{chainMiddleware}
# Include{redirectSchemeMiddleware}
# Include{rateLimitMiddleware}
# Include{redirectRegexMiddleware}
# Include{stripPrefixRegexMiddleware}
# Include{ipWhitelistMiddleware}
# Include{themeParkMiddleware}
# Include{realIPMiddleware}
# Include{addPrefixMiddleware}
- variable: service
group: "Networking and Services"
label: "Configure Service Entrypoint"

View File

@ -104,345 +104,15 @@ include_questions(){
local chartname="$2"
local train="$3"
local chartversion="$4"
local target="catalog/${train}/${chartname}/${chartversion}"
local source="charts/${train}/${chartname}/questions.yaml"
local target="catalog/${train}/${chartname}/${chartversion}/questions.yaml"
echo "Making copy of $source to $target"
cp ${source} ${target}
echo "Including standardised questions.yaml includes for: ${chartname}"
# Replace # Include{portalLink} with the standard portalLink codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{portalLink}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/portalLink.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{global} with the standard global codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{global}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/global.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{groups} with the standard groups codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{groups}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/groups.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{fixedEnv} with the standard fixedEnv codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{fixedEnv}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/fixedEnv.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controller} with the standard controller codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controller}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controller.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerDeployment} with the standard controllerDeployment codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerDeployment}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerDeployment.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerStatefullset} with the standard controllerStatefullset codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerStatefullset}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerStatefullset.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerDaemonset} with the standard controllerDaemonset codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerDaemonset}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerDaemonset.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replicas} with the standard replicas codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replicas}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replicas.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replica1} with the standard replica1 codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replica1}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replica1.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replica2} with the standard replica2 codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replica2}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replica2.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{replica3} with the standard replica3 codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{replica3}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/replicas/replica3.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{strategy} with the standard strategy codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{strategy}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/strategy/strategy.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{recreate} with the standard recreate codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{recreate}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/strategy/recreate.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{rollingupdate} with the standard rollingupdate codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{rollingupdate}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/strategy/rollingupdate.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerExpert} with the standard controllerExpert codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerExpert}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerExpert.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerExpertExtraArgs} with the standard controllerExpertExtraArgs codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerExpertExtraArgs}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerExpertExtraArgs.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{controllerExpertCommand} with the standard controllerExpertCommand codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{controllerExpertCommand}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/controller/controllerExpertCommand.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{containerConfig} with the standard containerConfig codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{containerConfig}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/containerConfig.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceRoot} with the standard serviceRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceSelectorExtras} with the standard serviceSelectorExtras codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceSelectorExtras}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceSelectorExtras.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceSelectorClusterIP} with the standard serviceSelectorClusterIP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceSelectorClusterIP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceSelectorClusterIP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceSelectorLoadBalancer} with the standard serviceSelectorLoadBalancer codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceSelectorLoadBalancer}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceSelectorLoadBalancer.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortHTTP} with the standard advancedPortHTTP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortHTTP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortHTTP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortHTTPS} with the standard advancedPortHTTPS codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortHTTPS}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortHTTPS.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortTCP} with the standard advancedPortTCP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortTCP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortTCP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advancedPortUDP} with the standard advancedPortUDP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advancedPortUDP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advancedPortUDP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceExpertRoot} with the standard serviceExpertRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceExpertRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceExpertRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceExpert} with the standard serviceExpert codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceExpert}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceExpert.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{serviceList} with the standard serviceList codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{serviceList}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/service/serviceList.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{vctRoot} with the standard vctRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{vctRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/vctRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceRoot} with the standard persistenceRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceBasic} with the standard persistenceBasic codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceBasic}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceBasic.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceAdvanced} with the standard persistenceAdvanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceAdvanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceAdvanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{persistenceList} with the standard persistenceList codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{persistenceList}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/persistence/persistenceList.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{security} with the standard security codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{security}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/security.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{securityContextAdvancedRoot} with the standard securityContextAdvancedRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{securityContextAdvancedRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/securityContextAdvancedRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{securityContextAdvanced} with the standard securityContextAdvanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{securityContextAdvanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/securityContextAdvanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{podSecurityContextRoot} with the standard podSecurityContextRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{podSecurityContextRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/podSecurityContextRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{podSecurityContextAdvanced} with the standard podSecurityContextAdvanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{podSecurityContextAdvanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/podSecurityContextAdvanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressRoot} with the standard ingressRoot codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressRoot}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressRoot.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressDefault} with the standard ingressDefault codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressDefault}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressDefault.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressTLS} with the standard ingressTLS codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressTLS}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressTLS.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressTraefik} with the standard ingressTraefik codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressTraefik}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressTraefik.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressExpert} with the standard ingressExpert codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressExpert}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressExpert.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ingressList} with the standard ingressList codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ingressList}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/ingress/ingressList.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{addons} with the standard addons codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{addons}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/addons.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{metrics} with the standard metrics codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{metrics}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/metrics/metrics.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{metrics3m} with the standard metrics3m codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{metrics3m}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/metrics/metrics3m.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{metrics60m} with the standard metrics60m codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{metrics60m}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/metrics/metrics60m.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{prometheusRule} with the standard prometheusRule codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{prometheusRule}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/prometheusRule.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{advanced} with the standard advanced codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{advanced}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/advanced.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{resources} with the standard resources codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{resources}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/resources.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{documentation} with the standard resources codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{documentation}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/documentation.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{[forwardedHeaders]} with the standard forwardedHeaders codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{forwardedHeaders}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/forwardedHeaders.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{proxyProtocol} with the standard proxyProtocol codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{proxyProtocol}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/proxyProtocol.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{basicAuth} with the standard basicAuth codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{basicAuth}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/basicAuth.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{forwardAuth} with the standard forwardAuth codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{forwardAuth}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/forwardAuth.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{chain} with the standard chain codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{chain}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/chain.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{redirectScheme} with the standard redirectScheme codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{redirectScheme}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/redirectScheme.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{rateLimit} with the standard rateLimit codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{rateLimit}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/rateLimit.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{redirectRegex} with the standard redirectRegex codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{redirectRegex}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/redirectRegex.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{stripPrefixRegex} with the standard stripPrefixRegex codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{stripPrefixRegex}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/stripPrefixRegex.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{ipWhitelist} with the standard ipWhitelist codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{ipWhitelist}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/ipWhitelist.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{themePark} with the standard themePark codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{themePark}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/themePark.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{realIP} with the standard realIP codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{realIP}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/realIP.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
# Replace # Include{addPrefix} with the standard addPrefix codesnippet
awk 'NR==FNR { a[n++]=$0; next }
/# Include{addPrefix}/ { for (i=0;i<n;++i) print a[i]; next }
1' templates/questions/traefik/middlewares/addPrefix.yaml ${target}/questions.yaml > "tmp${chartname}" && mv "tmp${chartname}" ${target}/questions.yaml
sed -i -E 's:^.*# Include\{(.*)\}.*$:cat templates/questions/**/\1.yaml:e' ${target}
}
export -f include_questions