dip-values add
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
airflow:
|
||||
workers:
|
||||
replicas: 2
|
||||
resources: {}
|
||||
scheduler:
|
||||
resources: {}
|
||||
webserver:
|
||||
resources: {}
|
||||
apiServer:
|
||||
resources: {}
|
||||
triggerer:
|
||||
resources: {}
|
||||
dags:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClassName: "nfs-client"
|
||||
accessMode: ReadWriteMany
|
||||
size: 1Gi
|
||||
logs:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClassName: "nfs-client"
|
||||
size: 1Gi
|
||||
data:
|
||||
metadataConnection:
|
||||
pass: "$airflow.mysql.password"
|
||||
|
||||
opensearch:
|
||||
opensearchJavaOpts: "-Xmx1g -Xms1g"
|
||||
persistence:
|
||||
size: 30Gi
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "256M"
|
||||
limits:
|
||||
cpu: "2000m"
|
||||
memory: "2048M"
|
||||
|
||||
mysql:
|
||||
enabled: true
|
||||
primary:
|
||||
resources:
|
||||
requests:
|
||||
cpu: "500m"
|
||||
memory: "512Mi"
|
||||
limits:
|
||||
cpu: "750m"
|
||||
memory: "768Mi"
|
||||
persistence:
|
||||
size: 50Gi
|
||||
initdbScripts:
|
||||
init_openmetadata_db_scripts.sql: |
|
||||
CREATE DATABASE openmetadata_db;
|
||||
CREATE USER 'openmetadata_user'@'%' IDENTIFIED BY '$openmetadata.mysql.password';
|
||||
GRANT ALL PRIVILEGES ON openmetadata_db.* TO 'openmetadata_user'@'%' WITH GRANT OPTION;
|
||||
commit;
|
||||
init_airflow_db_scripts.sql: |
|
||||
CREATE DATABASE airflow_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'airflow_user'@'%' IDENTIFIED BY '$airflow.mysql.password';
|
||||
GRANT ALL PRIVILEGES ON airflow_db.* TO 'airflow_user'@'%' WITH GRANT OPTION;
|
||||
commit;
|
||||
|
||||
---
|
||||
|
||||
openmetadata:
|
||||
config:
|
||||
authorizer:
|
||||
className: "org.openmetadata.service.security.DefaultAuthorizer"
|
||||
containerRequestFilter: "org.openmetadata.service.security.JwtFilter"
|
||||
initialAdmins:
|
||||
- "admin"
|
||||
- "dwshin"
|
||||
- "{{ .Username }}"
|
||||
- "service-account-$KEYCLOAK_CLIENT_ID"
|
||||
principalDomain: "paasup.io"
|
||||
|
||||
authentication:
|
||||
clientType: confidential
|
||||
provider: "custom-oidc"
|
||||
authority: "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM"
|
||||
publicKeys:
|
||||
- "https://{{ .Name }}.{{ .Domain }}/api/v1/system/config/jwks"
|
||||
- "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/protocol/openid-connect/certs"
|
||||
clientId: "open-metadata"
|
||||
callbackUrl: "https://{{ .Name }}.{{ .Domain }}/callback"
|
||||
jwtPrincipalClaims:
|
||||
- "email"
|
||||
- "preferred_username"
|
||||
- "sub"
|
||||
oidcConfiguration:
|
||||
enabled: true
|
||||
oidcType: "Keycloak"
|
||||
clientId:
|
||||
secretRef: oidc-secrets
|
||||
secretKey: openmetadata-oidc-client-id
|
||||
clientSecret:
|
||||
secretRef: oidc-secrets
|
||||
secretKey: openmetadata-oidc-client-secret
|
||||
discoveryUri: "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/.well-known/openid-configuration"
|
||||
serverUrl: "https://{{ .Name }}.{{ .Domain }}"
|
||||
callbackUrl: "https://{{ .Name }}.{{ .Domain }}/callback"
|
||||
tokenValidity: "3600"
|
||||
sessionExpiry: "604800"
|
||||
maxAge: "300"
|
||||
pipelineServiceClientConfig:
|
||||
metadataApiEndpoint: "http://{{ .Name }}:8585/api"
|
||||
airflow:
|
||||
apiEndpoint: "http://{{ .Namespace }}-dependencies-api-server:8080"
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "kong"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
konghq.com/protocols: https
|
||||
konghq.com/https-redirect-status-code: "301"
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
tls:
|
||||
- secretName: openmetadata-tls
|
||||
hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
|
||||
extraVolumes:
|
||||
- name: java-truststore
|
||||
secret:
|
||||
secretName: java-truststore
|
||||
|
||||
extraVolumeMounts:
|
||||
- name: java-truststore
|
||||
mountPath: /etc/ssl/java
|
||||
readOnly: true
|
||||
|
||||
resources: {}
|
||||
|
||||
extraEnvs:
|
||||
- name: LOG_LEVEL
|
||||
value: "INFO"
|
||||
- name: "OPENMETADATA_PUBLIC_URL"
|
||||
value: "https://{{ .Name }}.{{ .Domain }}"
|
||||
@@ -0,0 +1,126 @@
|
||||
{{if .ShowIf}}
|
||||
{{if eq (index .ShowIf "postgresql.source") "true"}}
|
||||
---
|
||||
apiVersion: kafka.strimzi.io/v1beta2
|
||||
kind: KafkaConnector
|
||||
metadata:
|
||||
name: "{{ .Name }}-kafka-postgresql"
|
||||
namespace: $kafka_cluster_namespace
|
||||
labels:
|
||||
strimzi.io/cluster: $kafka_cluster_namespace
|
||||
spec:
|
||||
class: io.debezium.connector.postgresql.PostgresConnector
|
||||
tasksMax: 6
|
||||
config:
|
||||
database.hostname: "$database.host"
|
||||
database.port: "5432"
|
||||
database.user: "$database.user"
|
||||
database.password: "$database.password"
|
||||
database.dbname: "$database.db"
|
||||
table.include.list: "$database.table.include"
|
||||
plugin.name: pgoutput
|
||||
snapshot.mode: "initial"
|
||||
slot.name: "$database.slot"
|
||||
publication.autocreate.mode: filtered
|
||||
topic.prefix: "{{ .ClusterProjectName }}"
|
||||
producer.override.security.protocol: "SASL_PLAINTEXT"
|
||||
producer.override.sasl.mechanism: "OAUTHBEARER"
|
||||
producer.override.sasl.jaas.config: |
|
||||
org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required
|
||||
oauth.token.endpoint.uri="$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/protocol/openid-connect/token"
|
||||
oauth.client.id="$KAFKA_CLIENT_ID"
|
||||
oauth.client.secret="$KAFKA_CLIENT_SECRET"
|
||||
oauth.ssl.truststore.location="/mnt/truststore/truststore.jks"
|
||||
oauth.ssl.truststore.password="kafka";
|
||||
{{end}}
|
||||
|
||||
{{if eq (index .ShowIf "s3.target") "true"}}
|
||||
---
|
||||
apiVersion: kafka.strimzi.io/v1beta2
|
||||
kind: KafkaConnector
|
||||
metadata:
|
||||
name: "{{ .Name }}-kafka-s3"
|
||||
namespace: $kafka_cluster_namespace
|
||||
labels:
|
||||
strimzi.io/cluster: $kafka_cluster_namespace
|
||||
spec:
|
||||
class: io.confluent.connect.s3.S3SinkConnector
|
||||
tasksMax: 6
|
||||
config:
|
||||
topics: "{{ .ClusterProjectName }}.$config.topics"
|
||||
store.url: "$s3.url"
|
||||
s3.region: us-east-1
|
||||
aws.access.key.id: "$s3.accesskey"
|
||||
aws.secret.access.key: "$s3.secretkey"
|
||||
s3.bucket.name: "$s3.bucket"
|
||||
s3.part.size: 5242880
|
||||
flush.size: 3
|
||||
format.class: io.confluent.connect.s3.format.json.JsonFormat
|
||||
storage.class: io.confluent.connect.s3.storage.S3Storage
|
||||
schema.compatibility: NONE
|
||||
consumer.override.security.protocol: "SASL_PLAINTEXT"
|
||||
consumer.override.sasl.mechanism: "OAUTHBEARER"
|
||||
consumer.override.sasl.jaas.config: |
|
||||
org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required
|
||||
oauth.token.endpoint.uri="$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/protocol/openid-connect/token"
|
||||
oauth.client.id="$KAFKA_CLIENT_ID"
|
||||
oauth.client.secret="$KAFKA_CLIENT_SECRET"
|
||||
oauth.ssl.truststore.location="/mnt/truststore/truststore.jks"
|
||||
oauth.ssl.truststore.password="kafka";
|
||||
{{end}}
|
||||
|
||||
{{if eq (index .ShowIf "star.target") "true"}}
|
||||
---
|
||||
apiVersion: kafka.strimzi.io/v1beta2
|
||||
kind: KafkaConnector
|
||||
metadata:
|
||||
name: "{{ .Name }}-kafka-starrocks"
|
||||
namespace: $kafka_cluster_namespace
|
||||
labels:
|
||||
strimzi.io/cluster: $kafka_cluster_namespace
|
||||
spec:
|
||||
class: com.starrocks.connector.kafka.StarRocksSinkConnector
|
||||
tasksMax: 6
|
||||
config:
|
||||
topics: "{{ .ClusterProjectName }}.$star.config.topics"
|
||||
starrocks.http.url: kube-starrocks-fe-service.$star.namespace.svc.cluster.local:8030
|
||||
starrocks.database.name: "$star.database.name"
|
||||
starrocks.username: "$star.username"
|
||||
starrocks.password: "$star.password"
|
||||
sink.properties.strip_outer_array: true
|
||||
connect.timeoutms: "30000"
|
||||
starrocks.topic2table.map: "$star.topic2table"
|
||||
transforms: addfield,unwrap
|
||||
transforms.addfield.type: com.starrocks.connector.kafka.transforms.AddOpFieldForDebeziumRecord
|
||||
transforms.unwrap.type: io.debezium.transforms.ExtractNewRecordState
|
||||
transforms.unwarp.drop.tombstones: true
|
||||
transforms.unwarp.delete.handling.mode: rewrite
|
||||
{{end}}
|
||||
|
||||
{{if eq (index .ShowIf "starjson.target") "true"}}
|
||||
---
|
||||
apiVersion: kafka.strimzi.io/v1beta2
|
||||
kind: KafkaConnector
|
||||
metadata:
|
||||
name: "{{ .Name }}-kafka-starrocks"
|
||||
namespace: $kafka_cluster_namespace
|
||||
labels:
|
||||
strimzi.io/cluster: $kafka_cluster_namespace
|
||||
spec:
|
||||
class: com.starrocks.connector.kafka.StarRocksSinkConnector
|
||||
tasksMax: 6
|
||||
config:
|
||||
topics: "{{ .ClusterProjectName }}.$starjson.config.topics"
|
||||
starrocks.http.url: kube-starrocks-fe-service.$starjson.namespace.svc.cluster.local:8030
|
||||
starrocks.database.name: "$starjson.database.name"
|
||||
starrocks.username: "$starjson.username"
|
||||
starrocks.password: "$starjson.password"
|
||||
sink.properties.strip_outer_array: true
|
||||
connect.timeoutms: "30000"
|
||||
starrocks.topic2table.map: "$starjson.topic2table"
|
||||
key.converter: "org.apache.kafka.connect.json.JsonConverter"
|
||||
value.converter: "org.apache.kafka.connect.json.JsonConverter"
|
||||
key.converter.schemas.enable: "true"
|
||||
value.converter.schemas.enable: "false"
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -0,0 +1,47 @@
|
||||
apiVersion: kafka.strimzi.io/v1beta2
|
||||
kind: KafkaUser
|
||||
metadata:
|
||||
name: "service-account-{{ .ClusterName }}-{{ .ClusterProjectName }}-kafka-common"
|
||||
labels:
|
||||
strimzi.io/cluster: $kafka_cluster_namespace
|
||||
spec:
|
||||
authorization:
|
||||
type: simple
|
||||
acls:
|
||||
- resource:
|
||||
type: topic
|
||||
name: "{{ .ClusterProjectName }}."
|
||||
patternType: prefix
|
||||
operations:
|
||||
- Read
|
||||
- Describe
|
||||
- DescribeConfigs
|
||||
- Write
|
||||
- resource:
|
||||
type: group
|
||||
name: "{{ .ClusterProjectName }}-"
|
||||
patternType: prefix
|
||||
operations:
|
||||
- Read
|
||||
- Write
|
||||
- Describe
|
||||
|
||||
{{- $clusterCatalog := . -}}
|
||||
{{range index .QuestionsMap "$topicName"}}
|
||||
---
|
||||
apiVersion: kafka.strimzi.io/v1beta2
|
||||
kind: KafkaTopic
|
||||
metadata:
|
||||
labels:
|
||||
strimzi.io/cluster: $kafka_cluster_namespace
|
||||
name: "{{replaceDotUnderToHypen .}}"
|
||||
namespace: $kafka_cluster_namespace
|
||||
spec:
|
||||
partitions: $topic.partition
|
||||
replicas: 3
|
||||
topicName: "{{ $clusterCatalog.ClusterProjectName }}.{{.}}"
|
||||
config:
|
||||
cleanup.policy: compact
|
||||
retention.bytes: "$topic.retention"
|
||||
segment.bytes: "$topic.segment"
|
||||
{{end}}
|
||||
@@ -0,0 +1,13 @@
|
||||
apiVersion: kubeflow.org/v1
|
||||
kind: Profile
|
||||
metadata:
|
||||
name: "{{ .Name }}"
|
||||
spec:
|
||||
owner:
|
||||
kind: User
|
||||
name: "{{ .Email }}"
|
||||
resourceQuotaSpec:
|
||||
hard:
|
||||
cpu: "16"
|
||||
memory: 32Gi
|
||||
persistentvolumeclaims: "12"
|
||||
@@ -0,0 +1,91 @@
|
||||
ingress:
|
||||
web:
|
||||
enabled: true
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
k8s.apisix.apache.org/plugin-config-name: oidc-keycloak-authz
|
||||
ingressClassName: "apisix"
|
||||
pathType: "Prefix"
|
||||
hosts:
|
||||
- name: "{{ .Name }}.{{ .Domain }}"
|
||||
tls:
|
||||
enabled: true
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
|
||||
executor: "KubernetesExecutor"
|
||||
|
||||
config:
|
||||
core:
|
||||
executor: KubernetesExecutor
|
||||
default_timezone: kst
|
||||
logging:
|
||||
colored_console_log: "False"
|
||||
logging_level: "INFO"
|
||||
webserver:
|
||||
enable_proxy_fix: "True"
|
||||
rbac: "True"
|
||||
default_ui_timezone: kst
|
||||
|
||||
scheduler:
|
||||
replicas: 1
|
||||
|
||||
dags:
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 5Gi
|
||||
storageClassName: longhorn
|
||||
accessMode: ReadWriteMany
|
||||
gitSync:
|
||||
enabled: true
|
||||
repo: "$dags.gitSync.repo"
|
||||
branch: master
|
||||
rev: HEAD
|
||||
depth: 1
|
||||
subPath: ""
|
||||
credentialsSecret: "$INFISICAL_SECRET"
|
||||
env:
|
||||
- name: GIT_SSL_NO_VERIFY
|
||||
value: "true"
|
||||
|
||||
webserver:
|
||||
defaultUser:
|
||||
enabled: true
|
||||
password: "$webserver.defaultUser.password"
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 120
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 120
|
||||
startupProbe:
|
||||
initialDelaySeconds: 30
|
||||
webserverConfig: |
|
||||
AUTH_ROLE_PUBLIC = 'User'
|
||||
|
||||
logs:
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 5Gi
|
||||
storageClassName: longhorn
|
||||
|
||||
statsd:
|
||||
enabled: false
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
auth:
|
||||
username: "postgres"
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 8Gi
|
||||
storageClass: ""
|
||||
|
||||
migrateDatabaseJob:
|
||||
useHelmHooks: false
|
||||
|
||||
data:
|
||||
metadataSecretName: "$INFISICAL_SECRET"
|
||||
@@ -0,0 +1,51 @@
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: dbeaver/cloudbeaver
|
||||
tag: "26.0.1"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
http: 8978
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: "apisix"
|
||||
pathType: Prefix
|
||||
hostname: "{{ .Name }}.{{ .Domain }}"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: root-ca-issuer
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
k8s.apisix.apache.org/plugin-config-name: https-redirect
|
||||
tls: true
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
mountPath: /opt/cloudbeaver/workspace
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
size: 5Gi
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
limits:
|
||||
cpu: 750m
|
||||
memory: 768Mi
|
||||
|
||||
podSecurityContext:
|
||||
enabled: true
|
||||
fsGroup: 8978
|
||||
|
||||
containerSecurityContext:
|
||||
enabled: true
|
||||
runAsUser: 8978
|
||||
runAsGroup: 8978
|
||||
runAsNonRoot: true
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop: ["ALL"]
|
||||
@@ -0,0 +1,31 @@
|
||||
sessionCluster:
|
||||
restAddress: "$flink_cdc_session_namespace-session-rest"
|
||||
restPort: 8081
|
||||
|
||||
postgres:
|
||||
hostname: "$postgres.hostname"
|
||||
port: 5432
|
||||
username: "$postgres.username"
|
||||
password: "$postgres.password"
|
||||
slotName: "$postgres.slotName"
|
||||
decodingPlugin: pgoutput
|
||||
tables: "$postgres.tables"
|
||||
|
||||
pipeline:
|
||||
name: "{{ .Name }}-cdc-pipeline"
|
||||
parallelism: 2
|
||||
checkpointInterval: 60s
|
||||
|
||||
sink:
|
||||
catalog:
|
||||
uri: "$sink.catalog.uri"
|
||||
warehouse: "$sink.catalog.warehouse"
|
||||
s3Endpoint: "$sink.catalog.s3Endpoint"
|
||||
s3PathStyleAccess: "true"
|
||||
oauth2Uri: "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/protocol/openid-connect/token"
|
||||
credential: "$LAKEKEEPER_CLIENT_ID:$LAKEKEEPER_CLIENT_SECRET"
|
||||
scope: lakekeeper
|
||||
|
||||
route:
|
||||
- sourceTable: "$route.sourceTable"
|
||||
sinkTable: "$route.sinkTable"
|
||||
@@ -0,0 +1,25 @@
|
||||
checkpointStorage:
|
||||
storageType: s3
|
||||
checkpointDir: "s3://$checkpointStorage.checkpointDir"
|
||||
savepointDir: "s3://$checkpointStorage.savepointDir"
|
||||
s3:
|
||||
endpoint: "$checkpointStorage.s3.endpoint"
|
||||
pathStyleAccess: "true"
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
host: "{{ .Name }}.{{ .Domain }}"
|
||||
className: apisix
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: root-ca-issuer
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
k8s.apisix.apache.org/plugin-config-name: oidc-keycloak-authz
|
||||
|
||||
truststore:
|
||||
enabled: true
|
||||
secretName: flink-truststore
|
||||
|
||||
job:
|
||||
enabled: false
|
||||
@@ -0,0 +1,67 @@
|
||||
watchNamespaces: []
|
||||
|
||||
image:
|
||||
repository: ghcr.io/apache/flink-kubernetes-operator
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "b40c553"
|
||||
digest: ""
|
||||
|
||||
imagePullSecrets: []
|
||||
|
||||
replicas: 1
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
operatorPod:
|
||||
nodeSelector: {}
|
||||
affinity: {}
|
||||
tolerations: []
|
||||
topologySpreadConstraints: []
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: "200m"
|
||||
memory: "512Mi"
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "256Mi"
|
||||
webhook:
|
||||
resources:
|
||||
limits:
|
||||
cpu: "100m"
|
||||
memory: "256Mi"
|
||||
requests:
|
||||
cpu: "50m"
|
||||
memory: "128Mi"
|
||||
|
||||
defaultConfiguration:
|
||||
create: true
|
||||
append: true
|
||||
flink-conf.yaml: |+
|
||||
# Flink Config Overrides
|
||||
kubernetes.operator.metrics.reporter.slf4j.factory.class: org.apache.flink.metrics.slf4j.Slf4jReporterFactory
|
||||
kubernetes.operator.metrics.reporter.slf4j.interval: 5 MINUTE
|
||||
|
||||
kubernetes.operator.reconcile.interval: 15 s
|
||||
kubernetes.operator.observer.progress-check.interval: 5 s
|
||||
log4j-operator.properties: |+
|
||||
# Flink Operator Logging Overrides
|
||||
# rootLogger.level = DEBUG
|
||||
# logger.operator.name= org.apache.flink.kubernetes.operator
|
||||
# logger.operator.level = DEBUG
|
||||
log4j-console.properties: |+
|
||||
# Flink Deployment Logging Overrides
|
||||
# rootLogger.level = DEBUG
|
||||
|
||||
jvmArgs:
|
||||
webhook: ""
|
||||
operator: ""
|
||||
logConfig: "-Dlog4j.configurationFile=/opt/flink/conf/log4j-operator.properties"
|
||||
|
||||
tls:
|
||||
create: false
|
||||
secretName: flink-operator-cert
|
||||
secretKeyRef:
|
||||
name: operator-certificate-password
|
||||
key: password
|
||||
@@ -0,0 +1,78 @@
|
||||
global:
|
||||
namespace: "{{ .Namespace }}"
|
||||
image:
|
||||
repository: paasup/flink-sql
|
||||
tag: 2.0.1
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
|
||||
sessionCluster:
|
||||
flinkVersion: v2_0
|
||||
flinkConfiguration:
|
||||
taskmanager.numberOfTaskSlots: "4"
|
||||
env.java.opts.jobmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD"
|
||||
env.java.opts.taskmanager: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD"
|
||||
table.exec.resource.default-parallelism: "2"
|
||||
|
||||
fs.s3.impl: org.apache.hadoop.fs.s3a.S3AFileSystem
|
||||
fs.s3a.impl: org.apache.hadoop.fs.s3a.S3AFileSystem
|
||||
|
||||
fs.s3a.endpoint: "$sessioncluster.s3a.endpoint"
|
||||
fs.s3a.path.style.access: "true"
|
||||
|
||||
env:
|
||||
- name: TRUSTSTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: truststore-secret
|
||||
key: ca.password
|
||||
volumeMounts:
|
||||
- name: truststore-certs
|
||||
mountPath: /opt/flink/certs
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: truststore-certs
|
||||
secret:
|
||||
secretName: truststore-secret
|
||||
|
||||
sqlGateway:
|
||||
resources:
|
||||
requests:
|
||||
memory: 1Gi
|
||||
cpu: 0.5
|
||||
limits:
|
||||
memory: 2Gi
|
||||
cpu: 1
|
||||
flinkConfiguration:
|
||||
env.java.opts: "-Djavax.net.ssl.trustStore=/opt/flink/certs/ca.p12 -Djavax.net.ssl.trustStoreType=PKCS12 -Djavax.net.ssl.trustStorePassword=YOUR_TRUSTSTORE_PASSWORD"
|
||||
env:
|
||||
- name: TRUSTSTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: truststore-secret
|
||||
key: ca.password
|
||||
volumeMounts:
|
||||
- name: truststore-certs
|
||||
mountPath: /opt/flink/certs
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: truststore-certs
|
||||
secret:
|
||||
secretName: truststore-secret
|
||||
|
||||
sqlClient:
|
||||
enabled: true
|
||||
env:
|
||||
- name: TRUSTSTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: truststore-secret
|
||||
key: ca.password
|
||||
volumeMounts:
|
||||
- name: truststore-certs
|
||||
mountPath: /opt/flink/certs
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: truststore-certs
|
||||
secret:
|
||||
secretName: truststore-secret
|
||||
@@ -0,0 +1,46 @@
|
||||
global:
|
||||
storageClass: "longhorn"
|
||||
|
||||
image:
|
||||
registry: docker.io
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 1Gi
|
||||
storageClass: longhorn
|
||||
|
||||
resources: {}
|
||||
|
||||
worker:
|
||||
enabled: true
|
||||
replicaCount: 1
|
||||
resources: {}
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: "apisix"
|
||||
pathType: Prefix
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- /
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
auth:
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 8Gi
|
||||
|
||||
redis:
|
||||
enabled: true
|
||||
@@ -0,0 +1,106 @@
|
||||
global:
|
||||
imageRegistry: ""
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: apisix
|
||||
annotations:
|
||||
k8s.apisix.apache.org/plugin-config-name: https-redirect
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
host: "{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
|
||||
extraVolumes:
|
||||
- name: keycloak-tls
|
||||
secret:
|
||||
secretName: keycloak-tls
|
||||
|
||||
|
||||
extraContainerVolumeMounts:
|
||||
- name: keycloak-tls
|
||||
mountPath: /etc/ssl/certs/ca.crt
|
||||
subPath: ca.crt
|
||||
|
||||
extraInitVolumeMounts:
|
||||
- name: keycloak-tls
|
||||
mountPath: /etc/ssl/certs/ca.crt
|
||||
subPath: ca.crt
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 300Mi
|
||||
limits:
|
||||
cpu: 300m
|
||||
memory: 500Mi
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 10Gi
|
||||
storageClass: "longhorn"
|
||||
|
||||
gitea:
|
||||
admin:
|
||||
username: sudouser
|
||||
password: ""
|
||||
email: "gitea@local.domain"
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
config:
|
||||
APP_NAME: paasup git
|
||||
RUN_MODE: prod
|
||||
server:
|
||||
ROOT_URL: "https://{{ .Name }}.{{ .Domain }}"
|
||||
database:
|
||||
DB_TYPE: postgres
|
||||
HOST: "{{ .Name }}-postgresql:5432"
|
||||
NAME: gitea
|
||||
USER: gitea
|
||||
PASSWD: gitea
|
||||
CHARSET: utf8
|
||||
SSL_MODE: disable
|
||||
session:
|
||||
PROVIDER: postgres
|
||||
PROVIDER_CONFIG: user=gitea password=gitea host={{ .Name }}-postgresql port=5432 dbname=gitea sslmode=disable
|
||||
COOKIE_NAME: i_hate_gitea
|
||||
service:
|
||||
DEFAULT_ALLOW_CREATE_ORGANIZATION: true
|
||||
repository:
|
||||
DEFAULT_BRANCH: master
|
||||
oauth:
|
||||
- name: keycloak
|
||||
provider: "openidConnect"
|
||||
key: "$KEYCLOAK_CLIENT_ID"
|
||||
secret: "$KEYCLOAK_CLIENT_SECRET"
|
||||
autoDiscoverUrl: "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/.well-known/openid-configuration"
|
||||
|
||||
postgresql-ha:
|
||||
enabled: false
|
||||
valkey:
|
||||
enabled: false
|
||||
valkey-cluster:
|
||||
enabled: false
|
||||
postgresql:
|
||||
enabled: true
|
||||
global:
|
||||
postgresql:
|
||||
auth:
|
||||
password: gitea
|
||||
database: gitea
|
||||
username: gitea
|
||||
service:
|
||||
ports:
|
||||
postgresql: 5432
|
||||
primary:
|
||||
persistence:
|
||||
size: 10Gi
|
||||
@@ -0,0 +1,43 @@
|
||||
image:
|
||||
registry: "quay.io"
|
||||
repository: "$image.repository"
|
||||
tag: ""
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: "2000m"
|
||||
memory: "4096Mi"
|
||||
requests:
|
||||
cpu: "500m"
|
||||
memory: "1024Mi"
|
||||
gpu: ""
|
||||
|
||||
jupyterConfig:
|
||||
token: "$jupyterConfig.token"
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: "8760h"
|
||||
cert-manager.io/renew-before: "720h"
|
||||
k8s.apisix.apache.org/plugin-config-name: oidc-keycloak-authz
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- /
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
|
||||
homeVolume:
|
||||
enabled: $homeVolume.enabled
|
||||
size: "5Gi"
|
||||
storageClassName: ""
|
||||
|
||||
dataVolume:
|
||||
enabled: $dataVolume.enabled
|
||||
size: "5Gi"
|
||||
storageClassName: ""
|
||||
@@ -0,0 +1,89 @@
|
||||
kafka:
|
||||
version: "4.0.0"
|
||||
metadataVersion: "4.0"
|
||||
timezone: "Asia/Seoul"
|
||||
|
||||
controller:
|
||||
replicas: 3
|
||||
storage:
|
||||
size: 50Gi
|
||||
class: longhorn
|
||||
resources:
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: 1
|
||||
memory: 2Gi
|
||||
|
||||
broker:
|
||||
replicas: 3
|
||||
storage:
|
||||
size: 50Gi
|
||||
class: longhorn
|
||||
resources:
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: 1
|
||||
memory: 2Gi
|
||||
|
||||
config:
|
||||
offsetsTopicReplicationFactor: 3
|
||||
transactionStateLogReplicationFactor: 3
|
||||
transactionStateLogMinIsr: 2
|
||||
defaultReplicationFactor: 3
|
||||
minInsyncReplicas: 2
|
||||
autoCreateTopicsEnable: false
|
||||
numPartitions: 3
|
||||
deleteTopicEnable: true
|
||||
|
||||
internalListener:
|
||||
enabled: true
|
||||
port: 9094
|
||||
tls: true
|
||||
|
||||
oauth:
|
||||
enabled: true
|
||||
keycloakUrl: "$KEYCLOAK_URL"
|
||||
keycloakRealm: "$KEYCLOAK_REALM"
|
||||
keycloakClientId: "$KEYCLOAK_CLIENT_ID"
|
||||
tlsSecretName: "keycloak-tls"
|
||||
|
||||
kafkaConnect:
|
||||
enabled: true
|
||||
image: paasup/kafka-connect:0.2
|
||||
replicas: 1
|
||||
|
||||
entityOperator:
|
||||
topicOperator:
|
||||
resources:
|
||||
requests:
|
||||
memory: 128Mi
|
||||
cpu: 100m
|
||||
limits:
|
||||
memory: 256Mi
|
||||
cpu: 200m
|
||||
userOperator:
|
||||
resources:
|
||||
requests:
|
||||
memory: 128Mi
|
||||
cpu: 100m
|
||||
limits:
|
||||
memory: 256Mi
|
||||
cpu: 200m
|
||||
|
||||
connectTopics:
|
||||
partitions: 1
|
||||
replicas: 3
|
||||
config:
|
||||
cleanupPolicy: compact
|
||||
retentionMs: 604800000
|
||||
segmentBytes: 1073741824
|
||||
|
||||
logging:
|
||||
kafka:
|
||||
rootLoggerLevel: INFO
|
||||
connect:
|
||||
rootLoggerLevel: INFO
|
||||
@@ -0,0 +1,52 @@
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: wbsong111/kafka-ui
|
||||
tag: "v1.3.0"
|
||||
pullPolicy: IfNotPresent
|
||||
yamlApplicationConfig:
|
||||
kafka:
|
||||
clusters:
|
||||
- name: kafka-cluster
|
||||
bootstrapServers: SASL_PLAINTEXT://kafka-cluster-kafka-tls-bootstrap.$kafka_cluster_namespace.svc.cluster.local:9093
|
||||
properties:
|
||||
security.protocol: SASL_PLAINTEXT
|
||||
sasl.mechanism: OAUTHBEARER
|
||||
sasl.jaas.config: |
|
||||
org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required
|
||||
oauth.token.endpoint.uri="$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/protocol/openid-connect/token"
|
||||
oauth.client.id="$KAFKA_CLIENT_ID"
|
||||
oauth.client.secret="$KAFKA_CLIENT_SECRET"
|
||||
oauth.ssl.truststore.location="/etc/kafka/secrets/truststore.jks"
|
||||
oauth.ssl.truststore.password="kafka";
|
||||
sasl.login.callback.handler.class: "io.strimzi.kafka.oauth.client.JaasClientOauthLoginCallbackHandler"
|
||||
auth:
|
||||
type: disabled
|
||||
|
||||
management:
|
||||
health:
|
||||
ldap:
|
||||
enabled: false
|
||||
|
||||
volumes:
|
||||
- name: truststore
|
||||
secret:
|
||||
secretName: truststore
|
||||
|
||||
volumeMounts:
|
||||
- name: truststore
|
||||
mountPath: /etc/kafka/secrets
|
||||
readOnly: true
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
kubernetes.io/ingress.class: apisix
|
||||
k8s.apisix.apache.org/plugin-config-name: oidc-keycloak-authz
|
||||
host: "{{ .Name }}.{{ .Domain }}"
|
||||
tls:
|
||||
enabled: true
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
@@ -0,0 +1,27 @@
|
||||
inferenceService:
|
||||
name: "{{ .Name }}"
|
||||
|
||||
model:
|
||||
args:
|
||||
- --backend=vllm
|
||||
- --model_name=$model.name
|
||||
- --dtype=float16
|
||||
storageUri: "$model.volume"
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: "8"
|
||||
memory: 16Gi
|
||||
nvidia.com/gpu: "1"
|
||||
requests:
|
||||
cpu: "4"
|
||||
memory: 8Gi
|
||||
nvidia.com/gpu: "1"
|
||||
|
||||
ingress:
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
hosts:
|
||||
- host: "{{ .Name }}-kserve.{{ .Namespace }}.{{ .Domain }}"
|
||||
tls:
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
@@ -0,0 +1 @@
|
||||
---
|
||||
@@ -0,0 +1,91 @@
|
||||
langflow:
|
||||
backend:
|
||||
replicaCount: 1
|
||||
image:
|
||||
repository: langflowai/langflow-backend
|
||||
tag: "v1.1.1"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 0.5
|
||||
memory: 1Gi
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
backendOnly: true
|
||||
env:
|
||||
- name: LANGFLOW_PORT
|
||||
value: "7860"
|
||||
- name: LANGFLOW_LOG_LEVEL
|
||||
value: "info"
|
||||
- name: LANGFLOW_AUTO_LOGIN
|
||||
value: "True"
|
||||
- name: LANGFLOW_SUPERUSER
|
||||
value: "$langflow.backend.env.username"
|
||||
- name: LANGFLOW_SUPERUSER_PASSWORD
|
||||
value: "$langflow.backend.env.password"
|
||||
externalDatabase:
|
||||
enabled: true
|
||||
driver:
|
||||
value: "postgresql"
|
||||
host:
|
||||
value: "{{ .Name }}-ide-postgresql-service"
|
||||
port:
|
||||
value: "5432"
|
||||
database:
|
||||
value: "langflow-db"
|
||||
user:
|
||||
value: "langflow"
|
||||
password:
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
key: "password"
|
||||
name: "$INFISICAL_SECRET"
|
||||
sqlite:
|
||||
enabled: false
|
||||
probe:
|
||||
failureThreshold: 3
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
initialDelaySeconds: 5
|
||||
frontend:
|
||||
enabled: true
|
||||
replicaCount: 1
|
||||
image:
|
||||
repository: langflowai/langflow-frontend
|
||||
tag: "v1.1.1"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 0.3
|
||||
memory: 512Mi
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
k8s.apisix.apache.org/plugin-config-name: oidc-keycloak-authz
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
servicePort: 7860
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
fullnameOverride: "{{ .Name }}-ide-postgresql-service"
|
||||
auth:
|
||||
username: "langflow"
|
||||
password: ""
|
||||
database: "langflow-db"
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
primary:
|
||||
persistence:
|
||||
size: 5Gi
|
||||
storageClass: ""
|
||||
@@ -0,0 +1,100 @@
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
|
||||
langfuse:
|
||||
logging:
|
||||
level: info
|
||||
salt:
|
||||
value: "$langfuse.salt.value"
|
||||
encryptionKey:
|
||||
value: "$langfuse.encryptionKey.value"
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
enabled: true
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
web:
|
||||
image:
|
||||
repository: langfuse/langfuse
|
||||
resources: {}
|
||||
replicas: 1
|
||||
worker:
|
||||
image:
|
||||
repository: langfuse/langfuse-worker
|
||||
resources: {}
|
||||
replicas: 1
|
||||
|
||||
nextauth:
|
||||
url: "https://{{ .Name }}.{{ .Domain }}"
|
||||
secret:
|
||||
value: "$langfuse.nextauth.secret.value"
|
||||
additionalEnv:
|
||||
- name: AUTH_DISABLE_USERNAME_PASSWORD
|
||||
value: "true"
|
||||
- name: AUTH_KEYCLOAK_CLIENT_ID
|
||||
value: "$KEYCLOAK_CLIENT_ID"
|
||||
- name: "AUTH_KEYCLOAK_CLIENT_SECRET"
|
||||
value: "$KEYCLOAK_CLIENT_SECRET"
|
||||
- name: "AUTH_KEYCLOAK_ISSUER"
|
||||
value: "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM"
|
||||
- name: NODE_TLS_REJECT_UNAUTHORIZED
|
||||
value: "0"
|
||||
|
||||
postgresql:
|
||||
auth:
|
||||
username: "postgres"
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
secretKeys:
|
||||
userPasswordKey: "postgres-password"
|
||||
|
||||
migration:
|
||||
autoMigrate: true
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
size: 5Gi
|
||||
|
||||
redis:
|
||||
auth:
|
||||
enabled: true
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
existingSecretPasswordKey: "valkey-password"
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
size: 5Gi
|
||||
|
||||
clickhouse:
|
||||
deploy: true
|
||||
auth:
|
||||
username: default
|
||||
password: ""
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
existingSecretKey: "admin-password"
|
||||
|
||||
shards: 1
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
size: 10Gi
|
||||
|
||||
s3:
|
||||
deploy: false
|
||||
bucket: "$s3.bucket"
|
||||
region: "auto"
|
||||
endpoint: "https://$s3.endpoint"
|
||||
accessKeyId:
|
||||
value: "$s3.accessKeyId.value"
|
||||
secretAccessKey:
|
||||
value: "$s3.secretAccessKey.value"
|
||||
@@ -0,0 +1,24 @@
|
||||
masterkey: "$masterkey"
|
||||
|
||||
proxy_config:
|
||||
model_list: []
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- secretName: "{{ .Name }}-tls-secret"
|
||||
hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
|
||||
dip:
|
||||
mainPath: ui
|
||||
@@ -0,0 +1,142 @@
|
||||
image:
|
||||
repository: paasup/mlflow
|
||||
tag: "v3.11.1-oidc"
|
||||
|
||||
initImages:
|
||||
dbchecker:
|
||||
tag: "1.37"
|
||||
iniFileInitializer:
|
||||
tag: "1.37"
|
||||
mlflowDbMigration:
|
||||
repository: paasup/mlflow
|
||||
tag: "v3.11.1-oidc"
|
||||
|
||||
fullnameOverride: "{{ .Name }}"
|
||||
|
||||
backendStore:
|
||||
databaseMigration: true
|
||||
databaseConnectionCheck: true
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
auth:
|
||||
username: mlflow
|
||||
password: "$postgresql.auth.password"
|
||||
database: mlflow
|
||||
image:
|
||||
repository: bitnamilegacy/postgresql
|
||||
primary:
|
||||
persistence:
|
||||
enabled: true
|
||||
|
||||
artifactRoot:
|
||||
proxiedArtifactStorage: true
|
||||
defaultArtifactsDestination: "s3://mlflow/artifacts"
|
||||
s3:
|
||||
enabled: true
|
||||
bucket: mlflow
|
||||
path: artifacts
|
||||
awsAccessKeyId: "$artifactRoot.s3.awsAccessKeyId"
|
||||
awsSecretAccessKey: "$artifactRoot.s3.awsSecretAccessKey"
|
||||
|
||||
|
||||
extraEnvVars:
|
||||
MLFLOW_S3_ENDPOINT_URL: "$extraEnvVars.s3endpoint"
|
||||
MLFLOW_S3_IGNORE_TLS: "true"
|
||||
SSL_CERT_FILE: "/etc/ssl/certs/custom-ca.crt"
|
||||
REQUESTS_CA_BUNDLE: "/etc/ssl/certs/custom-ca.crt"
|
||||
HTTPX_CA_BUNDLE: "/etc/ssl/certs/custom-ca.crt"
|
||||
|
||||
OIDC_CLIENT_ID: "$KEYCLOAK_CLIENT_ID"
|
||||
OIDC_DISCOVERY_URL: "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/.well-known/openid-configuration"
|
||||
OIDC_REDIRECT_URI: "https://{{ .Name }}.{{ .Domain }}/callback"
|
||||
OIDC_SCOPE: "openid email profile"
|
||||
OIDC_GROUPS_ATTRIBUTE: "mlflow-groups"
|
||||
OIDC_GROUP_NAME: "paasup"
|
||||
OIDC_ADMIN_GROUP_NAME: "mlflow-admin"
|
||||
OIDC_USERS_DB_URI: "postgresql://mlflow:$postgresql.auth.password@{{ .Name }}-postgresql:5432/mlflow"
|
||||
DEFAULT_MLFLOW_PERMISSION: "READ"
|
||||
AUTOMATIC_LOGIN_REDIRECT: "true"
|
||||
OIDC_ALEMBIC_VERSION_TABLE: "mlflow_oidc_alembic_version"
|
||||
|
||||
MLFLOW_ENABLE_WORKSPACES: "true"
|
||||
OIDC_WORKSPACE_DEFAULT_PERMISSION: "EDIT"
|
||||
OIDC_WORKSPACE_DETECTION_PLUGIN: "mlflow_workspace_detector"
|
||||
PYTHONPATH: "/opt/mlflow-plugins"
|
||||
WORKSPACE_CACHE_MAX_SIZE: "1024"
|
||||
WORKSPACE_CACHE_TTL_SECONDS: "300"
|
||||
PERMISSION_SOURCE_ORDER: "user,group,regex,group-regex"
|
||||
MLFLOW_LOGGING_LEVEL: "DEBUG"
|
||||
|
||||
extraSecretNamesForEnvFrom:
|
||||
- mlflow-oidc-secret
|
||||
|
||||
auth:
|
||||
enabled: false
|
||||
|
||||
log:
|
||||
enabled: false
|
||||
|
||||
extraArgs:
|
||||
appName: "oidc-auth"
|
||||
uvicornOpts: "--timeout-keep-alive 600"
|
||||
allowedHosts: "{{ .Name }}.{{ .Domain }}"
|
||||
corsAllowedOrigins: "https://{{ .Name }}.{{ .Domain }}"
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 80
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- secretName: "{{ .Name }}-tls-secret"
|
||||
hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
|
||||
extraVolumes:
|
||||
- name: keycloak-tls
|
||||
secret:
|
||||
secretName: keycloak-tls
|
||||
- name: workspace-plugin
|
||||
configMap:
|
||||
name: mlflow-workspace-plugin
|
||||
- name: hooks-patch
|
||||
configMap:
|
||||
name: mlflow-hooks-patch
|
||||
|
||||
extraVolumeMounts:
|
||||
- name: keycloak-tls
|
||||
mountPath: /etc/ssl/certs/custom-ca.crt
|
||||
subPath: ca.crt
|
||||
readOnly: true
|
||||
- name: workspace-plugin
|
||||
mountPath: /opt/mlflow-plugins
|
||||
- name: hooks-patch
|
||||
mountPath: /usr/local/lib/python3.10/site-packages/mlflow_oidc_auth/hooks/before_request.py
|
||||
subPath: before_request.py
|
||||
readOnly: true
|
||||
|
||||
serviceMonitor:
|
||||
enabled: false
|
||||
namespace: monitoring
|
||||
labels:
|
||||
release: prometheus
|
||||
@@ -0,0 +1,77 @@
|
||||
ngcAPIKey: "$ngcAPIKey"
|
||||
|
||||
imagePullSecrets:
|
||||
- name: nvcrimagepullsecret
|
||||
registry: nvcr.io
|
||||
username: "$oauthtoken"
|
||||
password: "$ngcAPIKey"
|
||||
|
||||
data-store:
|
||||
enabled: true
|
||||
external:
|
||||
rootUrl: "https://nemo-datastore-{{ .Name }}.{{ .Domain }}"
|
||||
domain: "nemo-datastore-{{ .Name }}.{{ .Domain }}"
|
||||
|
||||
customizer:
|
||||
enabled: true
|
||||
customizerConfig:
|
||||
meta/llama-3.2-1b-instruct:
|
||||
enabled: true
|
||||
|
||||
nim:
|
||||
enabled: false
|
||||
|
||||
evaluator:
|
||||
enabled: true
|
||||
argoWorkflows:
|
||||
enabled: true
|
||||
crds:
|
||||
install: false
|
||||
|
||||
guardrails:
|
||||
enabled: true
|
||||
|
||||
nemo-operator:
|
||||
enabled: true
|
||||
|
||||
nim-operator:
|
||||
enabled: true
|
||||
|
||||
dgxc-admission-controller:
|
||||
enabled: false
|
||||
|
||||
entity-store:
|
||||
enabled: true
|
||||
|
||||
volcano:
|
||||
enabled: true
|
||||
|
||||
deployment-management:
|
||||
enabled: true
|
||||
deployments:
|
||||
defaultStorageClass: "longhorn"
|
||||
|
||||
nim-proxy:
|
||||
enabled: true
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: root-ca-issuer
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
className: "apisix"
|
||||
tls:
|
||||
- hosts:
|
||||
- "nemo-{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
hosts:
|
||||
default:
|
||||
name: "nemo-{{ .Name }}.{{ .Domain }}"
|
||||
nimProxy:
|
||||
name: "nim-{{ .Name }}.{{ .Domain }}"
|
||||
dataStore:
|
||||
name: "data-store-{{ .Name }}.{{ .Domain }}"
|
||||
|
||||
virtualService:
|
||||
enabled: false
|
||||
@@ -0,0 +1,25 @@
|
||||
nimService:
|
||||
name: "{{ .Name }}"
|
||||
existingAuthSecret: "$INFISICAL_SECRET"
|
||||
existingPVC: ""
|
||||
|
||||
env:
|
||||
- name: NIM_PEFT_SOURCE
|
||||
value: http://nemo-entity-store.nemo:8000
|
||||
- name: NIM_SERVED_MODEL_NAME
|
||||
value: "$nimService.modelName"
|
||||
- name: NIM_MODEL_NAME
|
||||
value: "$nimService.modelName"
|
||||
- name: NIM_PEFT_REFRESH_INTERVAL
|
||||
value: "30"
|
||||
|
||||
image:
|
||||
repository: "$image.repository"
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "$image.tag"
|
||||
|
||||
imagePullSecrets:
|
||||
- name: nvcrimagepullsecret
|
||||
registry: nvcr.io
|
||||
username: "$oauthtoken"
|
||||
password: "$imagePullSecrets.password"
|
||||
@@ -0,0 +1,51 @@
|
||||
image:
|
||||
repository: ollama/ollama
|
||||
tag: 0.5.4
|
||||
|
||||
runtimeClassName: nvidia
|
||||
|
||||
persistentVolume:
|
||||
enabled: true
|
||||
size: "30Gi"
|
||||
storageClass: longhorn
|
||||
|
||||
resources:
|
||||
requests:
|
||||
memory: 4096Mi
|
||||
cpu: 2000m
|
||||
limits:
|
||||
memory: 8192Mi
|
||||
cpu: 4000m
|
||||
|
||||
ollama:
|
||||
gpu:
|
||||
enabled: ture
|
||||
type: "nvidia"
|
||||
number: 1
|
||||
|
||||
models:
|
||||
pull:
|
||||
- mistral
|
||||
#- benedict/linkbricks-mistral-nemo-korean:12b
|
||||
#- benedict/linkbricks-gemma2-korean:27b
|
||||
#- qwen2.5-coder:32b
|
||||
#- codeqwen:7b-chat
|
||||
# - llama3
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
k8s.apisix.apache.org/plugin-config-name: oidc-keycloak-authz
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
@@ -0,0 +1,64 @@
|
||||
ollama:
|
||||
enabled: false
|
||||
tika:
|
||||
enabled: false
|
||||
websocket:
|
||||
enabled: false
|
||||
redis-cluster:
|
||||
enabled: false
|
||||
ingress:
|
||||
enabled: true
|
||||
class: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
host: "{{ .Name }}.{{ .Domain }}"
|
||||
tls: true
|
||||
existingSecret: "{{ .Name }}-tls-secret"
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 2Gi
|
||||
existingClaim: ""
|
||||
subPath: ""
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
storageClass: ""
|
||||
selector: {}
|
||||
annotations: {}
|
||||
extraEnvVars:
|
||||
- name: OPENAI_API_KEY
|
||||
value: "$extraEnvVars"
|
||||
- name: OAUTH_CLIENT_ID
|
||||
value: $KEYCLOAK_CLIENT_ID
|
||||
- name: OAUTH_CLIENT_SECRET
|
||||
value: $KEYCLOAK_CLIENT_SECRET
|
||||
- name: OPENID_PROVIDER_URL
|
||||
value: $KEYCLOAK_URL/realms/$KEYCLOAK_REALM/.well-known/openid-configuration
|
||||
- name: OAUTH_PROVIDER_NAME
|
||||
value: paasup
|
||||
- name: OAUTH_SCOPES
|
||||
value: "openid email profile"
|
||||
- name: ENABLE_LOGIN_FORM
|
||||
value: "true"
|
||||
- name: SSL_CERT_FILE
|
||||
value: "/etc/ssl/certs/keycloak/ca.crt"
|
||||
- name: ENABLE_OAUTH_SIGNUP
|
||||
value: "true"
|
||||
- name: OAUTH_MERGE_ACCOUNTS_BY_EMAIL
|
||||
value: "true"
|
||||
- name: DEFAULT_USER_ROLE
|
||||
value: user
|
||||
- name: ENV
|
||||
value: prod
|
||||
|
||||
volumeMounts:
|
||||
initContainer: []
|
||||
container:
|
||||
- name: "keycloak-tls"
|
||||
mountPath: "/etc/ssl/certs/keycloak"
|
||||
|
||||
volumes:
|
||||
- name: "keycloak-tls"
|
||||
secret:
|
||||
secretName: keycloak-tls
|
||||
@@ -0,0 +1,47 @@
|
||||
global:
|
||||
imageRegistry: ""
|
||||
|
||||
postgresql:
|
||||
username: postgres
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
|
||||
maxConnections: "200"
|
||||
sharedPreloadLibraries: "repmgr, pgaudit, pg_stat_statements, pgoutput"
|
||||
|
||||
extendedConf: |-
|
||||
wal_level = logical
|
||||
max_replication_slots = 4
|
||||
max_wal_senders = 4
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
extraEnvVars:
|
||||
- name: TZ
|
||||
value: Asia/Seoul
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 512Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 1024Mi
|
||||
|
||||
tolerations: []
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
pgpool:
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
|
||||
replicaCount: 0
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
size: 1Gi
|
||||
|
||||
volumePermissions:
|
||||
enabled: true
|
||||
podSecurityContext:
|
||||
runAsUser: 0
|
||||
@@ -0,0 +1,48 @@
|
||||
images:
|
||||
repository: docker.io/qdrant/qdrant
|
||||
tag: v1.12.4
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
resources: {}
|
||||
|
||||
persistence:
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
size: 10Gi
|
||||
storageClassName: ""
|
||||
|
||||
config:
|
||||
log_level: INFO
|
||||
cluster:
|
||||
enabled: true
|
||||
p2p:
|
||||
port: 6335
|
||||
consensus:
|
||||
tick_period_ms: 100
|
||||
|
||||
apiKey: false
|
||||
readOnlyApiKey: false
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
k8s.apisix.apache.org/plugin-config-name: oidc-keycloak-authz
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
servicePort: 6333
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
|
||||
dip:
|
||||
mainPath: dashboard
|
||||
@@ -0,0 +1,131 @@
|
||||
fullnameOverride: "{{ .Name }}"
|
||||
|
||||
env:
|
||||
DOC_ENGINE: infinity
|
||||
|
||||
MYSQL_PASSWORD: "$env.mysqlPassword"
|
||||
MYSQL_DBNAME: rag_flow
|
||||
|
||||
MINIO_ROOT_USER: rag_flow
|
||||
MINIO_PASSWORD: "$env.minioPassword"
|
||||
|
||||
REDIS_PASSWORD: "$env.redisPassword"
|
||||
|
||||
RAGFLOW_IMAGE: infiniflow/ragflow:v0.20.1-slim
|
||||
|
||||
TIMEZONE: "Asia/Seoul"
|
||||
|
||||
DOC_BULK_SIZE: 4
|
||||
|
||||
EMBEDDING_BATCH_SIZE: 16
|
||||
|
||||
REQUESTS_CA_BUNDLE: /tmp/ca.crt
|
||||
SSL_CERT_FILE: /tmp/ca.crt
|
||||
|
||||
ragflow:
|
||||
|
||||
service_conf:
|
||||
oauth:
|
||||
oidc:
|
||||
display_name: "KEYCLOAK"
|
||||
client_id: "$KEYCLOAK_CLIENT_ID"
|
||||
client_secret: "$KEYCLOAK_CLIENT_SECRET"
|
||||
issuer: "$KEYCLOAK_URL/realms/$KEYCLOAK_REALM"
|
||||
scope: "openid email profile"
|
||||
redirect_uri: "https://{{ .Name }}.{{ .Domain }}/v1/user/oauth/callback/oidc"
|
||||
|
||||
llm_factories:
|
||||
|
||||
volumes:
|
||||
- name: keycloak-tls
|
||||
secret:
|
||||
secretName: keycloak-tls
|
||||
|
||||
volumeMounts:
|
||||
- name: keycloak-tls
|
||||
mountPath: /tmp/ca.crt
|
||||
subPath: ca.crt
|
||||
readOnly: true
|
||||
|
||||
deployment:
|
||||
strategy:
|
||||
resources:
|
||||
service:
|
||||
type: ClusterIP
|
||||
api:
|
||||
service:
|
||||
enabled: true
|
||||
type: ClusterIP
|
||||
|
||||
infinity:
|
||||
image:
|
||||
repository: infiniflow/infinity
|
||||
tag: v0.6.0-dev5
|
||||
storage:
|
||||
className:
|
||||
capacity: 5Gi
|
||||
deployment:
|
||||
strategy:
|
||||
resources:
|
||||
service:
|
||||
type: ClusterIP
|
||||
|
||||
minio:
|
||||
image:
|
||||
repository: quay.io/minio/minio
|
||||
tag: RELEASE.2023-12-20T01-00-02Z
|
||||
storage:
|
||||
className:
|
||||
capacity: 5Gi
|
||||
deployment:
|
||||
strategy:
|
||||
resources:
|
||||
service:
|
||||
type: ClusterIP
|
||||
|
||||
mysql:
|
||||
image:
|
||||
repository: mysql
|
||||
tag: 8.0.39
|
||||
storage:
|
||||
className:
|
||||
capacity: 5Gi
|
||||
deployment:
|
||||
strategy:
|
||||
resources:
|
||||
service:
|
||||
type: ClusterIP
|
||||
|
||||
redis:
|
||||
image:
|
||||
repository: valkey/valkey
|
||||
tag: 8
|
||||
storage:
|
||||
className:
|
||||
capacity: 5Gi
|
||||
persistence:
|
||||
enabled: true
|
||||
deployment:
|
||||
strategy:
|
||||
resources:
|
||||
service:
|
||||
type: ClusterIP
|
||||
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: root-ca-issuer
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
k8s.apisix.apache.org/plugin-config-name: https-redirect
|
||||
hosts:
|
||||
- host: "{{ .Name }}.{{ .Domain }}"
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- secretName: "{{ .Name }}-tls-secret"
|
||||
hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
@@ -0,0 +1,42 @@
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: kubeflow/spark-operator
|
||||
tag: "2.0.2"
|
||||
|
||||
controller:
|
||||
workers: 10
|
||||
|
||||
logLevel: info
|
||||
|
||||
uiService:
|
||||
enable: true
|
||||
uiIngress:
|
||||
enable: true
|
||||
urlFormat: "{{ .Name }}.{{ .Domain }}/{{`{{$appNamespace}}`}}/{{`{{$appName}}`}}"
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 300Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 300Mi
|
||||
|
||||
workqueueRateLimiter:
|
||||
bucketQPS: 50
|
||||
bucketSize: 500
|
||||
maxDelay:
|
||||
enable: true
|
||||
duration: 6h
|
||||
|
||||
webhook:
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 300Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 300Mi
|
||||
|
||||
spark:
|
||||
jobNamespaces: []
|
||||
@@ -0,0 +1,33 @@
|
||||
timeZone: Asia/Seoul
|
||||
|
||||
image:
|
||||
repository: starrocks/operator
|
||||
tag: "v1.11.0"
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 400Mi
|
||||
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
webhook:
|
||||
enabled: true
|
||||
port: 9443
|
||||
certManager:
|
||||
enabled: false
|
||||
|
||||
metrics:
|
||||
enabled: true
|
||||
port: 8080
|
||||
serviceMonitor:
|
||||
enabled: false
|
||||
@@ -0,0 +1,74 @@
|
||||
initPassword:
|
||||
enabled: true
|
||||
password: ""
|
||||
passwordSecret: "$INFISICAL_SECRET"
|
||||
|
||||
timeZone: Asia/Seoul
|
||||
|
||||
starrocksCluster:
|
||||
enabledBe: false
|
||||
enabledCn: true
|
||||
|
||||
starrocksFESpec:
|
||||
replicas: 3
|
||||
runAsNonRoot: "false"
|
||||
service:
|
||||
type: ClusterIP
|
||||
resources:
|
||||
requests:
|
||||
cpu: 300m
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: 2
|
||||
memory: 4Gi
|
||||
storageSpec:
|
||||
name: fe
|
||||
storageClassName: "longhorn"
|
||||
storageSize: 10Gi
|
||||
logStorageSize: 5Gi
|
||||
|
||||
nodeSelector: {}
|
||||
affinity: {}
|
||||
tolerations: []
|
||||
|
||||
config: |
|
||||
run_mode = shared_data
|
||||
cloud_native_storage_type = S3
|
||||
aws_s3_endpoint = $starrocksFESpec.config.endpoint
|
||||
|
||||
aws_s3_path = $starrocksFESpec.config.path
|
||||
|
||||
aws_s3_access_key = $starrocksFESpec.config.accesskey
|
||||
aws_s3_secret_key = $starrocksFESpec.config.secretkey
|
||||
aws_s3_use_instance_profile = false
|
||||
aws_s3_use_aws_sdk_default_behavior = false
|
||||
|
||||
enable_load_volume_from_conf = true
|
||||
|
||||
|
||||
starrocksCnSpec:
|
||||
replicas: 3
|
||||
runAsNonRoot: "false"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 300m
|
||||
memory: 2Gi
|
||||
limits:
|
||||
cpu: 2
|
||||
memory: 4Gi
|
||||
storageSpec:
|
||||
name: be
|
||||
storageClassName: "longhorn"
|
||||
storageSize: 15Gi
|
||||
logStorageSize: 10Gi
|
||||
nodeSelector: {}
|
||||
affinity: {}
|
||||
tolerations: []
|
||||
autoScalingPolicy: {}
|
||||
|
||||
|
||||
starrocksFeProxySpec:
|
||||
enabled: true
|
||||
resolver: "kube-dns.kube-system.svc.cluster.local"
|
||||
service:
|
||||
type: ClusterIP
|
||||
@@ -0,0 +1,23 @@
|
||||
defaultImageRegistry: "quay.io"
|
||||
defaultImageRepository: "strimzi"
|
||||
defaultImageTag: "0.47.0"
|
||||
|
||||
replicas: 1
|
||||
watchNamespaces: []
|
||||
watchAnyNamespace: true
|
||||
|
||||
logLevel: INFO
|
||||
logConfiguration: ""
|
||||
|
||||
fullReconciliationIntervalMs: 120000
|
||||
operationTimeoutMs: 300000
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: 384Mi
|
||||
cpu: 1000m
|
||||
requests:
|
||||
memory: 384Mi
|
||||
cpu: 200m
|
||||
|
||||
extraEnvs: []
|
||||
@@ -0,0 +1,191 @@
|
||||
configOverrides:
|
||||
mapbox: |
|
||||
MAPBOX_API_KEY = '$configOverrides.mapbox'
|
||||
ENABLE_PROXY_FIX = True
|
||||
FEATURE_FLAGS = {
|
||||
"DYNAMIC_PLUGINS": True
|
||||
}
|
||||
secret: |
|
||||
SECRET_KEY = '$configOverrides.secret'
|
||||
my_override: |
|
||||
FEATURE_FLAGS = {
|
||||
"ENABLE_TEMPLATE_REMOVE_FILTERS" : True,
|
||||
"ENABLE_TEMPLATE_PROCESSING": True,
|
||||
"DASHBOARD_NATIVE_FILTERS" : True,
|
||||
"DASHBOARD_NATIVE_FILTERS_SET": True
|
||||
}
|
||||
enable_oauth: |
|
||||
from flask_appbuilder.security.manager import (AUTH_DB, AUTH_OAUTH)
|
||||
from superset.security import SupersetSecurityManager
|
||||
from flask import request
|
||||
|
||||
import requests
|
||||
import logging
|
||||
|
||||
class CustomSsoSecurityManager(SupersetSecurityManager):
|
||||
def oauth_user_info(self, provider, response=None):
|
||||
me = self.appbuilder.sm.oauth_remotes[provider].get("openid-connect/userinfo")
|
||||
me.raise_for_status()
|
||||
data = me.json()
|
||||
|
||||
logging.debug("User info from Keycloak: %s", data)
|
||||
|
||||
role = []
|
||||
username = data.get("preferred_username", "")
|
||||
host = request.host
|
||||
dip_api_url = "http://dip-api.platform.svc.cluster.local:8087"
|
||||
|
||||
url = f"{dip_api_url}/gwapi/v1/projectusers/{username}"
|
||||
request_data = {"url": f"https://{host}"}
|
||||
response = requests.post(url, json=request_data, headers={"Content-Type": "application/json"}, verify=False)
|
||||
|
||||
if response.status_code == 200:
|
||||
logging.info(f"API 요청 성공: {response.status_code}, {response.text}")
|
||||
role.append(response.json().get("roleName",""))
|
||||
else:
|
||||
logging.info(f"API 요청 실패: {response.status_code}, {response.text}")
|
||||
role.append("")
|
||||
|
||||
return {
|
||||
"username": data.get("preferred_username", ""),
|
||||
"first_name": data.get("given_name", ""),
|
||||
"last_name": data.get("family_name", ""),
|
||||
"email": data.get("email", ""),
|
||||
"role_keys": role,
|
||||
}
|
||||
|
||||
AUTH_TYPE = AUTH_OAUTH
|
||||
AUTH_USER_REGISTRATION = True
|
||||
AUTH_USER_REGISTRATION_ROLE = "Public"
|
||||
AUTH_ROLES_SYNC_AT_LOGIN = True
|
||||
CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager
|
||||
|
||||
OAUTH_PROVIDERS = [
|
||||
{
|
||||
"name": "keycloak",
|
||||
"icon": "fa-key",
|
||||
"token_key": "access_token",
|
||||
"remote_app": {
|
||||
"client_id": "$KEYCLOAK_CLIENT_ID",
|
||||
"client_secret": "$KEYCLOAK_CLIENT_SECRET",
|
||||
"client_kwargs": {
|
||||
"scope": "openid email profile",
|
||||
'verify': False
|
||||
},
|
||||
'server_metadata_url': '$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/.well-known/openid-configuration',
|
||||
'api_base_url': '$KEYCLOAK_URL/realms/$KEYCLOAK_REALM/protocol/'
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
AUTH_ROLES_MAPPING = {
|
||||
'root': ['Admin'],
|
||||
'admin': ['Admin'],
|
||||
'manager': ['Admin'],
|
||||
'member': ['Alpha'],
|
||||
}
|
||||
|
||||
bootstrapScript: |
|
||||
#!/bin/bash
|
||||
apt update
|
||||
apt install -y pkg-config build-essential default-libmysqlclient-dev libpq-dev
|
||||
pip install sqlalchemy-drill psycopg2-binary Authlib
|
||||
pip install mysqlclient
|
||||
|
||||
image:
|
||||
repository: apachesuperset.docker.scarf.sh/apache/superset
|
||||
tag: ~
|
||||
pullPolicy: IfNotPresent
|
||||
resources: {}
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
ingressClassName: "apisix"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "root-ca-issuer"
|
||||
cert-manager.io/duration: 8760h
|
||||
cert-manager.io/renew-before: 720h
|
||||
path: /
|
||||
pathType: Prefix
|
||||
hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Name }}.{{ .Domain }}"
|
||||
secretName: "{{ .Name }}-tls-secret"
|
||||
|
||||
supersetNode:
|
||||
replicas:
|
||||
enabled: true
|
||||
replicaCount: 1
|
||||
|
||||
connections:
|
||||
redis_host: "{{ .Name }}-redis-headless"
|
||||
redis_port: "6379"
|
||||
redis_user: ""
|
||||
redis_cache_db: "1"
|
||||
redis_celery_db: "0"
|
||||
redis_ssl:
|
||||
enabled: false
|
||||
ssl_cert_reqs: CERT_NONE
|
||||
db_host: "{{ .Name }}-postgresql"
|
||||
db_port: "5432"
|
||||
db_user: superset
|
||||
db_pass: "$supersetNode.connections.db_pass"
|
||||
db_name: superset
|
||||
resources: {}
|
||||
|
||||
supersetWorker:
|
||||
replicas:
|
||||
enabled: true
|
||||
replicaCount: 1
|
||||
resources: {}
|
||||
|
||||
supersetCeleryBeat:
|
||||
enabled: false
|
||||
resources: {}
|
||||
|
||||
supersetCeleryFlower:
|
||||
enabled: false
|
||||
replicaCount: 1
|
||||
resources: {}
|
||||
|
||||
postgresql:
|
||||
enabled: true
|
||||
auth:
|
||||
username: superset
|
||||
password: ""
|
||||
database: superset
|
||||
existingSecret: "$INFISICAL_SECRET"
|
||||
image:
|
||||
registry: docker.io
|
||||
primary:
|
||||
resources:
|
||||
limits: {}
|
||||
requests:
|
||||
memory: 256Mi
|
||||
cpu: 250m
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
size: 8Gi
|
||||
|
||||
redis:
|
||||
enabled: true
|
||||
architecture: standalone
|
||||
auth:
|
||||
enabled: false
|
||||
existingSecret: ""
|
||||
existingSecretPasswordKey: ""
|
||||
image:
|
||||
registry: docker.io
|
||||
master:
|
||||
resources:
|
||||
limits: {}
|
||||
requests: {}
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: ""
|
||||
size: 8Gi
|
||||
Reference in New Issue
Block a user