DNM feat(answer) add answer (#12675)

**Description**
A Q&A platform software for teams at any scales.
⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [X] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [X] ⚖️ My code follows the style guidelines of this project
- [X] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [ ] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [X] 🪞 I have opened a PR on
[truecharts/containers](https://github.com/truecharts/containers) adding
the container to TrueCharts mirror repo.
- [X] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
Co-authored-by: Stavros kois <s.kois@outlook.com>
This commit is contained in:
Xstar97TheNoob 2023-10-31 21:00:46 -04:00 committed by GitHub
parent 4ddb74f9fa
commit 8eb3437e2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 319 additions and 0 deletions

View File

@ -0,0 +1,30 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
# docs folder
/docs
# icon
icon.png

View File

@ -0,0 +1 @@
# Changelog

View File

@ -0,0 +1,27 @@
apiVersion: v2
appVersion: "1.2.0"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 14.2.1
deprecated: false
description: A Q&A platform software for teams at any scales.
home: https://truecharts.org/charts/incubator/answer
icon: https://truecharts.org/img/hotlink-ok/chart-icons/answer.png
keywords:
- answer
- forum
kubeVersion: ">=1.16.0-0"
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: https://truecharts.org
name: answer
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/answer
- https://github.com/answerdev/answer
type: application
version: 0.0.1
annotations:
truecharts.org/catagories: forum
truecharts.org/SCALE-support: "true"

View File

@ -0,0 +1 @@
# README

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,177 @@
# Include{groups}
portals:
open:
# Include{portalLink}
questions:
# Include{global}
# Include{workload}
# Include{workloadDeployment}
# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
# Include{containerBasic}
# Include{containerAdvanced}
- variable: answer
group: App Configuration
label: Answer
schema:
additional_attrs: true
type: dict
attrs:
- variable: app
label: App Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: language
label: Language
schema:
type: string
required: true
default: "en-US"
- variable: log_level
label: Log Level
schema:
type: string
required: true
default: DEBUG"
enum:
- value: DEBUG
description: Debug
- value: INFO
description: Info
- value: WARN
description: Warn
- value: ERROR
description: Error
- variable: site
label: Site Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: name
label: Name
schema:
type: string
required: true
default: "Answer"
- variable: url
label: Url
schema:
type: string
required: true
default: "http://localhost:9080"
- variable: contact_email
label: Contact Email
schema:
type: string
required: true
default: ""
- variable: admin
label: Admin Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: name
label: Admin Name
schema:
type: string
required: true
default: ""
- variable: password
label: Admin Password
schema:
type: string
required: true
private: true
min_length: 8
default: ""
- variable: email
label: Admin Email
schema:
type: string
required: true
default: ""
# Include{containerConfig}
# Include{podOptions}
# Include{serviceRoot}
# Include{serviceMain}
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
label: "Main Service Port Configuration"
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: 9080
required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: App Data Storage
description: Stores the Application Data.
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressRoot}
- variable: main
label: "Main Ingress"
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressTLS}
# Include{ingressTraefik}
# Include{ingressAdvanced}
# Include{ingressList}
# Include{securityContextRoot}
- 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 of the user running the application"
schema:
type: int
default: 568
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{netshoot}
# Include{vpn}
# Include{documentation}

View File

@ -0,0 +1 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -0,0 +1 @@
{{ include "tc.v1.common.loader.all" . }}

View File

@ -0,0 +1,81 @@
image:
repository: tccr.io/truecharts/answer
pullPolicy: IfNotPresent
tag: v1.2.0@sha256:70a578170bca4a7a1040d44cb5ff143d5e9c2c2f32f9d48f1ad4519d61c35451
service:
main:
ports:
main:
protocol: http
port: 9080
answer:
app:
language: en-US
# DEBUG | INFO | WARN | ERROR
log_level: DEBUG
site:
name: Answer
url: http://localhost:9080
contact_email: contact@example.com
admin:
name: admin
password: super-secret-password
email: admin@example.com
workload:
main:
podSpec:
containers:
main:
probes:
liveness:
path: /healthz
readiness:
path: /healthz
startup:
type: tcp
env:
AUTO_INSTALL: true
INSTALL_PORT: "{{ .Values.service.main.ports.main.port }}"
DB_TYPE: postgres
DB_USERNAME: "{{ .Values.cnpg.main.user }}"
DB_PASSWORD:
secretKeyRef:
name: cnpg-main-user
key: password
# Host + port
DB_HOST: '{{ printf "%s:5432" (.Values.cnpg.main.creds.host | trimAll "\"") }}'
DB_NAME: "{{ .Values.cnpg.main.database }}"
# App
LANGUAGE: "{{ .Values.answer.app.language }}"
LOG_LEVEL: "{{ .Values.answer.app.log_level }}"
# Site
SITE_NAME: "{{ .Values.answer.site.name }}"
SITE_URL: "{{ .Values.answer.site.url }}"
CONTACT_EMAIL: "{{ .Values.answer.site.contact_email }}"
# Admin
ADMIN_NAME: "{{ .Values.answer.admin.name }}"
ADMIN_PASSWORD: "{{ .Values.answer.admin.password }}"
ADMIN_EMAIL: "{{ .Values.answer.admin.email }}"
persistence:
data:
enabled: true
mountPath: /data
cnpg:
main:
enabled: true
user: answer
database: answer
portal:
open:
enabled: true
operator:
verify:
enabled: false