feat(youtrack) add youtrack (#5947)
* Initial draft * Pre-commit end of file * lint * lint try 2 * hmmm * Valid? * fsGroup change * persistence * User must be 13001 * add temp dir * removing --- * Reorder and spacing * security context * persistencebasic * Update charts/incubator/youtrack/values.yaml Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: MaverickD650 <92877124+MaverickD650@users.noreply.github.com> * Update charts/incubator/youtrack/values.yaml Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: MaverickD650 <92877124+MaverickD650@users.noreply.github.com> * Update charts/incubator/youtrack/values.yaml Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: MaverickD650 <92877124+MaverickD650@users.noreply.github.com> * Update charts/incubator/youtrack/values.yaml Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: MaverickD650 <92877124+MaverickD650@users.noreply.github.com> * Update charts/incubator/youtrack/questions.yaml Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Signed-off-by: MaverickD650 <92877124+MaverickD650@users.noreply.github.com> * ReadOnly * Update charts/incubator/youtrack/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/youtrack/values.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/youtrack/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/youtrack/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * Update charts/incubator/youtrack/questions.yaml Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com> * initial pipe line * moar * fix init * sure * add gui * add another option * lint * skip install * = * hmm * fixy-fixy * update quest * docs Signed-off-by: MaverickD650 <92877124+MaverickD650@users.noreply.github.com> 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:
@@ -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
|
||||
@@ -0,0 +1,27 @@
|
||||
apiVersion: v2
|
||||
appVersion: latest
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.truecharts.org
|
||||
version: 11.1.2
|
||||
description: YouTrack is a project management tool that can be adapted to your processes to help you deliver great products.
|
||||
home: https://truecharts.org/charts/incubator/youtrack
|
||||
icon: https://truecharts.org/img/hotlink-ok/chart-icons/youtrack.png
|
||||
keywords:
|
||||
- youtrack
|
||||
- ProjectManagement
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
maintainers:
|
||||
- email: info@truecharts.org
|
||||
name: TrueCharts
|
||||
url: https://truecharts.org
|
||||
name: youtrack
|
||||
sources:
|
||||
- https://github.com/truecharts/charts/tree/master/charts/incubator/youtrack
|
||||
- https://www.jetbrains.com/youtrack/
|
||||
- https://hub.docker.com/r/jetbrains/youtrack/
|
||||
version: 0.0.1
|
||||
annotations:
|
||||
truecharts.org/SCALE-support: "true"
|
||||
truecharts.org/catagories: |
|
||||
- ProjectManagement
|
||||
@@ -0,0 +1,4 @@
|
||||
# Default Credentials
|
||||
|
||||
- Username: `admin`
|
||||
- Password: `admin`
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 147 KiB |
@@ -0,0 +1,297 @@
|
||||
# Include{groups}
|
||||
portals:
|
||||
open:
|
||||
# Include{portalLink}
|
||||
questions:
|
||||
# Include{global}
|
||||
# Include{controller}
|
||||
# Include{replicas}
|
||||
# Include{replica1}
|
||||
# Include{controllerExpertExtraArgs}
|
||||
- variable: youtrack
|
||||
group: App Configuration
|
||||
label: YouTrack Configuration
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: baseURL
|
||||
label: Base URL
|
||||
description: The URL that end users request to access your YouTrack installation. For example, https://youtrack.mydomain.com or http://YOUR.SCALE.SERVER.IP:18080
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
- variable: webHooksBaseUrl
|
||||
label: Webhook Base URL
|
||||
description: Sets an alternative base URL for your YouTrack server when sending requests to create webhooks in external services.
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: defaultPage
|
||||
label: Default Page
|
||||
description: Sets the default start page for your YouTrack server. Enter a relative path to your base URL with a leading slash.
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: /dashboard
|
||||
- variable: support_email
|
||||
label: Support Email
|
||||
description: Specifies the email address that is used as the mailto address for the Contact support link on the error screen.
|
||||
schema:
|
||||
type: string
|
||||
default: youtrack-feedback@jetbrains.com
|
||||
- variable: hubURL
|
||||
label: Hub URL
|
||||
description: Stores the web address of an external Hub service, when used.
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: authThrottlingEnabled
|
||||
label: Auth Throttling Enabled
|
||||
description: Sets the status of the throttling feature for the Hub authentication module. When true, authentication throttling is enabled.
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: disableCheckForUpdate
|
||||
label: Disable Check For Update
|
||||
description: Enables and disables checking for software updates on startup. When set to true, checking for software updates is disabled.
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: minPrefixQueryLength
|
||||
label: Min Prefix Query Length
|
||||
description: |
|
||||
Sets the minimum length of a prefix query string to a set number of characters.
|
||||
If prefix queries and wildcard strings do not return all matching word forms
|
||||
in a search query, set this value to 2. Setting this system property affects the
|
||||
performance of your YouTrack server. The lower the value, the slower
|
||||
the performance of your server.
|
||||
schema:
|
||||
type: int
|
||||
required: true
|
||||
default: 3
|
||||
- variable: mailLimit
|
||||
label: Mail Limit
|
||||
description: |
|
||||
Sets a daily limit for the number of email messages that are sent with the
|
||||
issue.sendMail() method in workflows. When set to 0, there is no limit.
|
||||
schema:
|
||||
type: int
|
||||
required: true
|
||||
default: 0
|
||||
- variable: eventMergeTimeout
|
||||
label: Event Merge Timeout
|
||||
description: |
|
||||
Sets the amount of time YouTrack waits to compile changes that are applied to an issue
|
||||
as a digest before sending an email notification, in milliseconds. Reducing this value
|
||||
increases the rate at which YouTrack analyzes notifications and can have a negative
|
||||
impact on general server performance. Increasing this value from the default (one minute)
|
||||
can reduce the overall number of notification emails that are sent by YouTrack.
|
||||
schema:
|
||||
type: int
|
||||
required: true
|
||||
default: 0
|
||||
- variable: requestHeaderBufferSize
|
||||
label: Request Header Buffer Size
|
||||
description: |
|
||||
Maximum request buffer size. If you see the URI is too large >102400 or Request header
|
||||
too large warnings/errors in YouTrack logs, increase the value for this parameter.
|
||||
schema:
|
||||
type: int
|
||||
required: true
|
||||
default: 102400
|
||||
- variable: licenseName
|
||||
label: License Name
|
||||
description: Sets the name of your YouTrack license to the name of your YouTrack Server license.
|
||||
schema:
|
||||
type: string
|
||||
default: ""
|
||||
- variable: licenseKey
|
||||
label: License Key
|
||||
description: Sets the name of your YouTrack license to the name of your YouTrack Server license.
|
||||
schema:
|
||||
type: string
|
||||
private: true
|
||||
default: ""
|
||||
- variable: statisticsUpload
|
||||
label: Statistics Upload
|
||||
description: Determines whether YouTrack is allowed to collect and share anonymous usage statistics with JetBrains.
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: dumbMode
|
||||
label: Dumb Mode
|
||||
description: |
|
||||
Lets you run the YouTrack service without connecting to other services inside your network.
|
||||
When true, YouTrack doesn't generate notifications, update webhooks, retrieve email messages
|
||||
for Mailbox integrations, or send HTTP requests for workflows. This can be particularly helpful
|
||||
for staging environments where you want to test new functionality without disrupting users
|
||||
who are working with the live application.
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: admin_restore
|
||||
label: Admin Restore
|
||||
description: Restores the password for the root user account to the default value <root>.
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
- variable: jvm
|
||||
label: JVM Configuration
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
- variable: maxHeapSize
|
||||
label: Max Heap Size
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: 1g
|
||||
- variable: maxMetaspaceMemory
|
||||
label: Max Metaspace Memory
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: 350m
|
||||
- variable: metaspaceMemory
|
||||
label: Metaspace Memory
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: 350m
|
||||
- variable: extraJVMOptions
|
||||
label: Extra JVM Options
|
||||
description: Pass extra JVM options in the format of ( -XX:+HeapDumpOnOutOfMemoryError )
|
||||
schema:
|
||||
type: list
|
||||
default: []
|
||||
items:
|
||||
- variable: jvmOptionEntry
|
||||
label: JVM Option Entry
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
default: ""
|
||||
# Include{containerConfig}
|
||||
# Include{serviceRoot}
|
||||
- variable: main
|
||||
label: Main Service
|
||||
description: The Primary service on which the healthcheck runs, often the webUI
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# 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: 18080
|
||||
required: true
|
||||
# Include{serviceExpertRoot}
|
||||
default: false
|
||||
# Include{serviceExpert}
|
||||
# Include{serviceList}
|
||||
# Include{persistenceRoot}
|
||||
- variable: data
|
||||
label: Database Storage
|
||||
description: This is the location for the database (destination).
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{persistenceBasic}
|
||||
- variable: conf
|
||||
label: Configuration Storage
|
||||
description: This is the location for the configuration (destination).
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{persistenceBasic}
|
||||
- variable: logs
|
||||
label: Logs Storage
|
||||
description: This is the location for the logs (destination).
|
||||
schema:
|
||||
additional_attrs: true
|
||||
type: dict
|
||||
attrs:
|
||||
# Include{persistenceBasic}
|
||||
- variable: backups
|
||||
label: Backups Storage
|
||||
description: This is the location for backups (destination).
|
||||
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{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: true
|
||||
# Include{podSecurityContextRoot}
|
||||
- variable: runAsUser
|
||||
label: runAsUser
|
||||
description: The UserID of the user running the application
|
||||
schema:
|
||||
type: int
|
||||
default: 13001
|
||||
- variable: runAsGroup
|
||||
label: runAsGroup
|
||||
description: The groupID this App of the user running the application
|
||||
schema:
|
||||
type: int
|
||||
default: 13001
|
||||
- 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{codeserver}
|
||||
# Include{vpn}
|
||||
# Include{documentation}
|
||||
@@ -0,0 +1,63 @@
|
||||
{{- define "youtrack.init" -}}
|
||||
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
securityContext:
|
||||
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
|
||||
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
|
||||
readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilysystem }}
|
||||
runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
|
||||
volumeMounts:
|
||||
- name: conf
|
||||
mountPath: {{ .Values.persistence.conf.mountPath }}
|
||||
args:
|
||||
- configure
|
||||
{{- range (include "youtrack.args" . | fromYaml).args }}
|
||||
- {{ . }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "youtrack.args" -}}
|
||||
args:
|
||||
- --listen-port={{ .Values.service.main.ports.main.port }}
|
||||
- --base-url={{ .Values.youtrack.baseURL }}
|
||||
- --statistics-upload={{ .Values.youtrack.statisticsUpload }}
|
||||
{{- with .Values.youtrack.hubURL }}
|
||||
- --hub-url={{ . }}
|
||||
{{- end }}
|
||||
- -J-Ddisable.configuration.wizard.on.clean.install=true
|
||||
- -J-Djetbrains.youtrack.disableCheckForUpdate={{ .Values.youtrack.disableCheckForUpdate }}
|
||||
- -J-Djetbrains.dnq.textIndex.minPrefixQueryLength={{ .Values.youtrack.minPrefixQueryLength }}
|
||||
- -J-Djetbrains.youtrack.mailLimit={{ .Values.youtrack.mailLimit }}
|
||||
- -J-Djetbrains.youtrack.event.merge.timeout={{ .Values.youtrack.eventMergeTimeout }}
|
||||
- -J-Djetbrains.youtrack.default.page={{ .Values.youtrack.defaultPage }}
|
||||
- -J-Djetbrains.http.request.header.buffer.size={{ .Values.youtrack.requestHeaderBufferSize }}
|
||||
- -J-Djetbrains.youtrack.dumbMode={{ .Values.youtrack.dumbMode }}
|
||||
- -J-Djetbrains.hub.auth.login.throttling.enabled={{ .Values.youtrack.authThrottlingEnabled }}
|
||||
{{- with .Values.youtrack.licenseName }}
|
||||
- -J-Djetbrains.youtrack.licenseName={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.youtrack.licenseKey }}
|
||||
- -J-Djetbrains.youtrack.licenseKey={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.youtrack.webHooksBaseUrl }}
|
||||
- -J-Djetbrains.youtrack.webHooksBaseUrl={{ . }}
|
||||
{{- end }}
|
||||
{{- if .Values.youtrack.admin_restore }}
|
||||
- -J-Djetbrains.youtrack.admin.restore=true
|
||||
{{- end }}
|
||||
{{- with .Values.youtrack.support_email }}
|
||||
- -J-Djetbrains.youtrack.support.email= {{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.youtrack.jvm.maxHeapSize }}
|
||||
- -J-Xmx{{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.youtrack.jvm.maxMetaspaceMemory }}
|
||||
- -J-XX:MaxMetaspaceSize={{ . }}
|
||||
{{- end }}
|
||||
{{- with .Values.youtrack.jvm.metaspaceMemory }}
|
||||
- -J-XX:MetaspaceSize={{ . }}
|
||||
{{- end }}
|
||||
{{- range .Values.youtrack.jvm.extraJVMOptions }}
|
||||
- -J{{ . }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,7 @@
|
||||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "tc.common.loader.init" . }}
|
||||
|
||||
{{- $_ := set .Values.initContainers "configure" (include "youtrack.init" . | fromYaml) -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "tc.common.loader.apply" . }}
|
||||
@@ -0,0 +1,64 @@
|
||||
image:
|
||||
repository: tccr.io/truecharts/youtrack
|
||||
tag: 2022.3.65360@sha256:558c3df7c3188fa6eff309a0c0ad87a6c763f42fc84e7c842bac7fb8b7856d11
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: false
|
||||
|
||||
podSecurityContext:
|
||||
runAsGroup: 13001
|
||||
runAsUser: 13001
|
||||
|
||||
youtrack:
|
||||
baseURL: http://localhost:18080
|
||||
webHooksBaseUrl: ""
|
||||
hubURL: ""
|
||||
defaultPage: /dashboard
|
||||
support_email: youtrack-feedback@jetbrains.com
|
||||
authThrottlingEnabled: false
|
||||
disableCheckForUpdate: false
|
||||
minPrefixQueryLength: 3
|
||||
mailLimit: 0
|
||||
eventMergeTimeout: 60000
|
||||
requestHeaderBufferSize: 102400
|
||||
licenseName: ""
|
||||
licenseKey: ""
|
||||
statisticsUpload: false
|
||||
dumbMode: false
|
||||
admin_restore: false
|
||||
jvm:
|
||||
maxHeapSize: 1g
|
||||
maxMetaspaceMemory: 350m
|
||||
metaspaceMemory: 350m
|
||||
extraJVMOptions:
|
||||
[]
|
||||
# - -XX:+HeapDumpOnOutOfMemoryError
|
||||
|
||||
service:
|
||||
main:
|
||||
ports:
|
||||
main:
|
||||
port: 18080
|
||||
protocol: HTTP
|
||||
|
||||
persistence:
|
||||
data:
|
||||
enabled: true
|
||||
mountPath: /opt/youtrack/data
|
||||
conf:
|
||||
enabled: true
|
||||
mountPath: /opt/youtrack/conf
|
||||
logs:
|
||||
enabled: true
|
||||
mountPath: /opt/youtrack/logs
|
||||
backups:
|
||||
enabled: true
|
||||
mountPath: /opt/youtrack/backups
|
||||
youtracktemp:
|
||||
enabled: true
|
||||
mountPath: /opt/youtrack/temp
|
||||
type: emptyDir
|
||||
|
||||
portal:
|
||||
enabled: true
|
||||
Reference in New Issue
Block a user