Skip to content

Commit

Permalink
add nextcloud tmplate
Browse files Browse the repository at this point in the history
  • Loading branch information
bxy4543 committed Dec 29, 2023
1 parent f520bdd commit 9da1cc4
Showing 1 changed file with 269 additions and 0 deletions.
269 changes: 269 additions & 0 deletions template/nextcloud.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
apiVersion: app.sealos.io/v1
kind: Template
metadata:
name: nextcloud
spec:
title: Nextcloud
description: Nextcloud is an open-source forum software.
url: 'https://nextcloud.com/'
gitRepo: 'https://github.com/nextcloud/docker'
author: 'sealos'
readme: 'https://raw.githubusercontent.com/nextcloud/docker/master/README.md'
icon: 'https://avatars.githubusercontent.com/u/19211038?s=48&v=4'
templateType: inline
defaults:
app_host:
type: string
value: ${{ random(8) }}
app_name:
type: string
value: nextcloud-${{ random(8) }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: ${{ defaults.app_name }}
annotations:
originImageName: nextcloud
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
initContainers:
- name: init-mysql
image: mysql:5.7
command:
- bash
- "-c"
- |
mysql --host=$DB_HOST --user=$DB_USER --password=$DB_PASSWORD --port=$DB_PORT -e 'CREATE DATABASE IF NOT EXISTS nextcloud'
env:
- name: DB_HOST
valueFrom:
secretKeyRef:
name: ${{ defaults.app_name }}-mysql-conn-credential
key: host
- name: DB_USER
valueFrom:
secretKeyRef:
name: ${{ defaults.app_name }}-mysql-conn-credential
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: ${{ defaults.app_name }}-mysql-conn-credential
key: password
- name: DB_PORT
valueFrom:
secretKeyRef:
name: ${{ defaults.app_name }}-mysql-conn-credential
key: port
containers:
- name: ${{ defaults.app_name }}
image: nextcloud
env:
- name: MYSQL_DATABASE
value: nextcloud
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: ${{ defaults.app_name }}-mysql-conn-credential
key: username
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: ${{ defaults.app_name }}-mysql-conn-credential
key: password
- name: MYSQL_HOST
valueFrom:
secretKeyRef:
name: ${{ defaults.app_name }}-mysql-conn-credential
key: host
- name: NEXTCLOUD_DATA_DIR
value: /var/www/html/data
resources:
requests:
cpu: 100m
memory: 102Mi
limits:
cpu: 1000m
memory: 1024Mi
command: []
args: []
ports:
- containerPort: 80
imagePullPolicy: Always
volumeMounts:
- name: vn-rootvn-vn-nextcloud
mountPath: /var/www/html
volumes: []
volumeClaimTemplates:
- metadata:
annotations:
path: /var/www/html
value: '1'
name: vn-rootvn-vn-nextcloud
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

---
apiVersion: v1
kind: Service
metadata:
name: ${{ defaults.app_name }}
labels:
cloud.sealos.io/app-deploy-manager: ${{ defaults.app_name }}
spec:
ports:
- port: 80
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: 80
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: apecloud-mysql
clusterversion.kubeblocks.io/name: ac-mysql-8.0.30
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
annotations: {}
name: ${{ defaults.app_name }}-mysql
spec:
affinity:
nodeLabels: {}
podAntiAffinity: Preferred
tenancy: SharedNode
topologyKeys: []
clusterDefinitionRef: apecloud-mysql
clusterVersionRef: ac-mysql-8.0.30
componentSpecs:
- componentDefRef: mysql
monitor: true
name: mysql
replicas: 1
resources:
limits:
cpu: 1000m
memory: 1024Mi
requests:
cpu: 100m
memory: 102Mi
serviceAccountName: ${{ defaults.app_name }}-mysql
volumeClaimTemplates:
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: openebs-backup
terminationPolicy: Delete
tolerations: []
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
app.kubernetes.io/instance: ${{ defaults.app_name }}-mysql
app.kubernetes.io/managed-by: kbcli
name: ${{ defaults.app_name }}-mysql

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
app.kubernetes.io/instance: ${{ defaults.app_name }}-mysql
app.kubernetes.io/managed-by: kbcli
name: ${{ defaults.app_name }}-mysql
rules:
- apiGroups:
- ''
resources:
- events
verbs:
- create

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
sealos-db-provider-cr: ${{ defaults.app_name }}-mysql
app.kubernetes.io/instance: ${{ defaults.app_name }}-mysql
app.kubernetes.io/managed-by: kbcli
name: ${{ defaults.app_name }}-mysql
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ${{ defaults.app_name }}-mysql
subjects:
- kind: ServiceAccount
name: ${{ defaults.app_name }}-mysql
namespace: ${{ SEALOS_NAMESPACE }}

0 comments on commit 9da1cc4

Please sign in to comment.