deploy nginx ingress to internal cluster
This commit is contained in:
@@ -17,7 +17,7 @@ spec:
|
||||
serviceAccountName: external-dns
|
||||
containers:
|
||||
- name: cloudflare
|
||||
image: registry.k8s.io/external-dns/external-dns:v0.15.0
|
||||
image: registry.k8s.io/external-dns/external-dns:v0.18.0
|
||||
args:
|
||||
# - --source=service # ingress is also possible
|
||||
- --source=ingress
|
||||
@@ -27,7 +27,6 @@ spec:
|
||||
# - --cloudflare-proxied # (optional) enable the proxy feature of Cloudflare (DDOS protection, CDN...)
|
||||
- --cloudflare-dns-records-per-page=5000 # (optional) configure how many DNS records to fetch per request
|
||||
- --policy=sync # or upsert-only
|
||||
|
||||
env:
|
||||
- name: CF_API_TOKEN
|
||||
valueFrom:
|
||||
8
cluster/external-dns/overlays/external/kustomization.yaml
vendored
Normal file
8
cluster/external-dns/overlays/external/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
commonAnnotations:
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
|
||||
resources:
|
||||
- ../../base
|
||||
5
cluster/external-dns/overlays/internal/configmap.yaml
Normal file
5
cluster/external-dns/overlays/internal/configmap.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: krb5.conf
|
||||
@@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
commonAnnotations:
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
|
||||
resources:
|
||||
- ../../base
|
||||
40
cluster/external-dns/overlays/internal/rfc2136.yaml
Normal file
40
cluster/external-dns/overlays/internal/rfc2136.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: external-dns
|
||||
spec:
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app: external-dns
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: external-dns
|
||||
spec:
|
||||
serviceAccountName: external-dns
|
||||
containers:
|
||||
- name: rfc2136
|
||||
image: registry.k8s.io/external-dns/external-dns:v0.18.0
|
||||
args:
|
||||
- --registry=txt
|
||||
- --txt-prefix=external-dns-
|
||||
- --txt-owner-id=k8s
|
||||
- --provider=rfc2136
|
||||
- --rfc2136-host=infra01.int.mk-labs.cloud
|
||||
- --rfc2136-port=53
|
||||
- --rfc2136-zone=int.mk-labs.cloud
|
||||
- --rfc2136-tsig-secret=96Ah/a2g0/nLeFGK+d/0tzQcccf9hCEIy34PoXX2Qg8=
|
||||
- --rfc2136-tsig-secret-alg=hmac-sha256
|
||||
- --rfc2136-tsig-keyname=externaldns-key
|
||||
- --rfc2136-tsig-axfr
|
||||
- --source=ingress
|
||||
- --domain-filter=int.mk-labs.cloud
|
||||
env:
|
||||
- name: FREEIPA_API_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: rfc2136-api-token
|
||||
key: api-token
|
||||
@@ -1,10 +0,0 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
commonAnnotations:
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
|
||||
resources:
|
||||
# - github.com/redhat-cop/gitops-catalog/external-secrets-operator/operator/overlays/stable
|
||||
# - github.com/redhat-cop/gitops-catalog/external-secrets-operator/instance/overlays/default
|
||||
- ../../base
|
||||
48
cluster/ingress-nginx-appset.yaml
Normal file
48
cluster/ingress-nginx-appset.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: ApplicationSet
|
||||
metadata:
|
||||
name: ingress-nginx
|
||||
namespace: openshift-gitops
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
goTemplate: true
|
||||
goTemplateOptions: ["missingkey=error"]
|
||||
generators:
|
||||
# - clusters: {} # Variable is .name
|
||||
- list: # Variable is .cluster
|
||||
elements:
|
||||
- cluster: internal
|
||||
template:
|
||||
metadata:
|
||||
name: '{{.cluster}}-ingress-nginx'
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "3"
|
||||
spec:
|
||||
destination:
|
||||
name: '{{.cluster}}'
|
||||
namespace: ingress-nginx
|
||||
project: default
|
||||
source:
|
||||
path: cluster/ingress-nginx
|
||||
repoURL: https://github.com/rblundon/homelab.git
|
||||
targetRevision: HEAD
|
||||
helm:
|
||||
valueFiles:
|
||||
- values-{{.cluster}}.yaml
|
||||
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
|
||||
14
cluster/ingress-nginx/Chart.yaml
Normal file
14
cluster/ingress-nginx/Chart.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
apiVersion: v2
|
||||
name: ingress-nginx-umbrella
|
||||
description: A helm chart to include ingress-nginx with values
|
||||
type: application
|
||||
version: 0.1.0
|
||||
appVersion: 0.1.0
|
||||
|
||||
dependencies:
|
||||
- name: ingress-nginx
|
||||
version: v1.13.0
|
||||
repository: https://charts.jetstack.io
|
||||
alias: ingress-nginx
|
||||
condition: ingress-nginx.enabled
|
||||
@@ -12,5 +12,3 @@ resources:
|
||||
- scc.yaml
|
||||
- namespace.yaml
|
||||
- pvcs.yaml
|
||||
- ingresscontroller-external.yaml
|
||||
- ingresscontroller-internal.yaml
|
||||
14
cluster/ingress-nginx/base/namespace.yaml
Normal file
14
cluster/ingress-nginx/base/namespace.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
labels:
|
||||
kubernetes.io/metadata.name: nginx-ingress
|
||||
name: nginx-ingress
|
||||
argocd.argoproj.io/managed-by: openshift-gitops-operator
|
||||
name: nginx-ingress
|
||||
spec:
|
||||
finalizers:
|
||||
- kubernetes
|
||||
13
cluster/ingress-nginx/base/pvcs.yaml
Normal file
13
cluster/ingress-nginx/base/pvcs.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: nginx-cache
|
||||
namespace: nginx-ingress
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: synology-nfs
|
||||
8
cluster/ingress-nginx/overlays/external/kustomization.yaml
vendored
Normal file
8
cluster/ingress-nginx/overlays/external/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
commonAnnotations:
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
|
||||
resources:
|
||||
- ../../base
|
||||
@@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
commonAnnotations:
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
|
||||
resources:
|
||||
- ../../base
|
||||
6
cluster/ingress-nginx/values-internal.yaml
Normal file
6
cluster/ingress-nginx/values-internal.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
## nginx configuration
|
||||
## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/index.md
|
||||
|
||||
ingress-nginx:
|
||||
enabled: true
|
||||
@@ -1,24 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
kubernetes.io/metadata.name: nginx-ingress-external
|
||||
name: nginx-ingress-external
|
||||
argocd.argoproj.io/managed-by: openshift-gitops-operator
|
||||
name: nginx-ingress-external
|
||||
spec:
|
||||
finalizers:
|
||||
- kubernetes
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
kubernetes.io/metadata.name: nginx-ingress-internal
|
||||
name: nginx-ingress-internal
|
||||
argocd.argoproj.io/managed-by: openshift-gitops-operator
|
||||
name: nginx-ingress-internal
|
||||
spec:
|
||||
finalizers:
|
||||
- kubernetes
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: nginx-cache-external
|
||||
namespace: nginx-ingress-external
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: synology-nfs
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: nginx-cache-internal
|
||||
namespace: nginx-ingress-internal
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: synology-nfs
|
||||
Reference in New Issue
Block a user