From 1d828f455c410315f4591be8f33bd41b6bfe169e Mon Sep 17 00:00:00 2001 From: rblundon Date: Thu, 14 Aug 2025 22:08:45 -0500 Subject: [PATCH] add monetnaildesign --- applications/app-monetnaildesign.yaml | 33 +++++++++++++ .../app-web-monetnaildesign/buildconfig.yaml | 40 ++++++++++++++++ .../app-web-monetnaildesign/deployment.yaml | 48 +++++++++++++++++++ .../externalsecrets.yaml | 15 ++++++ .../app-web-monetnaildesign/imagestream.yaml | 10 ++++ .../app-web-monetnaildesign/ingress.yaml | 42 ++++++++++++++++ .../kustomization.yaml | 16 +++++++ .../app-web-monetnaildesign/namespace.yaml | 13 +++++ .../app-web-monetnaildesign/service.yaml | 16 +++++++ cluster/nfs-storage/storageprofile.yaml | 19 ++++++++ 10 files changed, 252 insertions(+) create mode 100644 applications/app-monetnaildesign.yaml create mode 100644 applications/app-web-monetnaildesign/buildconfig.yaml create mode 100644 applications/app-web-monetnaildesign/deployment.yaml create mode 100644 applications/app-web-monetnaildesign/externalsecrets.yaml create mode 100644 applications/app-web-monetnaildesign/imagestream.yaml create mode 100644 applications/app-web-monetnaildesign/ingress.yaml create mode 100644 applications/app-web-monetnaildesign/kustomization.yaml create mode 100644 applications/app-web-monetnaildesign/namespace.yaml create mode 100644 applications/app-web-monetnaildesign/service.yaml create mode 100644 cluster/nfs-storage/storageprofile.yaml diff --git a/applications/app-monetnaildesign.yaml b/applications/app-monetnaildesign.yaml new file mode 100644 index 0000000..2a4db25 --- /dev/null +++ b/applications/app-monetnaildesign.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: monetnaildesign-web + finalizers: + - resources-finalizer.argocd.argoproj.io + annotations: + argocd.argoproj.io/sync-wave: "5" +spec: + destination: + name: in-cluster + namespace: monetnaildesign + project: default + source: + path: applications/app-web-monetnaildesign + repoURL: https://github.com/rblundon/homelab.git + targetRevision: HEAD + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - RespectIgnoreDifferences=true + - CreateNamespace=true + managedNamespaceMetadata: + labels: + argocd.argoproj.io/managed-by: openshift-gitops + ignoreDifferences: + - group: apps + kind: Deployment + jsonPointers: + - /spec/replicas \ No newline at end of file diff --git a/applications/app-web-monetnaildesign/buildconfig.yaml b/applications/app-web-monetnaildesign/buildconfig.yaml new file mode 100644 index 0000000..3de190c --- /dev/null +++ b/applications/app-web-monetnaildesign/buildconfig.yaml @@ -0,0 +1,40 @@ +--- +apiVersion: build.openshift.io/v1 +kind: BuildConfig +metadata: + annotations: + description: Defines how to build the application + template.alpha.openshift.io/wait-for-ready: "true" + name: monetnaildesign-nginx-build + labels: + app: monetnaildesign-nginx + template: nginx-example + name: monetnaildesign-nginx +spec: + output: + to: + kind: ImageStreamTag + name: monetnaildesign-nginx:latest + source: + contextDir: "" + git: + ref: "" + uri: https://github.com/rblundon/monetnaildesign.git +# uri: https://github.com/sclorg/nginx-ex.git + type: Git + strategy: + sourceStrategy: + from: + kind: ImageStreamTag + name: nginx:latest + namespace: openshift + type: Source + triggers: + - type: ImageChange + - type: ConfigChange + - github: + secret: 0Q6mNn8Qj2vCQNwKhvk5O1F8tIQVyxRPehiwhGrP + type: GitHub + - generic: + secret: q86RdskVovs1yd1lfqRm0BncEHc8HjdH2I86CnNP + type: Generic \ No newline at end of file diff --git a/applications/app-web-monetnaildesign/deployment.yaml b/applications/app-web-monetnaildesign/deployment.yaml new file mode 100644 index 0000000..4a6d260 --- /dev/null +++ b/applications/app-web-monetnaildesign/deployment.yaml @@ -0,0 +1,48 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + description: Defines how to deploy the application server + image.openshift.io/triggers: '[{"from":{"kind":"ImageStreamTag","name":"monetnaildesign-nginx:latest"},"fieldPath": + "spec.template.spec.containers[0].image"}]' + template.alpha.openshift.io/wait-for-ready: "true" + labels: + app: monetnaildesign-nginx + template: nginx-example + name: monetnaildesign-nginx +spec: + replicas: 1 + selector: + matchLabels: + app: monetnaildesign-nginx + name: monetnaildesign-nginx + strategy: + type: RollingUpdate + template: + metadata: + labels: + app: monetnaildesign-nginx + name: monetnaildesign-nginx + spec: + containers: + - env: [] + image: 'image-registry.openshift-image-registry.svc:5000/monetnaildesign/monetnaildesign-nginx' + livenessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 30 + timeoutSeconds: 3 + name: monetnaildesign-nginx + ports: + - containerPort: 8080 + readinessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 3 + timeoutSeconds: 3 + resources: + limits: + memory: 512Mi \ No newline at end of file diff --git a/applications/app-web-monetnaildesign/externalsecrets.yaml b/applications/app-web-monetnaildesign/externalsecrets.yaml new file mode 100644 index 0000000..af44f9c --- /dev/null +++ b/applications/app-web-monetnaildesign/externalsecrets.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: cloudflare-api-token-monetnaildesign # This is the secret name + namespace: external-dns +spec: + secretStoreRef: + kind: ClusterSecretStore + name: doppler-cluster + refreshInterval: "1h" + data: + - secretKey: api-token-monetnaildesign + remoteRef: + key: CLOUDFLARE_TOKEN_MONETNAILDESIGN diff --git a/applications/app-web-monetnaildesign/imagestream.yaml b/applications/app-web-monetnaildesign/imagestream.yaml new file mode 100644 index 0000000..610f97d --- /dev/null +++ b/applications/app-web-monetnaildesign/imagestream.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: image.openshift.io/v1 +kind: ImageStream +metadata: + annotations: + description: Keeps track of changes in the application image + labels: + app: monetnaildesign-nginx + template: nginx-example + name: monetnaildesign-nginx \ No newline at end of file diff --git a/applications/app-web-monetnaildesign/ingress.yaml b/applications/app-web-monetnaildesign/ingress.yaml new file mode 100644 index 0000000..919f228 --- /dev/null +++ b/applications/app-web-monetnaildesign/ingress.yaml @@ -0,0 +1,42 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + # external-dns.alpha.kubernetes.io/hostname: monetnaildesign.com + # external-dns.alpha.kubernetes.io/target: ingress.monetnaildesign.com + name: monetnaildesign-external + namespace: monetnaildesign + labels: + app.kubernetes.io/instance: monetnaildesign + app.kubernetes.io/name: monetnaildesign + app: external-dns-monetnaildesign +spec: + ingressClassName: nginx-external + tls: + - hosts: + - monetnaildesign.com + - www.monetnaildesign.com + secretName: monetnaildesign-tls + rules: + - host: monetnaildesign.com + http: + paths: + - path: / + pathType: ImplementationSpecific + backend: + service: + name: monetnaildesign-nginx + port: + number: 80 + - host: www.monetnaildesign.com + http: + paths: + - path: / + pathType: ImplementationSpecific + backend: + service: + name: monetnaildesign-nginx + port: + number: 80 \ No newline at end of file diff --git a/applications/app-web-monetnaildesign/kustomization.yaml b/applications/app-web-monetnaildesign/kustomization.yaml new file mode 100644 index 0000000..6c4f83d --- /dev/null +++ b/applications/app-web-monetnaildesign/kustomization.yaml @@ -0,0 +1,16 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonAnnotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + +resources: +# Application deployment +- namespace.yaml +- imagestream.yaml +- buildconfig.yaml +- deployment.yaml +#- externalsecrets.yaml +- service.yaml +- ingress.yaml \ No newline at end of file diff --git a/applications/app-web-monetnaildesign/namespace.yaml b/applications/app-web-monetnaildesign/namespace.yaml new file mode 100644 index 0000000..dbc1260 --- /dev/null +++ b/applications/app-web-monetnaildesign/namespace.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + labels: + kubernetes.io/metadata.name: monetnaildesign + name: monetnaildesign + argocd.argoproj.io/managed-by: openshift-gitops-operator + openshift.io/cluster-monitoring: 'true' + name: monetnaildesign +spec: + finalizers: + - kubernetes \ No newline at end of file diff --git a/applications/app-web-monetnaildesign/service.yaml b/applications/app-web-monetnaildesign/service.yaml new file mode 100644 index 0000000..f0c7852 --- /dev/null +++ b/applications/app-web-monetnaildesign/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + description: Exposes and load balances the application pods + labels: + app: monetnaildesign-nginx + template: nginx-example + name: monetnaildesign-nginx +spec: + ports: + - name: web + port: 80 + targetPort: 8080 + selector: + name: monetnaildesign-nginx \ No newline at end of file diff --git a/cluster/nfs-storage/storageprofile.yaml b/cluster/nfs-storage/storageprofile.yaml new file mode 100644 index 0000000..7d71e5d --- /dev/null +++ b/cluster/nfs-storage/storageprofile.yaml @@ -0,0 +1,19 @@ +--- +apiVersion: cdi.kubevirt.io/v1beta1 +kind: StorageProfile +metadata: + name: synology-nfs +spec: + claimPropertySets: + - accessModes: + - ReadWriteOnce + volumeMode: + Filesystem + - accessModes: + - ReadWriteMany + volumeMode: + Filesystem + cloneStrategy: csi-clone +status: + provisioner: storage.io/nfs + storageClass: synology-nfs \ No newline at end of file