Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 新增next-terminal模板 #176

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
231 changes: 231 additions & 0 deletions template/next-terminal.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
apiVersion: app.sealos.io/v1
kind: Template
metadata:
name: next-terminal
spec:
title: 'next-terminal'
url: 'https://github.com/dushixiang/next-terminal'
gitRepo: 'https://github.com/dushixiang/next-terminal'
author: '孤城落寞'
description: 'Next Terminal是一个简单好用安全的开源交互审计系统,支持RDP、SSH、VNC、Telnet、Kubernetes协议。'
readme: 'https://raw.githubusercontent.com/dushixiang/next-terminal/master/README.md'
icon: 'https://raw.githubusercontent.com/dushixiang/next-terminal/master/web/public/favicon.ico'
templateType: inline
defaults:
app_host:
# number or string.
type: string
value: ${{ random(8) }}
app_name:
type: string
value: next-terminal-${{ random(8) }}
inputs:

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: ${{ defaults.app_name }}
annotations:
originImageName: registry.cn-beijing.aliyuncs.com/dushixiang/next-terminal:latest
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
minReadySeconds: 10
serviceName: ${{ defaults.app_name }}
selector:
matchLabels:
app: ${{ defaults.app_name }}
template:
metadata:
labels:
app: ${{ defaults.app_name }}
spec:
terminationGracePeriodSeconds: 10
containers:
- name: ${{ defaults.app_name }}
image: registry.cn-beijing.aliyuncs.com/dushixiang/next-terminal:latest
gclm marked this conversation as resolved.
Show resolved Hide resolved
env:
- name: DB
value: sqlite
- name: GUACD_HOSTNAME
value: guacd-${{ defaults.app_host }}.ns-admin.svc.cluster.local
- name: GUACD_PORT
value: 4822
resources:
requests:
cpu: 50m
memory: 51Mi
limits:
cpu: 500m
memory: 512Mi
command: []
args: []
ports:
- containerPort: 8088
imagePullPolicy: IfNotPresent
volumeMounts:
- name: vn-data
mountPath: /usr/local/next-terminal/data
volumes: []
volumeClaimTemplates:
- metadata:
annotations:
path: /usr/local/next-terminal/data
value: '5'
name: vn-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi

---
apiVersion: v1
kind: Service
metadata:
name: ${{ defaults.app_name }}
labels:
cloud.sealos.io/app-deploy-manager: ${{ defaults.app_name }}
spec:
ports:
- port: 8088
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/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: 8088
tls:
- hosts:
- ${{ defaults.app_host }}.${{ SEALOS_CLOUD_DOMAIN }}
secretName: ${{ SEALOS_CERT_SECRET_NAME }}


---
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://${{ defaults.app_host }}.${{ SEALOS_CLOUD_DOMAIN }}/favicon.ico"
menuData:
nameColor: text-black
name: ${{ defaults.app_name }}
type: iframe

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: guacd-${{ defaults.app_host }}
annotations:
originImageName: registry.cn-beijing.aliyuncs.com/dushixiang/guacd:latest
deploy.cloud.sealos.io/minReplicas: '1'
deploy.cloud.sealos.io/maxReplicas: '1'
labels:
cloud.sealos.io/app-deploy-manager: guacd-${{ defaults.app_host }}
app: guacd-${{ defaults.app_host }}
spec:
replicas: 1
revisionHistoryLimit: 1
minReadySeconds: 10
serviceName: guacd-${{ defaults.app_host }}
selector:
matchLabels:
app: guacd-${{ defaults.app_host }}
template:
metadata:
labels:
app: guacd-${{ defaults.app_host }}
spec:
terminationGracePeriodSeconds: 10
containers:
- name: guacd-${{ defaults.app_host }}
image: registry.cn-beijing.aliyuncs.com/dushixiang/guacd:latest
env: []
resources:
requests:
cpu: 50m
memory: 51Mi
limits:
cpu: 500m
memory: 512Mi
command: []
args: []
ports:
- containerPort: 4822
imagePullPolicy: Always
volumeMounts:
- name: vn-data
mountPath: /usr/local/next-terminal/data
volumes: []
volumeClaimTemplates:
- metadata:
annotations:
path: /usr/local/next-terminal/data
value: '1'
name: vn-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

---
apiVersion: v1
kind: Service
metadata:
name: guacd-${{ defaults.app_host }}
labels:
cloud.sealos.io/app-deploy-manager: guacd-${{ defaults.app_host }}
spec:
ports:
- port: 4822
selector:
app: guacd-${{ defaults.app_host }}