From 4d9e1bea6a657f7e7ff32eeb4a2e7bfd38cf63f8 Mon Sep 17 00:00:00 2001 From: Ruben Hensen Date: Tue, 25 Mar 2025 15:24:44 +0100 Subject: [PATCH] Add blog --- apps/templates/blog-helm.yaml | 128 +++++++++++++++++++++++++++++ apps/templates/secrets-folder.yaml | 21 +++++ secrets/blog.yaml | 22 +++++ secrets/hensenio-smtp.yaml | 18 ++++ 4 files changed, 189 insertions(+) create mode 100644 apps/templates/blog-helm.yaml create mode 100644 apps/templates/secrets-folder.yaml create mode 100644 secrets/blog.yaml create mode 100644 secrets/hensenio-smtp.yaml diff --git a/apps/templates/blog-helm.yaml b/apps/templates/blog-helm.yaml new file mode 100644 index 0000000..26b991f --- /dev/null +++ b/apps/templates/blog-helm.yaml @@ -0,0 +1,128 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: blog-helm + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + destination: + namespace: blog + server: https://kubernetes.default.svc + project: default + source: + repoURL: registry-1.docker.io/bitnamicharts + targetRevision: 22.2.4 + chart: ghost + helm: + values: | + image: + debug: false + ghostUsername: ruben + ## @param existingSecret Name of existing secret containing Ghost credentials + ## NOTE: Must contain key `ghost-password` + ## NOTE: When it's set, the `ghostPassword` parameter is ignored + existingSecret: ghost-es + ghostEmail: ruben.hensen@protonmail.com + ghostBlogTitle: Catch && Compile + ghostHost: "blog.hensen.io" + ghostPath: / + ghostEnableHttps: true + ## SMTP mail delivery configuration + ## ref: https://github.com/bitnami/containers/tree/main/bitnami/ghost/#smtp-configuration + ## @param smtpHost SMTP server host + ## @param smtpPort SMTP server port + ## @param smtpUser SMTP username + ## @param smtpPassword SMTP user password + ## @param smtpService SMTP service + ## @param smtpProtocol SMTP protocol (ssl or tls) + ## + smtpHost: smtp.hostinger.com + smtpPort: 465 + smtpUser: ruben@hensen.io + smtpProtocol: tls + ## @param smtpExistingSecret The name of an existing secret with SMTP credentials + ## NOTE: Must contain key `smtp-password` + ## NOTE: When it's set, the `smtpPassword` parameter is ignored + ## + smtpExistingSecret: hensenio-smtp + ## @param allowEmptyPassword Allow the container to be started with blank passwords + allowEmptyPassword: false + resourcesPreset: "micro" + containerPorts: + http: 2368 + https: 2368 + service: + type: ClusterIP + ports: + http: 80 + https: 443 + ingress: + enabled: true + ingressClassName: nginx + hostname: blog.hensen.io + path: / + annotations: + cert-manager.io/cluster-issuer: prod-cluster-issuer + nginx.ingress.kubernetes.io/proxy-body-size: 1G + tls: true + tlsWwwPrefix: false + selfSigned: false + extraHosts: + - name: blog.hensen.io + extraPaths: [] + extraTls: + - secretName: letsencrypt-prod + hosts: + - blog.hensen.io + secrets: [] + extraRules: [] + persistence: + enabled: true + accessModes: + - ReadWriteOnce + size: 8Gi + mysql: + enabled: true + architecture: standalone + ## MySQL Authentication parameters + ## @param mysql.auth.rootPassword MySQL root password + ## @param mysql.auth.database MySQL custom database + ## @param mysql.auth.username MySQL custom user name + ## @param mysql.auth.password MySQL custom user password + ## @param mysql.auth.existingSecret Existing secret with MySQL credentials + ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#setting-the-root-password-on-first-run + ## https://github.com/bitnami/containers/tree/main/bitnami/mysql/#creating-a-database-on-first-run + ## https://github.com/bitnami/containers/tree/main/bitnami/mysql/#creating-a-database-user-on-first-run + auth: + database: bitnami_ghost + username: bn_ghost + existingSecret: ghost-es + primary: + ## MySQL Primary Persistence parameters + ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/ + ## @param mysql.primary.persistence.enabled Enable persistence on MySQL using PVC(s) + ## @param mysql.primary.persistence.storageClass Persistent Volume storage class + ## @param mysql.primary.persistence.accessModes [array] Persistent Volume access modes + ## @param mysql.primary.persistence.size Persistent Volume size + ## + persistence: + enabled: true + storageClass: "" + accessModes: + - ReadWriteOnce + size: 8Gi + ## MySQL primary container's resource requests and limits + ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ + ## We usually recommend not to specify default resources and to leave this as a conscious + ## choice for the user. This also increases chances charts run on environments with little + ## resources, such as Minikube. If you do want to specify resources, uncomment the following + ## lines, adjust them as necessary, and remove the curly braces after 'resources:'. + ## @param mysql.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production) + resourcesPreset: "small" + + syncPolicy: + syncOptions: + - CreateNamespace=true + automated: + selfHeal: true diff --git a/apps/templates/secrets-folder.yaml b/apps/templates/secrets-folder.yaml new file mode 100644 index 0000000..024a82e --- /dev/null +++ b/apps/templates/secrets-folder.yaml @@ -0,0 +1,21 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: secrets-folder + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: https://github.com/rubenhensen/k8scd.git + targetRevision: HEAD + path: secrets + destination: + server: https://kubernetes.default.svc + namespace: secrets + syncPolicy: + syncOptions: + - CreateNamespace=true + automated: + selfHeal: true \ No newline at end of file diff --git a/secrets/blog.yaml b/secrets/blog.yaml new file mode 100644 index 0000000..0fe6069 --- /dev/null +++ b/secrets/blog.yaml @@ -0,0 +1,22 @@ +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: hensenio-smtp-secrets + namespace: mbgwp +spec: + refreshInterval: "15m" + secretStoreRef: + name: vault-backend + kind: ClusterSecretStore + target: + name: ghost-es + creationPolicy: Owner + data: + - secretKey: MYSQL_ROOT_PASSWORD + remoteRef: + key: kv/ghost + property: ghostmsqlpw + - secretKey: ghost-password + remoteRef: + key: kv/ghost + property: ghostpw \ No newline at end of file diff --git a/secrets/hensenio-smtp.yaml b/secrets/hensenio-smtp.yaml new file mode 100644 index 0000000..a2dd08a --- /dev/null +++ b/secrets/hensenio-smtp.yaml @@ -0,0 +1,18 @@ +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: hensenio-smtp-secrets + namespace: mbgwp +spec: + refreshInterval: "15m" + secretStoreRef: + name: vault-backend + kind: ClusterSecretStore + target: + name: hensenio-smtp + creationPolicy: Owner + data: + - secretKey: smtp-password + remoteRef: + key: kv/hensenio/smtp + property: password \ No newline at end of file