473 lines
14 KiB
YAML
473 lines
14 KiB
YAML
---
|
|
# Source: superset/templates/secret-env.yaml
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: superset-env
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset
|
|
chart: superset-0.15.2
|
|
release: "superset"
|
|
heritage: "Helm"
|
|
type: Opaque
|
|
stringData:
|
|
REDIS_HOST: "valkey"
|
|
REDIS_USER: ""
|
|
REDIS_PORT: "6379"
|
|
REDIS_PROTO: "redis"
|
|
REDIS_DB: "1"
|
|
REDIS_CELERY_DB: "0"
|
|
DB_HOST: "superset-server"
|
|
DB_PORT: "5432"
|
|
DB_USER: "superset-user"
|
|
DB_PASS: "superset-pass"
|
|
DB_NAME: "superset-db"
|
|
SUPERSET_SECRET_KEY: "S737pQg5i1sIMx+rGm5i2N1WuP4ZP3fuQkcZ9lN8U8DJphVLkiFao5Uh"
|
|
---
|
|
# Source: superset/templates/secret-superset-config.yaml
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: superset-config
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset
|
|
chart: superset-0.15.2
|
|
release: "superset"
|
|
heritage: "Helm"
|
|
type: Opaque
|
|
stringData:
|
|
superset_config.py: |
|
|
|
|
import os
|
|
from flask_caching.backends.rediscache import RedisCache
|
|
|
|
def env(key, default=None):
|
|
return os.getenv(key, default)
|
|
|
|
# Redis Base URL
|
|
REDIS_BASE_URL=f"{env('REDIS_PROTO')}://{env('REDIS_HOST')}:{env('REDIS_PORT')}"
|
|
|
|
# Redis URL Params
|
|
REDIS_URL_PARAMS = ""
|
|
|
|
# Build Redis URLs
|
|
CACHE_REDIS_URL = f"{REDIS_BASE_URL}/{env('REDIS_DB', 1)}{REDIS_URL_PARAMS}"
|
|
CELERY_REDIS_URL = f"{REDIS_BASE_URL}/{env('REDIS_CELERY_DB', 0)}{REDIS_URL_PARAMS}"
|
|
|
|
MAPBOX_API_KEY = env('MAPBOX_API_KEY', '')
|
|
CACHE_CONFIG = {
|
|
'CACHE_TYPE': 'RedisCache',
|
|
'CACHE_DEFAULT_TIMEOUT': 300,
|
|
'CACHE_KEY_PREFIX': 'superset_',
|
|
'CACHE_REDIS_URL': CACHE_REDIS_URL,
|
|
}
|
|
DATA_CACHE_CONFIG = CACHE_CONFIG
|
|
|
|
|
|
if os.getenv("SQLALCHEMY_DATABASE_URI"):
|
|
SQLALCHEMY_DATABASE_URI = os.getenv("SQLALCHEMY_DATABASE_URI")
|
|
else:
|
|
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('DB_USER')}:{os.getenv('DB_PASS')}@{os.getenv('DB_HOST')}:{os.getenv('DB_PORT')}/{os.getenv('DB_NAME')}"
|
|
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
|
|
|
class CeleryConfig:
|
|
imports = ("superset.sql_lab", )
|
|
broker_url = CELERY_REDIS_URL
|
|
result_backend = CELERY_REDIS_URL
|
|
|
|
CELERY_CONFIG = CeleryConfig
|
|
RESULTS_BACKEND = RedisCache(
|
|
host=env('REDIS_HOST'),
|
|
port=env('REDIS_PORT'),
|
|
key_prefix='superset_results',
|
|
)
|
|
|
|
|
|
|
|
|
|
superset_init.sh: |
|
|
#!/bin/sh
|
|
set -eu
|
|
echo "Upgrading DB schema..."
|
|
superset db upgrade
|
|
echo "Initializing roles..."
|
|
superset init
|
|
|
|
echo "Creating admin user..."
|
|
superset fab create-admin \
|
|
--username admin \
|
|
--firstname Superset \
|
|
--lastname Admin \
|
|
--email admin@superset.com \
|
|
--password admin \
|
|
|| true
|
|
|
|
if [ -f "/app/configs/import_datasources.yaml" ]; then
|
|
echo "Importing database connections.... "
|
|
superset import_datasources -p /app/configs/import_datasources.yaml
|
|
fi
|
|
superset_bootstrap.sh: |
|
|
#!/bin/bash
|
|
if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid 0" > ~/bootstrap; fi
|
|
---
|
|
# Source: superset/templates/service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: superset
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset
|
|
chart: superset-0.15.2
|
|
release: superset
|
|
heritage: Helm
|
|
spec:
|
|
type: ClusterIP
|
|
ports:
|
|
- port: 8088
|
|
targetPort: http
|
|
protocol: TCP
|
|
name: http
|
|
selector:
|
|
app: superset
|
|
release: superset
|
|
---
|
|
# Source: superset/templates/deployment-beat.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: superset-celerybeat
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset-celerybeat
|
|
chart: superset-0.15.2
|
|
release: superset
|
|
heritage: Helm
|
|
spec:
|
|
# This must be a singleton
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: superset-celerybeat
|
|
release: superset
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/superset_config.py: 7c2be7b498705f47dbb4e27b852f68352f3b47b0d10ec15959ef2f5616f0e4d0
|
|
checksum/superset_bootstrap.sh: dc9a47141051ced34960c313860a55e03eb48c1fa36a0ed25c03ad60cd3b5c48
|
|
checksum/connections: 0cda20857b58c1cc042f2f6128f279790c0113c8b54544abeef2125c3aaf89e3
|
|
checksum/extraConfigs: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/extraSecrets: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/extraSecretEnv: cf425cecd61214dd2a8e0a09e410c147105e5d93a4e4ccbfe5b4a1bf8da5aacb
|
|
checksum/configOverrides: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/configOverridesFiles: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
labels:
|
|
app: "superset-celerybeat"
|
|
release: superset
|
|
spec:
|
|
securityContext:
|
|
runAsUser: 0
|
|
initContainers:
|
|
- command:
|
|
- /bin/sh
|
|
- -c
|
|
- dockerize -wait "tcp://$DB_HOST:$DB_PORT" -wait "tcp://$REDIS_HOST:$REDIS_PORT"
|
|
-timeout 120s
|
|
envFrom:
|
|
- secretRef:
|
|
name: 'superset-env'
|
|
image: 'apache/superset:dockerize'
|
|
imagePullPolicy: 'IfNotPresent'
|
|
name: wait-for-postgres-redis
|
|
containers:
|
|
- name: "superset-celerybeat"
|
|
image: "registry.dev.k8s.transcity/reports/superset:5.0.0"
|
|
imagePullPolicy: Always
|
|
command: ["/bin/sh","-c",". /app/pythonpath/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app beat --pidfile /tmp/celerybeat.pid --schedule /tmp/celerybeat-schedule"]
|
|
env:
|
|
- name: "SUPERSET_PORT"
|
|
value: "8088"
|
|
envFrom:
|
|
- secretRef:
|
|
name: "superset-env"
|
|
volumeMounts:
|
|
- name: superset-config
|
|
mountPath: "/app/pythonpath"
|
|
readOnly: true
|
|
resources:
|
|
{}
|
|
volumes:
|
|
- name: superset-config
|
|
secret:
|
|
secretName: superset-config
|
|
---
|
|
# Source: superset/templates/deployment-worker.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: superset-worker
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset-worker
|
|
chart: superset-0.15.2
|
|
release: superset
|
|
heritage: Helm
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: superset-worker
|
|
release: superset
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
checksum/superset_config.py: 7c2be7b498705f47dbb4e27b852f68352f3b47b0d10ec15959ef2f5616f0e4d0
|
|
checksum/superset_bootstrap.sh: dc9a47141051ced34960c313860a55e03eb48c1fa36a0ed25c03ad60cd3b5c48
|
|
checksum/connections: 0cda20857b58c1cc042f2f6128f279790c0113c8b54544abeef2125c3aaf89e3
|
|
checksum/extraConfigs: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/extraSecrets: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/extraSecretEnv: cf425cecd61214dd2a8e0a09e410c147105e5d93a4e4ccbfe5b4a1bf8da5aacb
|
|
checksum/configOverrides: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/configOverridesFiles: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
labels:
|
|
app: superset-worker
|
|
release: superset
|
|
spec:
|
|
securityContext:
|
|
runAsUser: 0
|
|
initContainers:
|
|
- command:
|
|
- /bin/sh
|
|
- -c
|
|
- dockerize -wait "tcp://$DB_HOST:$DB_PORT" -wait "tcp://$REDIS_HOST:$REDIS_PORT"
|
|
-timeout 120s
|
|
envFrom:
|
|
- secretRef:
|
|
name: 'superset-env'
|
|
image: 'apache/superset:dockerize'
|
|
imagePullPolicy: 'IfNotPresent'
|
|
name: wait-for-postgres-redis
|
|
containers:
|
|
- name: superset
|
|
image: "registry.dev.k8s.transcity/reports/superset:5.0.0"
|
|
imagePullPolicy: Always
|
|
command: ["/bin/sh","-c",". /app/pythonpath/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker"]
|
|
env:
|
|
- name: "SUPERSET_PORT"
|
|
value: "8088"
|
|
envFrom:
|
|
- secretRef:
|
|
name: "superset-env"
|
|
volumeMounts:
|
|
- name: superset-config
|
|
mountPath: "/app/pythonpath"
|
|
readOnly: true
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- sh
|
|
- -c
|
|
- celery -A superset.tasks.celery_app:app inspect ping -d celery@$HOSTNAME
|
|
failureThreshold: 3
|
|
initialDelaySeconds: 120
|
|
periodSeconds: 60
|
|
successThreshold: 1
|
|
timeoutSeconds: 60
|
|
resources:
|
|
{}
|
|
volumes:
|
|
- name: superset-config
|
|
secret:
|
|
secretName: superset-config
|
|
---
|
|
# Source: superset/templates/deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: superset
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset
|
|
chart: superset-0.15.2
|
|
release: superset
|
|
heritage: Helm
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: superset
|
|
release: superset
|
|
template:
|
|
metadata:
|
|
annotations:
|
|
# Force reload on config changes
|
|
checksum/superset_config.py: 7c2be7b498705f47dbb4e27b852f68352f3b47b0d10ec15959ef2f5616f0e4d0
|
|
checksum/superset_init.sh: e6b1e8eac1f7a79a07a6c72a0e2ee6e09654eeb439c6bbe61bfd676917c41e02
|
|
checksum/superset_bootstrap.sh: dc9a47141051ced34960c313860a55e03eb48c1fa36a0ed25c03ad60cd3b5c48
|
|
checksum/connections: 0cda20857b58c1cc042f2f6128f279790c0113c8b54544abeef2125c3aaf89e3
|
|
checksum/extraConfigs: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/extraSecrets: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/extraSecretEnv: cf425cecd61214dd2a8e0a09e410c147105e5d93a4e4ccbfe5b4a1bf8da5aacb
|
|
checksum/configOverrides: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
checksum/configOverridesFiles: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
|
|
labels:
|
|
app: superset
|
|
release: superset
|
|
spec:
|
|
securityContext:
|
|
runAsUser: 0
|
|
initContainers:
|
|
- command:
|
|
- /bin/sh
|
|
- -c
|
|
- dockerize -wait "tcp://$DB_HOST:$DB_PORT" -timeout 120s
|
|
envFrom:
|
|
- secretRef:
|
|
name: 'superset-env'
|
|
image: 'apache/superset:dockerize'
|
|
imagePullPolicy: 'IfNotPresent'
|
|
name: wait-for-postgres
|
|
containers:
|
|
- name: superset
|
|
image: "registry.dev.k8s.transcity/reports/superset:5.0.0"
|
|
imagePullPolicy: Always
|
|
command: ["/bin/sh","-c",". /app/pythonpath/superset_bootstrap.sh; /usr/bin/run-server.sh"]
|
|
env:
|
|
- name: "SUPERSET_PORT"
|
|
value: "8088"
|
|
envFrom:
|
|
- secretRef:
|
|
name: "superset-env"
|
|
volumeMounts:
|
|
- name: superset-config
|
|
mountPath: "/app/pythonpath"
|
|
readOnly: true
|
|
ports:
|
|
- name: http
|
|
containerPort: 8088
|
|
protocol: TCP
|
|
startupProbe:
|
|
failureThreshold: 60
|
|
httpGet:
|
|
path: /health
|
|
port: http
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 5
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
readinessProbe:
|
|
failureThreshold: 3
|
|
httpGet:
|
|
path: /health
|
|
port: http
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 15
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
livenessProbe:
|
|
failureThreshold: 3
|
|
httpGet:
|
|
path: /health
|
|
port: http
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 15
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
resources:
|
|
{}
|
|
volumes:
|
|
- name: superset-config
|
|
secret:
|
|
secretName: superset-config
|
|
---
|
|
# Source: superset/templates/ingress.yaml
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: superset
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset
|
|
chart: superset-0.15.2
|
|
release: superset
|
|
heritage: Helm
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: admin
|
|
cert-manager.io/common-name: superset.alpha.k8s.transcity
|
|
cert-manager.io/private-key-algorithm: ECDSA
|
|
forecastle.stakater.com/appName: Superset
|
|
forecastle.stakater.com/expose: "true"
|
|
forecastle.stakater.com/group: Reports
|
|
forecastle.stakater.com/instance: admin
|
|
spec:
|
|
tls:
|
|
- hosts:
|
|
- superset.alpha.k8s.transcity
|
|
secretName: superset-tls
|
|
rules:
|
|
- host: superset.alpha.k8s.transcity
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: superset
|
|
port:
|
|
name: http
|
|
---
|
|
# Source: superset/templates/init-job.yaml
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: superset-init-db
|
|
namespace: reports-superset
|
|
labels:
|
|
app: superset
|
|
chart: superset-0.15.2
|
|
release: superset
|
|
heritage: Helm
|
|
annotations:
|
|
helm.sh/hook: post-install,post-upgrade
|
|
helm.sh/hook-delete-policy: before-hook-creation
|
|
spec:
|
|
template:
|
|
metadata:
|
|
name: superset-init-db
|
|
spec:
|
|
securityContext:
|
|
runAsUser: 0
|
|
initContainers:
|
|
- command:
|
|
- /bin/sh
|
|
- -c
|
|
- dockerize -wait "tcp://$DB_HOST:$DB_PORT" -timeout 120s
|
|
envFrom:
|
|
- secretRef:
|
|
name: 'superset-env'
|
|
image: 'apache/superset:dockerize'
|
|
imagePullPolicy: 'IfNotPresent'
|
|
name: wait-for-postgres
|
|
containers:
|
|
- name: superset-init-db
|
|
image: "registry.dev.k8s.transcity/reports/superset:5.0.0"
|
|
envFrom:
|
|
- secretRef:
|
|
name: superset-env
|
|
imagePullPolicy: Always
|
|
volumeMounts:
|
|
- name: superset-config
|
|
mountPath: "/app/pythonpath"
|
|
readOnly: true
|
|
command: ["/bin/sh","-c",". /app/pythonpath/superset_bootstrap.sh; . /app/pythonpath/superset_init.sh"]
|
|
resources:
|
|
{}
|
|
volumes:
|
|
- name: superset-config
|
|
secret:
|
|
secretName: superset-config
|
|
restartPolicy: Never
|