Skip to content

Commit e0eda3c

Browse files
authored
feat: update asktable to v2 (#564)
* Refactor AskTable template to replace MySQL with PostgreSQL, * Add PostgreSQL initialization job to AskTable template
1 parent edf8d68 commit e0eda3c

File tree

1 file changed

+60
-50
lines changed

1 file changed

+60
-50
lines changed

template/asktable.yaml

Lines changed: 60 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ spec:
77
url: 'https://asktable.com/'
88
gitRepo: 'https://github.com/DataMini/asktable-all-in-one'
99
author: 'DataMini'
10-
description: 'AskTable.com 表格智能体(Table Agent as a Service),专为企业提供基于自然语言的数据分析体验,广泛支持 Excel、数据库和数据仓库的智能查询。用户无需懂 SQL,只需用“说”的方式,即可获得实时数据洞察,广泛应用于运营、财务、人事、销售等业务场景。'
10+
description: 'AskTable.com 表格智能体(Table Agent as a Service),专为企业提供基于自然语言的数据分析体验,支持 Excel、数据库和数据仓库的智能查询。用户无需懂 SQL,只需用“说”的方式,即可获得实时数据洞察,广泛应用于运营、财务、人事、销售等业务场景。'
1111
readme: 'https://raw.githubusercontent.com/DataMini/asktable-all-in-one/main/README.md'
1212
icon: 'https://cloud.asktable.com/favicon.jpg'
1313
templateType: inline
@@ -23,16 +23,6 @@ spec:
2323
type: string
2424
value: ${{ random(8) }}
2525
inputs:
26-
ADMIN_EMAIL:
27-
description: '管理员账号的邮箱。'
28-
type: string
29-
default: 'admin@asktable.com'
30-
required: false
31-
ADMIN_PASSWORD:
32-
description: '管理员账号的密码。'
33-
type: string
34-
default: 'admin'
35-
required: false
3626
LLM_BASE_URL:
3727
description: '用于访问大语言模型的 API 地址,比如“https://api.openai.com/v1”。默认使用 AskTable 模型API地址。'
3828
type: string
@@ -41,7 +31,7 @@ spec:
4131
LLM_API_KEY:
4232
description: 'AI 模型令牌'
4333
type: string
44-
default: 'asktable-xxxxxxx(登录 AskTable.com 获取)'
34+
default: 'asktable-xxxxxxx=xxx(登录 AskTable.com 获取'
4535
required: true
4636

4737

@@ -61,6 +51,35 @@ spec:
6151
type: iframe
6252

6353

54+
---
55+
apiVersion: batch/v1
56+
kind: Job
57+
metadata:
58+
name: ${{ defaults.app_name }}-pg-init
59+
spec:
60+
completions: 1
61+
template:
62+
spec:
63+
containers:
64+
- name: pgsql-init
65+
image: postgres:14-alpine
66+
env:
67+
- name: PG_PASSWORD
68+
valueFrom:
69+
secretKeyRef:
70+
name: ${{ defaults.app_name }}-postgresql-conn-credential
71+
key: password
72+
- name: DATABASE_URL
73+
value: postgresql://postgres:$(PG_PASSWORD)@${{ defaults.app_name }}-postgresql-postgresql.${{ SEALOS_NAMESPACE }}.svc:5432
74+
command:
75+
- /bin/sh
76+
- -c
77+
- |
78+
until psql ${DATABASE_URL} -c 'CREATE DATABASE asktable;' &>/dev/null; do sleep 1; done
79+
restartPolicy: Never
80+
backoffLimit: 0
81+
ttlSecondsAfterFinished: 300
82+
6483
---
6584
apiVersion: apps/v1
6685
kind: StatefulSet
@@ -91,30 +110,21 @@ spec:
91110
value: Asia/Shanghai
92111
- name: BASE_URL
93112
value: https://${{ defaults.app_host }}.${{ SEALOS_CLOUD_DOMAIN }}
94-
- name: MYSQL_HOST
95-
value: ${{ defaults.app_name }}-mysql-mysql.${{ SEALOS_NAMESPACE }}.svc
96-
- name: MYSQL_USER
97-
value: root
98-
- name: MYSQL_PASSWORD
99-
valueFrom:
100-
secretKeyRef:
101-
name: ${{ defaults.app_name }}-mysql-conn-credential
102-
key: password
103-
- name: MYSQL_ROOT_PASSWORD
113+
- name: DATABASE_HOST
114+
value: ${{ defaults.app_name }}-postgresql-postgresql.${{ SEALOS_NAMESPACE }}.svc
115+
- name: DATABASE_USER
116+
value: postgres
117+
- name: DATABASE_PASSWORD
104118
valueFrom:
105119
secretKeyRef:
106-
name: ${{ defaults.app_name }}-mysql-conn-credential
120+
name: ${{ defaults.app_name }}-postgresql-conn-credential
107121
key: password
108-
- name: MYSQL_DB
109-
value: mydb
122+
- name: DATABASE_DB
123+
value: asktable
110124
- name: LLM_API_KEY
111125
value: ${{ inputs.LLM_API_KEY }}
112126
- name: LLM_BASE_URL
113127
value: ${{ inputs.LLM_BASE_URL }}
114-
- name: AUTH_EMAIL_INIT_ADMIN_EMAIL
115-
value: ${{ inputs.ADMIN_EMAIL }}
116-
- name: AUTH_EMAIL_INIT_ADMIN_PASSWORD
117-
value: ${{ inputs.ADMIN_PASSWORD }}
118128
ports:
119129
- containerPort: 80
120130
resources:
@@ -215,22 +225,22 @@ metadata:
215225
finalizers:
216226
- cluster.kubeblocks.io/finalizer
217227
labels:
218-
clusterdefinition.kubeblocks.io/name: apecloud-mysql
219-
clusterversion.kubeblocks.io/name: ac-mysql-8.0.30
220-
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
221-
name: ${{ defaults.app_name }}-mysql
228+
clusterdefinition.kubeblocks.io/name: postgresql
229+
clusterversion.kubeblocks.io/name: postgresql-14.8.0
230+
sealos-db-provider-cr: ${{ defaults.app_name }}-postgresql
231+
name: ${{ defaults.app_name }}-postgresql
222232
spec:
223233
affinity:
224234
nodeLabels: {}
225235
podAntiAffinity: Preferred
226236
tenancy: SharedNode
227237
topologyKeys: []
228-
clusterDefinitionRef: apecloud-mysql
229-
clusterVersionRef: ac-mysql-8.0.30
238+
clusterDefinitionRef: postgresql
239+
clusterVersionRef: postgresql-14.8.0
230240
componentSpecs:
231-
- componentDefRef: mysql
241+
- componentDefRef: postgresql
232242
monitor: true
233-
name: mysql
243+
name: postgresql
234244
replicas: 1
235245
resources:
236246
limits:
@@ -239,15 +249,15 @@ spec:
239249
requests:
240250
cpu: 50m
241251
memory: 51Mi
242-
serviceAccountName: ${{ defaults.app_name }}-mysql
252+
serviceAccountName: ${{ defaults.app_name }}-postgresql
243253
volumeClaimTemplates:
244254
- name: data
245255
spec:
246256
accessModes:
247257
- ReadWriteOnce
248258
resources:
249259
requests:
250-
storage: 1Gi
260+
storage: 3Gi
251261

252262
terminationPolicy: Delete
253263
tolerations: []
@@ -257,20 +267,20 @@ apiVersion: v1
257267
kind: ServiceAccount
258268
metadata:
259269
labels:
260-
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
261-
app.kubernetes.io/instance: ${{ defaults.app_name }}-mysql
270+
sealos-db-provider-cr: ${{ defaults.app_name }}-postgresql
271+
app.kubernetes.io/instance: ${{ defaults.app_name }}-postgresql
262272
app.kubernetes.io/managed-by: kbcli
263-
name: ${{ defaults.app_name }}-mysql
273+
name: ${{ defaults.app_name }}-postgresql
264274

265275
---
266276
apiVersion: rbac.authorization.k8s.io/v1
267277
kind: Role
268278
metadata:
269279
labels:
270-
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
271-
app.kubernetes.io/instance: ${{ defaults.app_name }}-mysql
280+
sealos-db-provider-cr: ${{ defaults.app_name }}-postgresql
281+
app.kubernetes.io/instance: ${{ defaults.app_name }}-postgresql
272282
app.kubernetes.io/managed-by: kbcli
273-
name: ${{ defaults.app_name }}-mysql
283+
name: ${{ defaults.app_name }}-postgresql
274284
rules:
275285
- apiGroups:
276286
- '*'
@@ -284,14 +294,14 @@ apiVersion: rbac.authorization.k8s.io/v1
284294
kind: RoleBinding
285295
metadata:
286296
labels:
287-
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
288-
app.kubernetes.io/instance: ${{ defaults.app_name }}-mysql
297+
sealos-db-provider-cr: ${{ defaults.app_name }}-postgresql
298+
app.kubernetes.io/instance: ${{ defaults.app_name }}-postgresql
289299
app.kubernetes.io/managed-by: kbcli
290-
name: ${{ defaults.app_name }}-mysql
300+
name: ${{ defaults.app_name }}-postgresql
291301
roleRef:
292302
apiGroup: rbac.authorization.k8s.io
293303
kind: Role
294-
name: ${{ defaults.app_name }}-mysql
304+
name: ${{ defaults.app_name }}-postgresql
295305
subjects:
296306
- kind: ServiceAccount
297-
name: ${{ defaults.app_name }}-mysql
307+
name: ${{ defaults.app_name }}-postgresql

0 commit comments

Comments
 (0)