add template and create script

This commit is contained in:
Mans Ziesel 2024-10-24 18:00:00 +02:00
parent aebb340f53
commit 0c63a9682c
7 changed files with 98 additions and 0 deletions

View File

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: argo-app-appname
namespace: argocd
spec:
destination:
name: ''
namespace: default
server: https://kubernetes.default.svc
source:
path: appname
repoURL: https://git.mziesel.nl/mans/argocd-test
targetRevision: HEAD
sources: []
project: default
syncPolicy:
automated:
prune: true
selfHeal: true

20
templates/bin/new-app.sh Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
[ $# != 1 ] &&
echo "wrong number of args, run with --help" &&
exit 1;
APPNAME=$1
cp -r ./templates/new-svc "$APPNAME"
cp ./templates/appname-application.yaml "argocd-applications/base/$APPNAME-application.yaml"
for file in "$APPNAME"/base/* ; do
rename appname "$APPNAME" "$file"
# NEWFILE=$(echo "$file" | sed "s/appname/$APPNAME/g")
NEWFILE=${file//appname/$APPNAME}
sed -i "s/appname/$APPNAME/g" "$NEWFILE"
done
sed -i "s/appname/$APPNAME/g" "./$APPNAME/kustomization.yaml"
sed -i "s/appname/$APPNAME/g" "argocd-applications/base/$APPNAME-application.yaml"

View File

@ -0,0 +1,21 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: appname
namespace: appname
spec:
replicas: 3
selector:
matchLabels:
app: appname
template:
metadata:
labels:
app: appname
spec:
containers:
- image: ghcr.io/gchq/appname:10.19.4
name: appname
ports:
- name: web
containerPort: 80

View File

@ -0,0 +1,12 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: appname-ingressroute
spec:
routes:
- match: Host(`appname.mziesel.nl`)
kind: Rule
services:
- name: appname
port: web
tls: {}

View File

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: appname

View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: appname
spec:
ports:
- name: web
port: 80
targetPort: web
selector:
app: appname

View File

@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: appname
resources:
- ./base/appname-namespace.yaml
- ./base/appname-deployment.yaml
- ./base/appname-svc.yaml
- ./base/appname-ingress.yaml