add ghost
This commit is contained in:
19
clusters/cl01tl/applications/ghost/Chart.yaml
Normal file
19
clusters/cl01tl/applications/ghost/Chart.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: ghost
|
||||||
|
version: 1.0.0
|
||||||
|
sources:
|
||||||
|
- https://github.com/TryGhost/Ghost
|
||||||
|
- https://github.com/bitnami/charts/tree/main/bitnami/ghost
|
||||||
|
- https://github.com/cloudflare/cloudflared
|
||||||
|
dependencies:
|
||||||
|
- name: ghost
|
||||||
|
repository: oci://registry-1.docker.io/bitnamicharts/ghost
|
||||||
|
version: 20.1.0
|
||||||
|
- name: mysql-innodbcluster
|
||||||
|
repository: https://mysql.github.io/mysql-operator/
|
||||||
|
version: 2.1.3
|
||||||
|
- name: app-template
|
||||||
|
alias: cloudflared
|
||||||
|
repository: https://bjw-s.github.io/helm-charts/
|
||||||
|
version: 3.1.0
|
||||||
|
appVersion: 5.82.11
|
@@ -0,0 +1,98 @@
|
|||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: ghost-credentials-secret
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: ghost-credentials-secret
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/component: web
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: vault
|
||||||
|
data:
|
||||||
|
- secretKey: ghost-password
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cl01tl/ghost/config/credentials
|
||||||
|
metadataPolicy: None
|
||||||
|
property: ghost-password
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: ghost-mysql-credentials-secret
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: ghost-mysql-credentials-secret
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/component: web
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: vault
|
||||||
|
data:
|
||||||
|
- secretKey: ghost-password
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cl01tl/ghost/mysql/credentials
|
||||||
|
metadataPolicy: None
|
||||||
|
property: password
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: ghost-mysql-backup-credentials-secret
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: ghost-mysql-backup-credentials-secret
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/component: web
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: vault
|
||||||
|
data:
|
||||||
|
- secretKey: config
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cl01tl/ghost/mysql/credentials
|
||||||
|
metadataPolicy: None
|
||||||
|
property: backup-config
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: ghost-cloudflared-secret
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: ghost-cloudflared-secret
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/component: web
|
||||||
|
app.kubernetes.io/part-of: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
secretStoreRef:
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
name: vault
|
||||||
|
data:
|
||||||
|
- secretKey: cf-tunnel-token
|
||||||
|
remoteRef:
|
||||||
|
conversionStrategy: Default
|
||||||
|
decodingStrategy: None
|
||||||
|
key: /cloudflare/tunnels/ghost
|
||||||
|
metadataPolicy: None
|
||||||
|
property: token
|
109
clusters/cl01tl/applications/ghost/values.yaml
Normal file
109
clusters/cl01tl/applications/ghost/values.yaml
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
ghost:
|
||||||
|
image:
|
||||||
|
registry: docker.io
|
||||||
|
repository: bitnami/ghost
|
||||||
|
tag: 5.82.11-debian-12-r0
|
||||||
|
ghostUsername: user
|
||||||
|
existingSecret: ghost-credentials-secret
|
||||||
|
ghostEmail: alexanderlebens@gmail.com
|
||||||
|
ghostBlogTitle: Alex Lebens
|
||||||
|
ghostHost: blog.alexlebens.net
|
||||||
|
ghostPath: /
|
||||||
|
ghostSkipInstall: false
|
||||||
|
replicaCount: 1
|
||||||
|
resourcesPreset: "micro"
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
storageClass: ceph-block
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
size: 10Gi
|
||||||
|
mysql:
|
||||||
|
enabled: false
|
||||||
|
externalDatabase:
|
||||||
|
host: ghost-mysql
|
||||||
|
port: 3306
|
||||||
|
user: ghost
|
||||||
|
database: ghost
|
||||||
|
existingSecret: ghost-mysql-credentials-secret
|
||||||
|
mysql-innodbcluster:
|
||||||
|
serverInstances: 3
|
||||||
|
routerInstances: 1
|
||||||
|
baseServerId: 1000
|
||||||
|
logs:
|
||||||
|
error:
|
||||||
|
enabled: true
|
||||||
|
collect: false
|
||||||
|
general:
|
||||||
|
enabled: true
|
||||||
|
collect: false
|
||||||
|
slowQuery:
|
||||||
|
enabled: true
|
||||||
|
longQueryTime: 2.5
|
||||||
|
datadirVolumeClaimTemplate:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
backupProfiles:
|
||||||
|
- name: dump-instance-profile
|
||||||
|
dumpInstance:
|
||||||
|
storage:
|
||||||
|
s3:
|
||||||
|
prefix: ghost/instance
|
||||||
|
config: ghost-mysql-backup-credentials-secret
|
||||||
|
bucketName: cl01tl-mysql-backups
|
||||||
|
endpoint: https://s3.us-east-2.amazonaws.com
|
||||||
|
- name: snapshot-profile
|
||||||
|
snapshot:
|
||||||
|
storage:
|
||||||
|
s3:
|
||||||
|
prefix: ghost/snapshot
|
||||||
|
config: ghost-mysql-backup-credentials-secret
|
||||||
|
bucketName: cl01tl-mysql-backups
|
||||||
|
endpoint: https://s3.us-east-2.amazonaws.com
|
||||||
|
backupSchedules:
|
||||||
|
- name: dump-instance-schedule
|
||||||
|
schedule: "0 0 * * SAT"
|
||||||
|
timeZone: US/Central
|
||||||
|
deleteBackupData: false
|
||||||
|
backupProfileName: dump-instance-profile
|
||||||
|
enabled: true
|
||||||
|
- name: snapshot-schedule
|
||||||
|
schedule: "0 0 * * *"
|
||||||
|
timeZone: US/Central
|
||||||
|
deleteBackupData: false
|
||||||
|
backupProfileName: snapshot-profile
|
||||||
|
enabled: true
|
||||||
|
cloudflared:
|
||||||
|
global:
|
||||||
|
nameOverride: cloudflared
|
||||||
|
controllers:
|
||||||
|
main:
|
||||||
|
type: deployment
|
||||||
|
strategy: Recreate
|
||||||
|
containers:
|
||||||
|
main:
|
||||||
|
image:
|
||||||
|
repository: cloudflare/cloudflared
|
||||||
|
tag: "2024.5.0"
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
args:
|
||||||
|
- tunnel
|
||||||
|
- --no-autoupdate
|
||||||
|
- run
|
||||||
|
- --token
|
||||||
|
- $(CF_MANAGED_TUNNEL_TOKEN)
|
||||||
|
env:
|
||||||
|
- name: CF_MANAGED_TUNNEL_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ghost-cloudflared-secret
|
||||||
|
key: cf-tunnel-token
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
Reference in New Issue
Block a user