add monetnaildesign

This commit is contained in:
2025-08-14 22:08:45 -05:00
parent fabc113c84
commit 1d828f455c
10 changed files with 252 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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