722 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			722 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
apiVersion: v1
 | 
						|
kind: Namespace
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
  name: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: v1
 | 
						|
automountServiceAccountToken: true
 | 
						|
kind: ServiceAccount
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx
 | 
						|
  namespace: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: v1
 | 
						|
kind: ServiceAccount
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-admission
 | 
						|
  namespace: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: Role
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx
 | 
						|
  namespace: ingress-nginx
 | 
						|
rules:
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - namespaces
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - configmaps
 | 
						|
  - pods
 | 
						|
  - secrets
 | 
						|
  - endpoints
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - services
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - networking.k8s.io
 | 
						|
  resources:
 | 
						|
  - ingresses
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - networking.k8s.io
 | 
						|
  resources:
 | 
						|
  - ingresses/status
 | 
						|
  verbs:
 | 
						|
  - update
 | 
						|
- apiGroups:
 | 
						|
  - networking.k8s.io
 | 
						|
  resources:
 | 
						|
  - ingressclasses
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resourceNames:
 | 
						|
  - ingress-nginx-leader
 | 
						|
  resources:
 | 
						|
  - configmaps
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - update
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - configmaps
 | 
						|
  verbs:
 | 
						|
  - create
 | 
						|
- apiGroups:
 | 
						|
  - coordination.k8s.io
 | 
						|
  resourceNames:
 | 
						|
  - ingress-nginx-leader
 | 
						|
  resources:
 | 
						|
  - leases
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - update
 | 
						|
- apiGroups:
 | 
						|
  - coordination.k8s.io
 | 
						|
  resources:
 | 
						|
  - leases
 | 
						|
  verbs:
 | 
						|
  - create
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - events
 | 
						|
  verbs:
 | 
						|
  - create
 | 
						|
  - patch
 | 
						|
- apiGroups:
 | 
						|
  - discovery.k8s.io
 | 
						|
  resources:
 | 
						|
  - endpointslices
 | 
						|
  verbs:
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
  - get
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: Role
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-admission
 | 
						|
  namespace: ingress-nginx
 | 
						|
rules:
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - secrets
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - create
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: ClusterRole
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx
 | 
						|
rules:
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - configmaps
 | 
						|
  - endpoints
 | 
						|
  - nodes
 | 
						|
  - pods
 | 
						|
  - secrets
 | 
						|
  - namespaces
 | 
						|
  verbs:
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - coordination.k8s.io
 | 
						|
  resources:
 | 
						|
  - leases
 | 
						|
  verbs:
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - nodes
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - services
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - networking.k8s.io
 | 
						|
  resources:
 | 
						|
  - ingresses
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - ""
 | 
						|
  resources:
 | 
						|
  - events
 | 
						|
  verbs:
 | 
						|
  - create
 | 
						|
  - patch
 | 
						|
- apiGroups:
 | 
						|
  - networking.k8s.io
 | 
						|
  resources:
 | 
						|
  - ingresses/status
 | 
						|
  verbs:
 | 
						|
  - update
 | 
						|
- apiGroups:
 | 
						|
  - networking.k8s.io
 | 
						|
  resources:
 | 
						|
  - ingressclasses
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
- apiGroups:
 | 
						|
  - discovery.k8s.io
 | 
						|
  resources:
 | 
						|
  - endpointslices
 | 
						|
  verbs:
 | 
						|
  - list
 | 
						|
  - watch
 | 
						|
  - get
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: ClusterRole
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-admission
 | 
						|
rules:
 | 
						|
- apiGroups:
 | 
						|
  - admissionregistration.k8s.io
 | 
						|
  resources:
 | 
						|
  - validatingwebhookconfigurations
 | 
						|
  verbs:
 | 
						|
  - get
 | 
						|
  - update
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: RoleBinding
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx
 | 
						|
  namespace: ingress-nginx
 | 
						|
roleRef:
 | 
						|
  apiGroup: rbac.authorization.k8s.io
 | 
						|
  kind: Role
 | 
						|
  name: ingress-nginx
 | 
						|
subjects:
 | 
						|
- kind: ServiceAccount
 | 
						|
  name: ingress-nginx
 | 
						|
  namespace: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: RoleBinding
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-admission
 | 
						|
  namespace: ingress-nginx
 | 
						|
roleRef:
 | 
						|
  apiGroup: rbac.authorization.k8s.io
 | 
						|
  kind: Role
 | 
						|
  name: ingress-nginx-admission
 | 
						|
subjects:
 | 
						|
- kind: ServiceAccount
 | 
						|
  name: ingress-nginx-admission
 | 
						|
  namespace: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: ClusterRoleBinding
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx
 | 
						|
roleRef:
 | 
						|
  apiGroup: rbac.authorization.k8s.io
 | 
						|
  kind: ClusterRole
 | 
						|
  name: ingress-nginx
 | 
						|
subjects:
 | 
						|
- kind: ServiceAccount
 | 
						|
  name: ingress-nginx
 | 
						|
  namespace: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: rbac.authorization.k8s.io/v1
 | 
						|
kind: ClusterRoleBinding
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-admission
 | 
						|
roleRef:
 | 
						|
  apiGroup: rbac.authorization.k8s.io
 | 
						|
  kind: ClusterRole
 | 
						|
  name: ingress-nginx-admission
 | 
						|
subjects:
 | 
						|
- kind: ServiceAccount
 | 
						|
  name: ingress-nginx-admission
 | 
						|
  namespace: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: v1
 | 
						|
data:
 | 
						|
  annotations-risk-level: Critical
 | 
						|
  allow-snippet-annotations: "true"
 | 
						|
  use-proxy-protocol: "true"
 | 
						|
  log-format-upstream: '{"time": "$time_iso8601", "request_id": "$req_id", "remote_user": "$remote_user", "remote_addr_masked": "$remote_addr_masked", "bytes_sent": $bytes_sent, "request_time": $request_time, "status": $status, "host": "$host", "request_proto": "$server_protocol", "path": "$uri", "request_query": "$args", "request_length": $request_length, "duration": $request_time,"method": "$request_method", "http_referrer": "$http_referer", "http_user_agent": "$http_user_agent", "redirect_location": "$redirect_location" }'
 | 
						|
  plugins: "redirect_location"
 | 
						|
  location-snippet: |
 | 
						|
    set $redirect_location '';
 | 
						|
  server-snippet: |
 | 
						|
    set_by_lua_block $remote_addr_masked {
 | 
						|
      local bit = require("bit")
 | 
						|
 | 
						|
      local hval = 2166136261
 | 
						|
      local rem_addr = ngx.var.remote_addr
 | 
						|
 | 
						|
      for w in rem_addr:gmatch(".") do
 | 
						|
        hval = bit.bxor(hval,string.byte(w))
 | 
						|
        hval = hval + bit.lshift(hval,1) + bit.lshift(hval,4) + bit.lshift(hval,7) + bit.lshift(hval,8) + bit.lshift(hval,24)
 | 
						|
      end
 | 
						|
      if hval < 0 then
 | 
						|
        hval = bit.bnot(hval)
 | 
						|
      end
 | 
						|
      local octet1 = bit.band(bit.rshift(hval,24), 255)
 | 
						|
      local octet2 = bit.band(bit.rshift(hval,16), 255)
 | 
						|
      local octet3 = bit.band(bit.rshift(hval,8), 255)
 | 
						|
      local octet4 = bit.band(hval, 255)
 | 
						|
      local op = octet1 .. "." .. octet2 .. "." .. octet3 .. "." .. octet4
 | 
						|
      return op
 | 
						|
    }
 | 
						|
kind: ConfigMap
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-controller
 | 
						|
  namespace: ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: v1
 | 
						|
kind: ConfigMap
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/managed-by: Helm
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
    k8s.scw.cloud/ingress: nginx
 | 
						|
    k8s.scw.cloud/object: ConfigMap
 | 
						|
    k8s.scw.cloud/system: ingress
 | 
						|
  name: ingress-nginx-plugin-redirect-location
 | 
						|
  namespace: ingress-nginx
 | 
						|
data:
 | 
						|
  main.lua: |
 | 
						|
    local ngx = ngx
 | 
						|
    local _M = {}
 | 
						|
    function _M.header_filter()
 | 
						|
      ngx.var.redirect_location = ngx.resp.get_headers()["Location"]
 | 
						|
    end
 | 
						|
    return _M
 | 
						|
---
 | 
						|
apiVersion: v1
 | 
						|
kind: Service
 | 
						|
metadata:
 | 
						|
  annotations:
 | 
						|
    service.beta.kubernetes.io/scw-loadbalancer-proxy-protocol-v2: "true"
 | 
						|
    service.beta.kubernetes.io/scw-loadbalancer-use-hostname: "true"
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-controller
 | 
						|
  namespace: ingress-nginx
 | 
						|
spec:
 | 
						|
  externalTrafficPolicy: Local
 | 
						|
  ipFamilies:
 | 
						|
  - IPv4
 | 
						|
  ipFamilyPolicy: SingleStack
 | 
						|
  ports:
 | 
						|
  - appProtocol: http
 | 
						|
    name: http
 | 
						|
    port: 80
 | 
						|
    protocol: TCP
 | 
						|
    targetPort: http
 | 
						|
  - appProtocol: https
 | 
						|
    name: https
 | 
						|
    port: 443
 | 
						|
    protocol: TCP
 | 
						|
    targetPort: https
 | 
						|
  selector:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
  type: LoadBalancer
 | 
						|
---
 | 
						|
apiVersion: v1
 | 
						|
kind: Service
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-controller-admission
 | 
						|
  namespace: ingress-nginx
 | 
						|
spec:
 | 
						|
  ports:
 | 
						|
  - appProtocol: https
 | 
						|
    name: https-webhook
 | 
						|
    port: 443
 | 
						|
    targetPort: webhook
 | 
						|
  selector:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
  type: ClusterIP
 | 
						|
---
 | 
						|
apiVersion: apps/v1
 | 
						|
kind: Deployment
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx-controller
 | 
						|
  namespace: ingress-nginx
 | 
						|
spec:
 | 
						|
  minReadySeconds: 0
 | 
						|
  revisionHistoryLimit: 10
 | 
						|
  replicas: 2
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      app.kubernetes.io/component: controller
 | 
						|
      app.kubernetes.io/instance: ingress-nginx
 | 
						|
      app.kubernetes.io/name: ingress-nginx
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        app.kubernetes.io/component: controller
 | 
						|
        app.kubernetes.io/instance: ingress-nginx
 | 
						|
        app.kubernetes.io/name: ingress-nginx
 | 
						|
    spec:
 | 
						|
      containers:
 | 
						|
      - args:
 | 
						|
        - /nginx-ingress-controller
 | 
						|
        - --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
 | 
						|
        - --election-id=ingress-nginx-leader
 | 
						|
        - --controller-class=k8s.io/ingress-nginx
 | 
						|
        - --ingress-class=nginx
 | 
						|
        - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
 | 
						|
        - --validating-webhook=:8443
 | 
						|
        - --validating-webhook-certificate=/usr/local/certificates/cert
 | 
						|
        - --validating-webhook-key=/usr/local/certificates/key
 | 
						|
        - --annotations-prefix=nginx.ingress.kubernetes.io
 | 
						|
        - --watch-ingress-without-class
 | 
						|
        - --enable-metrics
 | 
						|
        env:
 | 
						|
        - name: POD_NAME
 | 
						|
          valueFrom:
 | 
						|
            fieldRef:
 | 
						|
              fieldPath: metadata.name
 | 
						|
        - name: POD_NAMESPACE
 | 
						|
          valueFrom:
 | 
						|
            fieldRef:
 | 
						|
              fieldPath: metadata.namespace
 | 
						|
        - name: LD_PRELOAD
 | 
						|
          value: /usr/local/lib/libmimalloc.so
 | 
						|
        image: registry.k8s.io/ingress-nginx/controller:v1.14.0@sha256:e4127065d0317bd11dc64c4dd38dcf7fb1c3d72e468110b4086e636dbaac943d
 | 
						|
        imagePullPolicy: IfNotPresent
 | 
						|
        lifecycle:
 | 
						|
          preStop:
 | 
						|
            exec:
 | 
						|
              command:
 | 
						|
              - /wait-shutdown
 | 
						|
        livenessProbe:
 | 
						|
          failureThreshold: 5
 | 
						|
          httpGet:
 | 
						|
            path: /healthz
 | 
						|
            port: 10254
 | 
						|
            scheme: HTTP
 | 
						|
          initialDelaySeconds: 10
 | 
						|
          periodSeconds: 10
 | 
						|
          successThreshold: 1
 | 
						|
          timeoutSeconds: 1
 | 
						|
        name: controller
 | 
						|
        ports:
 | 
						|
        - containerPort: 80
 | 
						|
          name: http
 | 
						|
          protocol: TCP
 | 
						|
        - containerPort: 443
 | 
						|
          name: https
 | 
						|
          protocol: TCP
 | 
						|
        - containerPort: 8443
 | 
						|
          name: webhook
 | 
						|
          protocol: TCP
 | 
						|
        readinessProbe:
 | 
						|
          failureThreshold: 3
 | 
						|
          httpGet:
 | 
						|
            path: /healthz
 | 
						|
            port: 10254
 | 
						|
            scheme: HTTP
 | 
						|
          initialDelaySeconds: 10
 | 
						|
          periodSeconds: 10
 | 
						|
          successThreshold: 1
 | 
						|
          timeoutSeconds: 1
 | 
						|
        resources:
 | 
						|
          requests:
 | 
						|
            cpu: 100m
 | 
						|
            memory: 150Mi
 | 
						|
        securityContext:
 | 
						|
          allowPrivilegeEscalation: true
 | 
						|
          capabilities:
 | 
						|
            add:
 | 
						|
            - NET_BIND_SERVICE
 | 
						|
            drop:
 | 
						|
            - ALL
 | 
						|
          runAsUser: 101
 | 
						|
        volumeMounts:
 | 
						|
        - mountPath: /usr/local/certificates/
 | 
						|
          name: webhook-cert
 | 
						|
          readOnly: true
 | 
						|
        - name: plugins
 | 
						|
          mountPath: /etc/nginx/lua/plugins/redirect_location
 | 
						|
      dnsPolicy: ClusterFirst
 | 
						|
      nodeSelector:
 | 
						|
        kubernetes.io/os: linux
 | 
						|
      serviceAccountName: ingress-nginx
 | 
						|
      terminationGracePeriodSeconds: 300
 | 
						|
      volumes:
 | 
						|
      - name: webhook-cert
 | 
						|
        secret:
 | 
						|
          secretName: ingress-nginx-admission
 | 
						|
      - name: plugins
 | 
						|
        configMap:
 | 
						|
          name: ingress-nginx-plugin-redirect-location
 | 
						|
---
 | 
						|
apiVersion: batch/v1
 | 
						|
kind: Job
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
    app.kubernetes.io/version: 1.5.1
 | 
						|
  name: ingress-nginx-admission-create
 | 
						|
  namespace: ingress-nginx
 | 
						|
spec:
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        app.kubernetes.io/component: admission-webhook
 | 
						|
        app.kubernetes.io/instance: ingress-nginx
 | 
						|
        app.kubernetes.io/name: ingress-nginx
 | 
						|
        app.kubernetes.io/part-of: ingress-nginx
 | 
						|
        app.kubernetes.io/version: 1.5.1
 | 
						|
      name: ingress-nginx-admission-create
 | 
						|
    spec:
 | 
						|
      containers:
 | 
						|
      - args:
 | 
						|
        - create
 | 
						|
        - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc
 | 
						|
        - --namespace=$(POD_NAMESPACE)
 | 
						|
        - --secret-name=ingress-nginx-admission
 | 
						|
        env:
 | 
						|
        - name: POD_NAMESPACE
 | 
						|
          valueFrom:
 | 
						|
            fieldRef:
 | 
						|
              fieldPath: metadata.namespace
 | 
						|
        image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
 | 
						|
        imagePullPolicy: IfNotPresent
 | 
						|
        name: create
 | 
						|
        securityContext:
 | 
						|
          allowPrivilegeEscalation: false
 | 
						|
      nodeSelector:
 | 
						|
        kubernetes.io/os: linux
 | 
						|
      restartPolicy: OnFailure
 | 
						|
      securityContext:
 | 
						|
        fsGroup: 2000
 | 
						|
        runAsNonRoot: true
 | 
						|
        runAsUser: 2000
 | 
						|
      serviceAccountName: ingress-nginx-admission
 | 
						|
---
 | 
						|
apiVersion: batch/v1
 | 
						|
kind: Job
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
    app.kubernetes.io/version: 1.5.1
 | 
						|
  name: ingress-nginx-admission-patch
 | 
						|
  namespace: ingress-nginx
 | 
						|
spec:
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        app.kubernetes.io/component: admission-webhook
 | 
						|
        app.kubernetes.io/instance: ingress-nginx
 | 
						|
        app.kubernetes.io/name: ingress-nginx
 | 
						|
        app.kubernetes.io/part-of: ingress-nginx
 | 
						|
        app.kubernetes.io/version: 1.5.1
 | 
						|
      name: ingress-nginx-admission-patch
 | 
						|
    spec:
 | 
						|
      containers:
 | 
						|
      - args:
 | 
						|
        - patch
 | 
						|
        - --webhook-name=ingress-nginx-admission
 | 
						|
        - --namespace=$(POD_NAMESPACE)
 | 
						|
        - --patch-mutating=false
 | 
						|
        - --secret-name=ingress-nginx-admission
 | 
						|
        - --patch-failure-policy=Fail
 | 
						|
        env:
 | 
						|
        - name: POD_NAMESPACE
 | 
						|
          valueFrom:
 | 
						|
            fieldRef:
 | 
						|
              fieldPath: metadata.namespace
 | 
						|
        image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f
 | 
						|
        imagePullPolicy: IfNotPresent
 | 
						|
        name: patch
 | 
						|
        securityContext:
 | 
						|
          allowPrivilegeEscalation: false
 | 
						|
      nodeSelector:
 | 
						|
        kubernetes.io/os: linux
 | 
						|
      restartPolicy: OnFailure
 | 
						|
      securityContext:
 | 
						|
        fsGroup: 2000
 | 
						|
        runAsNonRoot: true
 | 
						|
        runAsUser: 2000
 | 
						|
      serviceAccountName: ingress-nginx-admission
 | 
						|
---
 | 
						|
apiVersion: networking.k8s.io/v1
 | 
						|
kind: IngressClass
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
    app.kubernetes.io/version: 1.5.1
 | 
						|
  name: nginx
 | 
						|
spec:
 | 
						|
  controller: k8s.io/ingress-nginx
 | 
						|
---
 | 
						|
apiVersion: admissionregistration.k8s.io/v1
 | 
						|
kind: ValidatingWebhookConfiguration
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: admission-webhook
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
    app.kubernetes.io/version: 1.5.1
 | 
						|
  name: ingress-nginx-admission
 | 
						|
webhooks:
 | 
						|
- admissionReviewVersions:
 | 
						|
  - v1
 | 
						|
  clientConfig:
 | 
						|
    service:
 | 
						|
      name: ingress-nginx-controller-admission
 | 
						|
      namespace: ingress-nginx
 | 
						|
      path: /networking/v1/ingresses
 | 
						|
  failurePolicy: Fail
 | 
						|
  matchPolicy: Equivalent
 | 
						|
  name: validate.nginx.ingress.kubernetes.io
 | 
						|
  rules:
 | 
						|
  - apiGroups:
 | 
						|
    - networking.k8s.io
 | 
						|
    apiVersions:
 | 
						|
    - v1
 | 
						|
    operations:
 | 
						|
    - CREATE
 | 
						|
    - UPDATE
 | 
						|
    resources:
 | 
						|
    - ingresses
 | 
						|
  sideEffects: None
 | 
						|
---
 | 
						|
apiVersion: policy/v1
 | 
						|
kind: PodDisruptionBudget
 | 
						|
metadata:
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/component: controller
 | 
						|
    app.kubernetes.io/instance: ingress-nginx
 | 
						|
    app.kubernetes.io/name: ingress-nginx
 | 
						|
    app.kubernetes.io/part-of: ingress-nginx
 | 
						|
  name: ingress-nginx
 | 
						|
spec:
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      app.kubernetes.io/component: controller
 | 
						|
      app.kubernetes.io/instance: ingress-nginx
 | 
						|
      app.kubernetes.io/name: ingress-nginx
 | 
						|
  minAvailable: 1
 |