chore: add sealos config
This commit is contained in:
parent
38dd60feee
commit
f87e5b32f9
322
k8s/sealos/tianji.yaml
Normal file
322
k8s/sealos/tianji.yaml
Normal file
@ -0,0 +1,322 @@
|
||||
apiVersion: app.sealos.io/v1
|
||||
kind: Template
|
||||
metadata:
|
||||
name: tianji
|
||||
spec:
|
||||
title: 'Tianji'
|
||||
url: 'https://tianji.msgbyte.com/'
|
||||
gitRepo: 'https://github.com/msgbyte/tianji'
|
||||
author: 'moonrailgun'
|
||||
description: 'Tianji: Insight into everything, Website Analytics + Uptime Monitor + Server Status. not only another GA alternatives'
|
||||
readme: 'https://raw.githubusercontent.com/msgbyte/tianji/master/README.md'
|
||||
icon: 'https://tianji.msgbyte.com/img/logo.svg'
|
||||
templateType: inline
|
||||
defaults:
|
||||
app_host:
|
||||
# number or string..
|
||||
type: string
|
||||
value: tianji-${{ random(8) }}
|
||||
app_name:
|
||||
type: string
|
||||
value: tianji-${{ random(8) }}
|
||||
inputs:
|
||||
JWT_SECRET:
|
||||
description: 'replace me with a random string'
|
||||
type: string
|
||||
default: 'replace-me-with-a-random-string'
|
||||
required: true
|
||||
ALLOW_REGISTER:
|
||||
description: 'whether allow register account'
|
||||
type: string
|
||||
default: "false"
|
||||
required: false
|
||||
ALLOW_OPENAPI:
|
||||
description: 'whether allow open openapi'
|
||||
type: string
|
||||
default: "true"
|
||||
required: false
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: ${{ defaults.app_name }}
|
||||
annotations:
|
||||
originImageName: moonrailgun/tianji
|
||||
deploy.cloud.sealos.io/minReplicas: '1'
|
||||
deploy.cloud.sealos.io/maxReplicas: '1'
|
||||
labels:
|
||||
cloud.sealos.io/app-deploy-manager: ${{ defaults.app_name }}
|
||||
app: ${{ defaults.app_name }}
|
||||
spec:
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: ${{ defaults.app_name }}
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate:
|
||||
maxUnavailable: 1
|
||||
maxSurge: 0
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: ${{ defaults.app_name }}
|
||||
spec:
|
||||
containers:
|
||||
- name: ${{ defaults.app_name }}
|
||||
image: moonrailgun/tianji
|
||||
env:
|
||||
- name: PG_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: ${{ defaults.app_name }}-pg-conn-credential
|
||||
key: password
|
||||
- name: DATABASE_URL
|
||||
value: postgresql://postgres:$(PG_PASSWORD)@${{ defaults.app_name }}-pg-postgresql.${{ SEALOS_NAMESPACE }}.svc:5432/tianji
|
||||
- name: JWT_SECRET
|
||||
value: ${{ inputs.JWT_SECRET }}
|
||||
- name: ALLOW_REGISTER
|
||||
value: ${{ inputs.ALLOW_REGISTER }}
|
||||
- name: ALLOW_OPENAPI
|
||||
value: ${{ inputs.ALLOW_OPENAPI }}
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 102Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 512Mi
|
||||
command: []
|
||||
args: []
|
||||
ports:
|
||||
- containerPort: 12345
|
||||
imagePullPolicy: Always
|
||||
volumeMounts: []
|
||||
volumes: []
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: ${{ defaults.app_name }}
|
||||
labels:
|
||||
cloud.sealos.io/app-deploy-manager: ${{ defaults.app_name }}
|
||||
spec:
|
||||
ports:
|
||||
- port: 12345
|
||||
selector:
|
||||
app: ${{ defaults.app_name }}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: ${{ defaults.app_name }}
|
||||
labels:
|
||||
cloud.sealos.io/app-deploy-manager: ${{ defaults.app_name }}
|
||||
cloud.sealos.io/app-deploy-manager-domain: ${{ defaults.app_host }}
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: nginx
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: 32m
|
||||
nginx.ingress.kubernetes.io/server-snippet: |
|
||||
client_header_buffer_size 64k;
|
||||
large_client_header_buffers 4 128k;
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: 'false'
|
||||
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$2
|
||||
nginx.ingress.kubernetes.io/client-body-buffer-size: 64k
|
||||
nginx.ingress.kubernetes.io/proxy-buffer-size: 64k
|
||||
nginx.ingress.kubernetes.io/proxy-send-timeout: '300'
|
||||
nginx.ingress.kubernetes.io/proxy-read-timeout: '300'
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
if ($request_uri ~* \.(js|css|gif|jpe?g|png)) {
|
||||
expires 30d;
|
||||
add_header Cache-Control "public";
|
||||
}
|
||||
spec:
|
||||
rules:
|
||||
- host: ${{ defaults.app_host }}.${{ SEALOS_CLOUD_DOMAIN }}
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /()(.*)
|
||||
backend:
|
||||
service:
|
||||
name: ${{ defaults.app_name }}
|
||||
port:
|
||||
number: 12345
|
||||
tls:
|
||||
- hosts:
|
||||
- ${{ defaults.app_host }}.${{ SEALOS_CLOUD_DOMAIN }}
|
||||
secretName: ${{ SEALOS_CERT_SECRET_NAME }}
|
||||
---
|
||||
apiVersion: apps.kubeblocks.io/v1alpha1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
finalizers:
|
||||
- cluster.kubeblocks.io/finalizer
|
||||
labels:
|
||||
clusterdefinition.kubeblocks.io/name: postgresql
|
||||
clusterversion.kubeblocks.io/name: postgresql-14.8.0
|
||||
sealos-db-provider-cr: ${{ defaults.app_name }}-pg
|
||||
annotations: {}
|
||||
name: ${{ defaults.app_name }}-pg
|
||||
spec:
|
||||
affinity:
|
||||
nodeLabels: {}
|
||||
podAntiAffinity: Preferred
|
||||
tenancy: SharedNode
|
||||
topologyKeys: []
|
||||
clusterDefinitionRef: postgresql
|
||||
clusterVersionRef: postgresql-14.8.0
|
||||
componentSpecs:
|
||||
- componentDefRef: postgresql
|
||||
monitor: true
|
||||
name: postgresql
|
||||
replicas: 1
|
||||
resources:
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 1024Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 102Mi
|
||||
serviceAccountName: ${{ defaults.app_name }}-pg
|
||||
switchPolicy:
|
||||
type: Noop
|
||||
volumeClaimTemplates:
|
||||
- name: data
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: openebs-backup
|
||||
terminationPolicy: Delete
|
||||
tolerations: []
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
sealos-db-provider-cr: ${{ defaults.app_name }}-pg
|
||||
app.kubernetes.io/instance: ${{ defaults.app_name }}-pg
|
||||
app.kubernetes.io/managed-by: kbcli
|
||||
name: ${{ defaults.app_name }}-pg
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
sealos-db-provider-cr: ${{ defaults.app_name }}-pg
|
||||
app.kubernetes.io/instance: ${{ defaults.app_name }}-pg
|
||||
app.kubernetes.io/managed-by: kbcli
|
||||
name: ${{ defaults.app_name }}-pg
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- endpoints
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ''
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
sealos-db-provider-cr: ${{ defaults.app_name }}-pg
|
||||
app.kubernetes.io/instance: ${{ defaults.app_name }}-pg
|
||||
app.kubernetes.io/managed-by: kbcli
|
||||
name: ${{ defaults.app_name }}-pg
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: ${{ defaults.app_name }}-pg
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: ${{ defaults.app_name }}-pg
|
||||
namespace: ${{ SEALOS_NAMESPACE }}
|
||||
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: ${{ defaults.app_name }}-init
|
||||
spec:
|
||||
completions: 1
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: pgsql-init
|
||||
image: senzing/postgresql-client:latest
|
||||
env:
|
||||
- name: PG_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: ${{ defaults.app_name }}-pg-conn-credential
|
||||
key: password
|
||||
- name: DATABASE_URL
|
||||
value: postgresql://postgres:$(PG_PASSWORD)@${{ defaults.app_name }}-pg-postgresql.${{ SEALOS_NAMESPACE }}.svc:5432
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
until psql ${DATABASE_URL} -c 'CREATE DATABASE tianji;' &>/dev/null; do sleep 1; done
|
||||
restartPolicy: Never
|
||||
backoffLimit: 0
|
||||
ttlSecondsAfterFinished: 300
|
||||
|
||||
---
|
||||
apiVersion: app.sealos.io/v1
|
||||
kind: App
|
||||
metadata:
|
||||
name: ${{ defaults.app_name }}
|
||||
labels:
|
||||
cloud.sealos.io/app-deploy-manager: ${{ defaults.app_name }}
|
||||
spec:
|
||||
data:
|
||||
url: https://${{ defaults.app_host }}.${{ SEALOS_CLOUD_DOMAIN }}
|
||||
displayType: normal
|
||||
icon: "https://tianji.msgbyte.com/img/logo.svg"
|
||||
menuData:
|
||||
nameColor: text-black
|
||||
name: ${{ defaults.app_name }}
|
||||
type: iframe
|
Loading…
Reference in New Issue
Block a user