-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
If helm chart is deployed to use a non privileged port Apache Answer writes wrong port into config file.
To Reproduce
Steps to reproduce the behavior:
- Deploy a MySQL database, create a database and a database user
- Create a Kubernetes secret:
kubectl create secret generic answer-secrets --from-literal=db-user=apacheanswer --from-literal=db-password=... --from-literal=admin-user=... --from-literal=admin-password=... --from-literal=admin-email=... - Prepare
values.yaml:
# Overridden values for https://github.com/apache/answer/tree/main/charts
replicaCount: 1
# Environment variables
# Configure environment variables below
# https://answer.apache.org/docs/env
env:
- name: INSTALL_PORT
value: "8080"
- name: LOG_LEVEL
# [DEBUG INFO WARN ERROR]
value: "INFO"
# uncomment the below values to use AUTO_INSTALL and not have to go through the setup process.
# Once used to do the initial setup, these variables won't be used moving forward.
# You must at a minimum comment AUTO_INSTALL after initial setup to prevent an error about the database already being initiated.
- name: AUTO_INSTALL
value: "true"
- name: DB_TYPE
value: "mysql"
- name: DB_HOST
value: mysql
- name: DB_NAME
value: apacheanswer
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: answer-secrets
key: db-user
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: answer-secrets
key: db-password
- name: LANGUAGE
value: "en-US"
- name: SITE_NAME
value: "The Unhandled Exception"
- name: SITE_URL
value: "https://example.org"
- name: ADMIN_NAME
valueFrom:
secretKeyRef:
name: answer-secrets
key: admin-user
- name: ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: answer-secrets
key: admin-password
- name: ADMIN_EMAIL
valueFrom:
secretKeyRef:
name: answer-secrets
key: admin-email
# Persistence for the /data volume
# Without persistence, your uploads and config.yaml will not be remembered between restarts.
persistence:
enabled: true
accessMode: ReadWriteMany
size: 50Gi
podSecurityContext:
fsGroup: 1000
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
service:
# Switch to port 8080 as we are running with as non-root
port: 8080
ingress:
enabled: true
className: "haproxy"
hosts:
- host: example.org
paths:
- path: /
pathType: ImplementationSpecific
tls: []
resources:
requests:
cpu: 1
memory: 1Gi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
- Deploy the chart:
helm upgrade apache-answer chart/ -f values.yaml --install - Open the WebUI via the configured ingress
Actual behavior
- Pod generated an invalid config (using port 80 instead of the configured 8080)
- Then pod tries to restarts
- The pod ends in a crash loop
Generated config file
apache-answer-645c989c98-qv7pm:/# cat /data/conf/config.yaml
debug: false
server:
http:
addr: 0.0.0.0:80
data:
database:
driver: mysql
connection: user:password@tcp(mysql:3306)/apacheanswer
cache:
file_path: /data/cache/cache.db
i18n:
bundle_dir: /data/i18n
service_config:
upload_path: /data/uploads
clean_up_uploads: true
clean_orphan_uploads_period_hours: 48
purge_deleted_files_period_days: 30
swaggerui:
show: true
protocol: http
host: 127.0.0.1
address: :80
ui:
base_url: ""
api_base_url: ""
Expected behavior
- Config declares pod 8080
server:
http:
addr: 0.0.0.0:8080
swaggerui:
address: :8080
- Apache Answer is configured correctly and starts properly.
Platform
- Device: Kubernetes
- OS: n/a
- Browser and version: n/a
- Version: v1.7.0
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working