This is an automated email from the ASF dual-hosted git repository.
aicam pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/texera.git
The following commit(s) were added to refs/heads/main by this push:
new be158d73ee chore: Reduce Texera k8 Resources for Development (#4165)
be158d73ee is described below
commit be158d73eebdf657e3d38e80c46b7bc25f89c46f
Author: Matthew B. <[email protected]>
AuthorDate: Fri Mar 27 08:40:15 2026 -0700
chore: Reduce Texera k8 Resources for Development (#4165)
---
bin/k8s/values-development.yaml | 365 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 365 insertions(+)
diff --git a/bin/k8s/values-development.yaml b/bin/k8s/values-development.yaml
new file mode 100644
index 0000000000..cbf0183f00
--- /dev/null
+++ b/bin/k8s/values-development.yaml
@@ -0,0 +1,365 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+texera:
+ # Container image registry and tag for all Texera services
+ # Override these to use a different registry or version
+ imageRegistry: ghcr.io/apache
+ imageTag: latest
+
+global:
+ # Required by Bitnami sub-charts (postgresql, minio) to allow custom images
+ security:
+ allowInsecureImages: true
+
+# Persistence Configuration
+# This controls how Persistent Volumes (PVs) and Persistent Volume Claims
(PVCs) are managed
+#
+# removeAfterUninstall:
+# - true: PVCs will be deleted when helm uninstalls the chart
+# - false: PVCs will remain after uninstall to preserve the data
+persistence:
+ removeAfterUninstall: true
+ minioHostLocalPath: ""
+ postgresqlHostLocalPath: ""
+
+# Part 1: the configuration of Postgres, Minio and LakeFS
+postgresql:
+ image:
+ repository: groonga/pgroonga
+ tag: latest
+ debug: true
+ auth:
+ postgresPassword: root_password # for executing init script with superuser
+ primary:
+ containerSecurityContext:
+ # Disabled because groonga/pgroonga needs to write a lock/socket file to
/var/run/postgresql
+ readOnlyRootFilesystem: false
+ livenessProbe:
+ initialDelaySeconds: 30 # increase this if the launching of postgresql
is slow on the cluster
+ readinessProbe:
+ initialDelaySeconds: 30 # increase this if the launching of postgresql
is slow on the cluster
+ resources:
+ requests:
+ cpu: "0.25"
+ memory: "256Mi"
+ limits:
+ cpu: "1"
+ memory: "256Mi"
+ persistence:
+ enabled: true
+ size: 10Gi
+ storageClass: local-path
+ existingClaim: "postgresql-data-pvc"
+ initdb:
+ scriptsConfigMap: "postgresql-init-script"
+
+minio:
+ mode: standalone
+ image:
+ repository: bitnamilegacy/minio
+ tag: 2025.3.12-debian-12-r0
+ resources:
+ requests:
+ memory: "256Mi"
+ limits:
+ memory: "256Mi"
+ gateway:
+ enabled: false
+ hostname: "" # the url for the minio, e.g. "minio.example.com"
+ tlsSecretName: "" # e.g. "minio-tls-secret"
+ auth:
+ rootUser: texera_minio
+ rootPassword: password
+ service:
+ # In production, use ClusterIP to avoid exposing the minio to the internet
+ # type: ClusterIP
+ type: NodePort
+ nodePorts:
+ api: 31000
+ persistence:
+ enabled: true
+ size: 20Gi
+ storageClass: local-path
+ existingClaim: "minio-data-pvc"
+
+lakefs:
+ secrets:
+ authEncryptSecretKey: random_string_for_lakefs
+ databaseConnectionString:
postgres://postgres:root_password@texera-postgresql:5432/texera_lakefs?sslmode=disable
+ auth:
+ username: texera-admin
+ accessKey: AKIAIOSFOLKFSSAMPLES
+ secretKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
+ service:
+ port: 8000
+ lakefsConfig: |
+ database:
+ type: postgres
+ blockstore:
+ type: s3
+ s3:
+ endpoint: http://texera-minio:9000
+ pre_signed_expiry: 15m
+ pre_signed_endpoint: http://localhost:31000
+ force_path_style: true
+ credentials:
+ access_key_id: texera_minio
+ secret_access_key: password
+
+# Part2: configurations of Texera-related micro services
+texeraImages:
+ pullPolicy: Always
+
+# Example data loader configuration
+exampleDataLoader:
+ enabled: true
+ imageName: texera-example-data-loader
+ username: texera
+ password: texera
+ datasetDir: datasets
+ workflowDir: workflows
+
+webserver:
+ name: webserver
+ numOfPods: 1 # Number of pods for the Texera deployment
+ imageName: texera-dashboard-service
+ service:
+ type: ClusterIP
+ port: 8080
+ resources:
+ requests:
+ cpu: 10m
+ memory: 256Mi
+ limits:
+ cpu: 1000m
+ memory: 1Gi
+
+workflowComputingUnitManager:
+ name: workflow-computing-unit-manager
+ numOfPods: 1
+ serviceAccountName: workflow-computing-unit-manager-service-account
+ imageName: texera-workflow-computing-unit-managing-service
+ service:
+ type: ClusterIP
+ port: 8888
+ resources:
+ requests:
+ cpu: 10m
+ memory: 256Mi
+ limits:
+ cpu: 1000m
+ memory: 256Mi
+
+workflowCompilingService:
+ name: workflow-compiling-service
+ numOfPods: 1
+ imageName: texera-workflow-compiling-service
+ service:
+ type: ClusterIP
+ port: 9090
+ resources:
+ requests:
+ cpu: 10m
+ memory: 256Mi
+ limits:
+ cpu: 1000m
+ memory: 256Mi
+
+fileService:
+ name: file-service
+ numOfPods: 1
+ imageName: texera-file-service
+ service:
+ type: ClusterIP
+ port: 9092
+ resources:
+ requests:
+ cpu: 10m
+ memory: 256Mi
+ limits:
+ cpu: 1000m
+ memory: 512Mi
+
+configService:
+ name: config-service
+ numOfPods: 1
+ imageName: texera-config-service
+ service:
+ type: ClusterIP
+ port: 9094
+ resources:
+ requests:
+ cpu: 10m
+ memory: 256Mi
+ limits:
+ cpu: 1000m
+ memory: 256Mi
+
+accessControlService:
+ name: access-control-service
+ numOfPods: 1
+ imageName: texera-access-control-service
+ service:
+ type: ClusterIP
+ port: 9096
+ resources:
+ requests:
+ cpu: 10m
+ memory: 256Mi
+ limits:
+ cpu: 1000m
+ memory: 256Mi
+
+# headless service for the access of computing units
+workflowComputingUnitPool:
+ createNamespaces: true
+ # The name of the workflow computing unit pool
+ name: texera-workflow-computing-unit
+ # Note: the namespace of the workflow computing unit pool might conflict
when there are multiple texera deployments in the same cluster
+ namespace: texera-workflow-computing-unit-pool
+ # Max number of resources allocated for computing units
+ maxRequestedResources:
+ cpu: 100
+ memory: 100Gi
+ nvidiaGpu: 5
+ imageName: texera-workflow-execution-coordinator
+ service:
+ port: 8085
+ targetPort: 8085
+
+texeraEnvVars:
+ - name: USER_SYS_ADMIN_USERNAME
+ value: "texera"
+ - name: USER_SYS_ADMIN_PASSWORD
+ value: "texera"
+ - name: STORAGE_JDBC_USERNAME
+ value: postgres
+ - name: USER_SYS_ENABLED
+ value: "true"
+ - name: SCHEDULE_GENERATOR_ENABLE_COST_BASED_SCHEDULE_GENERATOR
+ value: "true"
+ - name: MAX_WORKFLOW_WEBSOCKET_REQUEST_PAYLOAD_SIZE_KB
+ value: "64"
+ - name: MAX_NUM_OF_RUNNING_COMPUTING_UNITS_PER_USER
+ value: "10"
+ - name: KUBERNETES_COMPUTING_UNIT_CPU_LIMIT_OPTIONS
+ value: "2"
+ - name: KUBERNETES_COMPUTING_UNIT_MEMORY_LIMIT_OPTIONS
+ value: "2Gi"
+ - name: KUBERNETES_COMPUTING_UNIT_GPU_LIMIT_OPTIONS
+ value: "0"
+ - name: COMPUTING_UNIT_LOCAL_ENABLED
+ value: "false"
+ - name: KUBERNETES_COMPUTING_UNIT_ENABLED
+ value: "true"
+ - name: KUBERNETES_IMAGE_PULL_POLICY
+ value: "IfNotPresent"
+ - name: GUI_WORKFLOW_WORKSPACE_PYTHON_LANGUAGE_SERVER_PORT
+ value: ""
+ - name: GUI_WORKFLOW_WORKSPACE_PRODUCTION_SHARED_EDITING_SERVER
+ value: "true"
+ - name: GUI_LOGIN_LOCAL_LOGIN
+ value: "true"
+ - name: GUI_LOGIN_GOOGLE_LOGIN
+ value: "true"
+ - name: GUI_DATASET_SINGLE_FILE_UPLOAD_MAXIMUM_SIZE_MB
+ value: "1024"
+ - name: GUI_WORKFLOW_WORKSPACE_EXPORT_EXECUTION_RESULT_ENABLED
+ value: "true"
+ - name: GUI_WORKFLOW_WORKSPACE_WORKFLOW_EXECUTIONS_TRACKING_ENABLED
+ value: "true"
+ - name: GUI_WORKFLOW_WORKSPACE_ASYNC_RENDERING_ENABLED
+ value: "true"
+ - name: COMPUTING_UNIT_SHARING_ENABLED
+ value: "true"
+ - name: USER_SYS_INVITE_ONLY
+ value: "true"
+ - name: USER_SYS_GOOGLE_CLIENT_ID
+ value: ""
+ - name: USER_SYS_GOOGLE_SMTP_GMAIL
+ value: ""
+ - name: USER_SYS_GOOGLE_SMTP_PASSWORD
+ value: ""
+ - name: USER_SYS_DOMAIN
+ value: ""
+
+yWebsocketServer:
+ name: y-websocket-server
+ replicaCount: 1
+ image: texera/y-websocket-server:latest
+
+
+pythonLanguageServer:
+ name: python-language-server
+ replicaCount: 1
+ image: texera/pylsp:latest
+ imagePullSecret: regcred
+ resources:
+ limits:
+ cpu: "100m"
+ memory: "100Mi"
+
+# Metrics Server configuration
+metrics-server:
+ enabled: true # set to false if metrics-server is already installed
+ args:
+ - --kubelet-insecure-tls
+ - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
+ - --metric-resolution=15s
+ resources:
+ requests:
+ cpu: 200m
+ memory: 400Mi
+ rbac:
+ create: true
+ serviceAccount:
+ create: true
+ priorityClassName: system-cluster-critical
+
+gatewayConfig:
+ # Routes are available at bin/k8s/templates/gateway-routes.yaml
+
+ # The hostname for the Gateway listener (HTTP/HTTPS).
+ # e.g., "texera.example.com"
+ hostname: ""
+
+ # The name of the cert-manager Issuer or ClusterIssuer to use for obtaining
certificates.
+ # This requires cert-manager to be installed in the cluster.
+ # You can find available ClusterIssuers with: `kubectl get clusterissuers`
+ # You can find available Issuers with: `kubectl get issuers -A`
+ # e.g., "letsencrypt-prod"
+ issuer: ""
+
+ # The Kind of the issuer specified above. Can be "Issuer" or "ClusterIssuer".
+ # If you found it via `kubectl get clusterissuers`, use "ClusterIssuer".
+ # If you found it via `kubectl get issuers`, use "Issuer".
+ # defaults to "Issuer" if not specified.
+ issuerKind: "Issuer"
+
+ # The name of the Secret where the signed certificate should be stored.
+ # If empty, it defaults to "{{ .Release.Name }}-cert".
+ # e.g., "texera-tls"
+ tlsSecretName: ""
+
+# Envoy Gateway Configuration
+envoy-gateway:
+ config:
+ envoyGateway:
+ extensionApis:
+ enableBackend: true
+ enableEnvoyPatchPolicy: true