.
This commit is contained in:
parent
021a4e1a2a
commit
175b2e4358
23
README.md
23
README.md
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC=" --disable servicelb --disable traefik" sh -s -
|
||||||
|
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||||
|
helm repo add stable https://charts.helm.sh/stable
|
||||||
|
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
||||||
|
helm repo add jetstack https://charts.jetstack.io
|
||||||
|
helm repo update
|
||||||
|
helm install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx --create-namespace
|
||||||
|
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set crds.enabled=true
|
||||||
|
mkdir -p ~/.kube/
|
||||||
|
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
|
||||||
|
helm upgrade ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx -f ingress-values.yaml
|
||||||
|
kubectl apply -f matthewaveryusa_cloudflare_token_secret.yaml -n cert-manager
|
||||||
|
kubectl apply -f matthewaveryusa_cloudflare_issuer.yaml -n cert-manager
|
||||||
|
kubectl apply -f matthewaveryusa_certificate.yaml -n cert-manager
|
||||||
|
|
||||||
|
helm repo add argo https://argoproj.github.io/argo-helm
|
||||||
|
helm repo update
|
||||||
|
helm install argocd argo/argo-cd --namespace argocd --create-namespace
|
||||||
|
|
||||||
|
kubectl apply -n argocd -f argocd_ingress.yaml
|
||||||
|
helm upgrade argocd argo/argo-cd -f argocd-values.yaml -n argocd
|
||||||
|
kubectl apply -f argocd-appset.yaml -n argocd
|
30
argocd-appset.yaml
Normal file
30
argocd-appset.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: ApplicationSet
|
||||||
|
metadata:
|
||||||
|
name: k8s-applications
|
||||||
|
spec:
|
||||||
|
generators:
|
||||||
|
- git:
|
||||||
|
repoURL: ssh://git@git.averytribe.com:522/matthewaveryusa/mono.git
|
||||||
|
revision: main
|
||||||
|
directories:
|
||||||
|
- path: k8s/*
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
name: '{{path.basename}}' # This sets the app name to the folder name
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git.averytribe.com:522/matthewaveryusa/mono.git
|
||||||
|
targetRevision: main
|
||||||
|
path: '{{path}}'
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: '{{path.basename}}' # Deploy into a namespace matching the app name
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true # Ensures apps are removed if deleted from Git
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true # Ensures namespace is created if missing
|
||||||
|
|
3
argocd-values.yaml
Normal file
3
argocd-values.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
configs:
|
||||||
|
params:
|
||||||
|
server.insecure: true
|
26
argocd_ingress.yaml
Normal file
26
argocd_ingress.yaml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: argocd-server-http-ingress
|
||||||
|
namespace: argocd
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
|
||||||
|
cert-manager.io/cluster-issuer: matthewaveryusa-issuer
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: argocd-server
|
||||||
|
port:
|
||||||
|
name: http
|
||||||
|
host: argocd.matthewaveryusa.com
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- argocd.matthewaveryusa.com
|
||||||
|
secretName: matthewaveryusa-wildcard
|
6
ingress-values.yaml
Normal file
6
ingress-values.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
controller:
|
||||||
|
hostNetwork: true
|
||||||
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
service:
|
||||||
|
type: NodePort
|
||||||
|
|
14
matthewaveryusa_certificate.yaml
Normal file
14
matthewaveryusa_certificate.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: matthewaveryusa-wildcard
|
||||||
|
namespace : cert-manager
|
||||||
|
spec:
|
||||||
|
secretName: matthewaveryusa-wildcard
|
||||||
|
issuerRef:
|
||||||
|
name: matthewaveryusa-issuer
|
||||||
|
kind: ClusterIssuer
|
||||||
|
commonName: '*.matthewaveryusa.com'
|
||||||
|
dnsNames:
|
||||||
|
- "*.matthewaveryusa.com"
|
||||||
|
- "matthewaveryusa.com"
|
16
matthewaveryusa_cloudflare_issuer.yaml
Normal file
16
matthewaveryusa_cloudflare_issuer.yaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: ClusterIssuer
|
||||||
|
metadata:
|
||||||
|
name: matthewaveryusa-issuer
|
||||||
|
spec:
|
||||||
|
acme:
|
||||||
|
email: letsencrypt@matthewaveryusa.com
|
||||||
|
server: https://acme-v02.api.letsencrypt.org/directory
|
||||||
|
privateKeySecretRef:
|
||||||
|
name: matthewaveryusa-issuer-key
|
||||||
|
solvers:
|
||||||
|
- dns01:
|
||||||
|
cloudflare:
|
||||||
|
apiTokenSecretRef:
|
||||||
|
name: matthewaveryusa-cloudflare-api-token-secret
|
||||||
|
key: api-token
|
7
matthewaveryusa_cloudflare_token_secret.yaml
Normal file
7
matthewaveryusa_cloudflare_token_secret.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: matthewaveryusa-cloudflare-api-token-secret
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
api-token: ${CLOUDFLARE_MATTHEWAVERYUSA_TOKEN}
|
Loading…
x
Reference in New Issue
Block a user