2022-09-07 23:43:39 +02:00
---
2022-09-08 01:58:09 +02:00
apiVersion : v1
kind : Namespace
metadata :
name : nginx-ingress
---
apiVersion : v1
kind : ServiceAccount
metadata :
name : nginx-ingress
namespace : nginx-ingress
---
kind : ClusterRole
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : nginx-ingress
rules :
- apiGroups :
- ""
resources :
- services
- endpoints
verbs :
- get
- list
- watch
- apiGroups :
- ""
resources :
- secrets
verbs :
- get
- list
- watch
- apiGroups :
- ""
resources :
- configmaps
verbs :
- get
- list
- watch
- update
- create
- apiGroups :
- ""
resources :
- pods
verbs :
- list
- watch
- apiGroups :
- ""
resources :
- namespaces
verbs :
- get
- list
- watch
- apiGroups :
- ""
resources :
- events
verbs :
- create
- patch
- list
- apiGroups :
- coordination.k8s.io
resources :
- leases
verbs :
- get
- list
- watch
- update
- create
- apiGroups :
- networking.k8s.io
resources :
- ingresses
verbs :
- list
- watch
- get
- apiGroups :
- networking.k8s.io
resources :
- ingresses/status
verbs :
- update
- apiGroups :
- k8s.nginx.org
resources :
- virtualservers
- virtualserverroutes
- globalconfigurations
- transportservers
- policies
verbs :
- list
- watch
- get
- apiGroups :
- k8s.nginx.org
resources :
- virtualservers/status
- virtualserverroutes/status
- policies/status
- transportservers/status
- dnsendpoints/status
verbs :
- update
- apiGroups :
- networking.k8s.io
resources :
- ingressclasses
verbs :
- get
- apiGroups :
- cis.f5.com
resources :
- ingresslinks
verbs :
- list
- watch
- get
- apiGroups :
- cert-manager.io
resources :
- certificates
verbs :
- list
- watch
- get
- update
- create
- delete
- apiGroups :
- externaldns.nginx.org
resources :
- dnsendpoints
verbs :
- list
- watch
- get
- update
- create
- delete
- apiGroups :
- externaldns.nginx.org
resources :
- dnsendpoints/status
verbs :
- update
---
kind : ClusterRoleBinding
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : nginx-ingress
subjects :
- kind : ServiceAccount
name : nginx-ingress
namespace : nginx-ingress
roleRef :
kind : ClusterRole
name : nginx-ingress
apiGroup : rbac.authorization.k8s.io
---
kind : ClusterRole
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : nginx-ingress-app-protect
rules :
- apiGroups :
- appprotect.f5.com
resources :
- appolicies
- aplogconfs
- apusersigs
verbs :
- "get"
- "watch"
- "list"
---
kind : ClusterRoleBinding
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : nginx-ingress-app-protect
subjects :
- kind : ServiceAccount
name : nginx-ingress
namespace : nginx-ingress
roleRef :
kind : ClusterRole
name : nginx-ingress-app-protect
apiGroup : rbac.authorization.k8s.io
---
kind : ClusterRole
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : nginx-ingress-app-protect-dos
rules :
- apiGroups :
- appprotectdos.f5.com
resources :
- apdospolicies
- apdoslogconfs
- dosprotectedresources
verbs :
- "get"
- "watch"
- "list"
---
kind : ClusterRoleBinding
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name : nginx-ingress-app-protect-dos
subjects :
- kind : ServiceAccount
name : nginx-ingress
namespace : nginx-ingress
roleRef :
kind : ClusterRole
name : nginx-ingress-app-protect-dos
apiGroup : rbac.authorization.k8s.io
---
apiVersion : v1
kind : Secret
metadata :
name : default-server-secret
namespace : nginx-ingress
type : kubernetes.io/tls
data :
tls.crt : LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN2akNDQWFZQ0NRREFPRjl0THNhWFhEQU5CZ2txaGtpRzl3MEJBUXNGQURBaE1SOHdIUVlEVlFRRERCWk8KUjBsT1dFbHVaM0psYzNORGIyNTBjbTlzYkdWeU1CNFhEVEU0TURreE1qRTRNRE16TlZvWERUSXpNRGt4TVRFNApNRE16TlZvd0lURWZNQjBHQTFVRUF3d1dUa2RKVGxoSmJtZHlaWE56UTI5dWRISnZiR3hsY2pDQ0FTSXdEUVlKCktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUwvN2hIUEtFWGRMdjNyaUM3QlBrMTNpWkt5eTlyQ08KR2xZUXYyK2EzUDF0azIrS3YwVGF5aGRCbDRrcnNUcTZzZm8vWUk1Y2Vhbkw4WGM3U1pyQkVRYm9EN2REbWs1Qgo4eDZLS2xHWU5IWlg0Rm5UZ0VPaStlM2ptTFFxRlBSY1kzVnNPazFFeUZBL0JnWlJVbkNHZUtGeERSN0tQdGhyCmtqSXVuektURXUyaDU4Tlp0S21ScUJHdDEwcTNRYzhZT3ExM2FnbmovUWRjc0ZYYTJnMjB1K1lYZDdoZ3krZksKWk4vVUkxQUQ0YzZyM1lma1ZWUmVHd1lxQVp1WXN2V0RKbW1GNWRwdEMzN011cDBPRUxVTExSakZJOTZXNXIwSAo1TmdPc25NWFJNV1hYVlpiNWRxT3R0SmRtS3FhZ25TZ1JQQVpQN2MwQjFQU2FqYzZjNGZRVXpNQ0F3RUFBVEFOCkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWpLb2tRdGRPcEsrTzhibWVPc3lySmdJSXJycVFVY2ZOUitjb0hZVUoKdGhrYnhITFMzR3VBTWI5dm15VExPY2xxeC9aYzJPblEwMEJCLzlTb0swcitFZ1U2UlVrRWtWcitTTFA3NTdUWgozZWI4dmdPdEduMS9ienM3bzNBaS9kclkrcUI5Q2k1S3lPc3FHTG1US2xFaUtOYkcyR1ZyTWxjS0ZYQU80YTY3Cklnc1hzYktNbTQwV1U3cG9mcGltU1ZmaXFSdkV5YmN3N0NYODF6cFErUyt1eHRYK2VBZ3V0NHh3VlI5d2IyVXYKelhuZk9HbWhWNThDd1dIQnNKa0kxNXhaa2VUWXdSN0diaEFMSkZUUkk3dkhvQXprTWIzbjAxQjQyWjNrN3RXNQpJUDFmTlpIOFUvOWxiUHNoT21FRFZkdjF5ZytVRVJxbStGSis2R0oxeFJGcGZnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
tls.key : LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdi91RWM4b1JkMHUvZXVJTHNFK1RYZUprckxMMnNJNGFWaEMvYjVyYy9XMlRiNHEvClJOcktGMEdYaVN1eE9ycXgrajlnamx4NXFjdnhkenRKbXNFUkJ1Z1B0ME9hVGtIekhvb3FVWmcwZGxmZ1dkT0EKUTZMNTdlT1l0Q29VOUZ4amRXdzZUVVRJVUQ4R0JsRlNjSVo0b1hFTkhzbysyR3VTTWk2Zk1wTVM3YUhudzFtMApxWkdvRWEzWFNyZEJ6eGc2clhkcUNlUDlCMXl3VmRyYURiUzc1aGQzdUdETDU4cGszOVFqVUFQaHpxdmRoK1JWClZGNGJCaW9CbTVpeTlZTW1hWVhsMm0wTGZzeTZuUTRRdFFzdEdNVWozcGJtdlFmazJBNnljeGRFeFpkZFZsdmwKMm82MjBsMllxcHFDZEtCRThCay90elFIVTlKcU56cHpoOUJUTXdJREFRQUJBb0lCQVFDZklHbXowOHhRVmorNwpLZnZJUXQwQ0YzR2MxNld6eDhVNml4MHg4Mm15d1kxUUNlL3BzWE9LZlRxT1h1SENyUlp5TnUvZ2IvUUQ4bUFOCmxOMjRZTWl0TWRJODg5TEZoTkp3QU5OODJDeTczckM5bzVvUDlkazAvYzRIbjAzSkVYNzZ5QjgzQm9rR1FvYksKMjhMNk0rdHUzUmFqNjd6Vmc2d2szaEhrU0pXSzBwV1YrSjdrUkRWYmhDYUZhNk5nMUZNRWxhTlozVDhhUUtyQgpDUDNDeEFTdjYxWTk5TEI4KzNXWVFIK3NYaTVGM01pYVNBZ1BkQUk3WEh1dXFET1lvMU5PL0JoSGt1aVg2QnRtCnorNTZud2pZMy8yUytSRmNBc3JMTnIwMDJZZi9oY0IraVlDNzVWYmcydVd6WTY3TWdOTGQ5VW9RU3BDRkYrVm4KM0cyUnhybnhBb0dCQU40U3M0ZVlPU2huMVpQQjdhTUZsY0k2RHR2S2ErTGZTTXFyY2pOZjJlSEpZNnhubmxKdgpGenpGL2RiVWVTbWxSekR0WkdlcXZXaHFISy9iTjIyeWJhOU1WMDlRQ0JFTk5jNmtWajJTVHpUWkJVbEx4QzYrCk93Z0wyZHhKendWelU0VC84ajdHalRUN05BZVpFS2FvRHFyRG5BYWkyaW5oZU1JVWZHRXFGKzJyQW9HQkFOMVAKK0tZL0lsS3RWRzRKSklQNzBjUis3RmpyeXJpY05iWCtQVzUvOXFHaWxnY2grZ3l4b25BWlBpd2NpeDN3QVpGdwpaZC96ZFB2aTBkWEppc1BSZjRMazg5b2pCUmpiRmRmc2l5UmJYbyt3TFU4NUhRU2NGMnN5aUFPaTVBRHdVU0FkCm45YWFweUNweEFkREtERHdObit3ZFhtaTZ0OHRpSFRkK3RoVDhkaVpBb0dCQUt6Wis1bG9OOTBtYlF4VVh5YUwKMjFSUm9tMGJjcndsTmVCaWNFSmlzaEhYa2xpSVVxZ3hSZklNM2hhUVRUcklKZENFaHFsV01aV0xPb2I2NTNyZgo3aFlMSXM1ZUtka3o0aFRVdnpldm9TMHVXcm9CV2xOVHlGanIrSWhKZnZUc0hpOGdsU3FkbXgySkJhZUFVWUNXCndNdlQ4NmNLclNyNkQrZG8wS05FZzFsL0FvR0FlMkFVdHVFbFNqLzBmRzgrV3hHc1RFV1JqclRNUzRSUjhRWXQKeXdjdFA4aDZxTGxKUTRCWGxQU05rMXZLTmtOUkxIb2pZT2pCQTViYjhibXNVU1BlV09NNENoaFJ4QnlHbmR2eAphYkJDRkFwY0IvbEg4d1R0alVZYlN5T294ZGt5OEp0ek90ajJhS0FiZHd6NlArWDZDODhjZmxYVFo5MWpYL3RMCjF3TmRKS2tDZ1lCbyt0UzB5TzJ2SWFmK2UwSkN5TGhzVDQ5cTN3Zis2QWVqWGx2WDJ1VnRYejN5QTZnbXo5aCsKcDNlK2JMRUxwb3B0WFhNdUFRR0xhUkcrYlNNcjR5dERYbE5ZSndUeThXczNKY3dlSTdqZVp2b0ZpbmNvVlVIMwphdmxoTUVCRGYxSjltSDB5cDBwWUNaS2ROdHNvZEZtQktzVEtQMjJhTmtsVVhCS3gyZzR6cFE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
---
kind : ConfigMap
apiVersion : v1
metadata :
name : nginx-config
namespace : nginx-ingress
data :
---
2022-09-07 23:43:39 +02:00
apiVersion : networking.k8s.io/v1
kind : IngressClass
metadata :
name : nginx
annotations :
ingressclass.kubernetes.io/is-default-class : "true"
spec :
2022-09-08 01:58:09 +02:00
controller : nginx.org/ingress-controller
---
apiVersion : apiextensions.k8s.io/v1
kind : CustomResourceDefinition
metadata :
annotations :
controller-gen.kubebuilder.io/version : v0.9.2
creationTimestamp : null
name : globalconfigurations.k8s.nginx.org
spec :
group : k8s.nginx.org
names :
kind : GlobalConfiguration
listKind : GlobalConfigurationList
plural : globalconfigurations
shortNames :
- gc
singular : globalconfiguration
scope : Namespaced
versions :
- name : v1alpha1
schema :
openAPIV3Schema :
description : GlobalConfiguration defines the GlobalConfiguration resource.
type : object
properties :
apiVersion :
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info : https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type : string
kind :
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info : https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type : string
metadata :
type : object
spec :
description : GlobalConfigurationSpec is the spec of the GlobalConfiguration resource.
type : object
properties :
listeners :
type : array
items :
description : Listener defines a listener.
type : object
properties :
name :
type : string
port :
type : integer
protocol :
type : string
served : true
storage : true
---
apiVersion : apps/v1
kind : DaemonSet
metadata :
name : nginx-ingress
namespace : nginx-ingress
spec :
selector :
matchLabels :
app : nginx-ingress
template :
metadata :
labels :
app : nginx-ingress
#annotations:
#prometheus.io/scrape: "true"
#prometheus.io/port: "9113"
#prometheus.io/scheme: http
spec :
serviceAccountName : nginx-ingress
containers :
- image : nginx/nginx-ingress:2.3.0
imagePullPolicy : IfNotPresent
name : nginx-ingress
ports :
- name : http
containerPort : 80
hostPort : 80
- name : https
containerPort : 443
hostPort : 443
- name : readiness-port
containerPort : 8081
- name : prometheus
containerPort : 9113
readinessProbe :
httpGet :
path : /nginx-ready
port : readiness-port
periodSeconds : 1
resources :
requests :
cpu : "100m"
memory : "128Mi"
#limits:
# cpu: "1"
# memory: "1Gi"
securityContext :
allowPrivilegeEscalation : true
runAsUser : 101 #nginx
capabilities :
drop :
- ALL
add :
- NET_BIND_SERVICE
env :
- name : POD_NAMESPACE
valueFrom :
fieldRef :
fieldPath : metadata.namespace
- name : POD_NAME
valueFrom :
fieldRef :
fieldPath : metadata.name
args :
- -nginx-configmaps=$(POD_NAMESPACE)/nginx-config
- -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret
- -enable-custom-resources=false
#- -include-year
#- -v=3 # Enables extensive logging. Useful for troubleshooting.
#- -report-ingress-status
#- -external-service=nginx-ingress
#- -enable-prometheus-metrics
#- -global-configuration=$(POD_NAMESPACE)/nginx-configuration