Skip to content

Instantly share code, notes, and snippets.

@paktek123
Last active July 3, 2021 10:28
Show Gist options
  • Select an option

  • Save paktek123/d7aa810b5460e8edc9cb8000aadc1d7b to your computer and use it in GitHub Desktop.

Select an option

Save paktek123/d7aa810b5460e8edc9cb8000aadc1d7b to your computer and use it in GitHub Desktop.

Revisions

  1. paktek123 revised this gist Jul 3, 2021. 1 changed file with 0 additions and 37 deletions.
    37 changes: 0 additions & 37 deletions deploy.yaml
    Original file line number Diff line number Diff line change
    @@ -413,43 +413,6 @@ spec:
    secret:
    secretName: ingress-nginx-admission
    ---
    # Source: ingress-nginx/templates/admission-webhooks/validating-webhook.yaml
    # before changing this value, check the required kubernetes version
    # https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#prerequisites
    apiVersion: admissionregistration.k8s.io/v1
    kind: ValidatingWebhookConfiguration
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    name: ingress-nginx-admission
    webhooks:
    - name: validate.nginx.ingress.kubernetes.io
    matchPolicy: Equivalent
    rules:
    - apiGroups:
    - networking.k8s.io
    apiVersions:
    - v1
    operations:
    - CREATE
    - UPDATE
    resources:
    - ingresses
    failurePolicy: Ignore
    sideEffects: None
    admissionReviewVersions:
    - v1
    clientConfig:
    service:
    namespace: ingress-nginx
    name: ingress-nginx-controller-admission
    path: /networking/v1/ingresses
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml
    apiVersion: v1
    kind: ServiceAccount
  2. paktek123 created this gist Jul 3, 2021.
    664 changes: 664 additions & 0 deletions deploy.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,664 @@

    apiVersion: v1
    kind: Namespace
    metadata:
    name: ingress-nginx
    labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx

    ---
    # Source: ingress-nginx/templates/controller-serviceaccount.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    name: ingress-nginx
    namespace: ingress-nginx
    automountServiceAccountToken: true
    ---
    # Source: ingress-nginx/templates/controller-configmap.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    name: ingress-nginx-controller
    namespace: ingress-nginx
    data:
    ---
    # Source: ingress-nginx/templates/clusterrole.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    name: ingress-nginx
    rules:
    - apiGroups:
    - ''
    resources:
    - configmaps
    - endpoints
    - nodes
    - pods
    - secrets
    verbs:
    - list
    - watch
    - apiGroups:
    - ''
    resources:
    - nodes
    verbs:
    - get
    - apiGroups:
    - ''
    resources:
    - services
    verbs:
    - get
    - list
    - watch
    - apiGroups:
    - extensions
    - networking.k8s.io # k8s 1.14+
    resources:
    - ingresses
    verbs:
    - get
    - list
    - watch
    - apiGroups:
    - ''
    resources:
    - events
    verbs:
    - create
    - patch
    - apiGroups:
    - extensions
    - networking.k8s.io # k8s 1.14+
    resources:
    - ingresses/status
    verbs:
    - update
    - apiGroups:
    - networking.k8s.io # k8s 1.14+
    resources:
    - ingressclasses
    verbs:
    - get
    - list
    - watch
    ---
    # Source: ingress-nginx/templates/clusterrolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    name: ingress-nginx
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: ingress-nginx
    subjects:
    - kind: ServiceAccount
    name: ingress-nginx
    namespace: ingress-nginx
    ---
    # Source: ingress-nginx/templates/controller-role.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    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:
    - extensions
    - networking.k8s.io # k8s 1.14+
    resources:
    - ingresses
    verbs:
    - get
    - list
    - watch
    - apiGroups:
    - extensions
    - networking.k8s.io # k8s 1.14+
    resources:
    - ingresses/status
    verbs:
    - update
    - apiGroups:
    - networking.k8s.io # k8s 1.14+
    resources:
    - ingressclasses
    verbs:
    - get
    - list
    - watch
    - apiGroups:
    - ''
    resources:
    - configmaps
    resourceNames:
    - ingress-controller-leader-nginx
    verbs:
    - get
    - update
    - apiGroups:
    - ''
    resources:
    - configmaps
    verbs:
    - create
    - apiGroups:
    - ''
    resources:
    - events
    verbs:
    - create
    - patch
    ---
    # Source: ingress-nginx/templates/controller-rolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    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
    ---
    # Source: ingress-nginx/templates/controller-service-webhook.yaml
    apiVersion: v1
    kind: Service
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    name: ingress-nginx-controller-admission
    namespace: ingress-nginx
    spec:
    type: ClusterIP
    ports:
    - name: https-webhook
    port: 443
    targetPort: webhook
    selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller
    ---
    # Source: ingress-nginx/templates/controller-service.yaml
    apiVersion: v1
    kind: Service
    metadata:
    annotations:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    name: ingress-nginx-controller
    namespace: ingress-nginx
    spec:
    type: NodePort
    ports:
    - name: http
    port: 80
    protocol: TCP
    targetPort: http
    - name: https
    port: 443
    protocol: TCP
    targetPort: https
    selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller
    ---
    # Source: ingress-nginx/templates/controller-deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
    name: ingress-nginx-controller
    namespace: ingress-nginx
    spec:
    selector:
    matchLabels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller
    revisionHistoryLimit: 10
    strategy:
    rollingUpdate:
    maxUnavailable: 1
    type: RollingUpdate
    minReadySeconds: 0
    template:
    metadata:
    labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller
    spec:
    dnsPolicy: ClusterFirst
    containers:
    - name: controller
    image: k8s.gcr.io/ingress-nginx/controller:v0.47.0@sha256:a1e4efc107be0bb78f32eaec37bef17d7a0c81bec8066cdf2572508d21351d0b
    imagePullPolicy: IfNotPresent
    lifecycle:
    preStop:
    exec:
    command:
    - /wait-shutdown
    args:
    - /nginx-ingress-controller
    - --election-id=ingress-controller-leader
    - --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
    - --publish-status-address=localhost
    securityContext:
    capabilities:
    drop:
    - ALL
    add:
    - NET_BIND_SERVICE
    runAsUser: 101
    allowPrivilegeEscalation: true
    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
    livenessProbe:
    failureThreshold: 5
    httpGet:
    path: /healthz
    port: 10254
    scheme: HTTP
    initialDelaySeconds: 10
    periodSeconds: 10
    successThreshold: 1
    timeoutSeconds: 1
    readinessProbe:
    failureThreshold: 3
    httpGet:
    path: /healthz
    port: 10254
    scheme: HTTP
    initialDelaySeconds: 10
    periodSeconds: 10
    successThreshold: 1
    timeoutSeconds: 1
    ports:
    - name: http
    containerPort: 80
    protocol: TCP
    hostPort: 80
    - name: https
    containerPort: 443
    protocol: TCP
    hostPort: 443
    - name: webhook
    containerPort: 8443
    protocol: TCP
    volumeMounts:
    - name: webhook-cert
    mountPath: /usr/local/certificates/
    readOnly: true
    resources:
    requests:
    cpu: 100m
    memory: 90Mi
    nodeSelector:
    ingress-ready: 'true'
    kubernetes.io/os: linux
    tolerations:
    - effect: NoSchedule
    key: node-role.kubernetes.io/master
    operator: Equal
    serviceAccountName: ingress-nginx
    terminationGracePeriodSeconds: 0
    volumes:
    - name: webhook-cert
    secret:
    secretName: ingress-nginx-admission
    ---
    # Source: ingress-nginx/templates/admission-webhooks/validating-webhook.yaml
    # before changing this value, check the required kubernetes version
    # https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#prerequisites
    apiVersion: admissionregistration.k8s.io/v1
    kind: ValidatingWebhookConfiguration
    metadata:
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    name: ingress-nginx-admission
    webhooks:
    - name: validate.nginx.ingress.kubernetes.io
    matchPolicy: Equivalent
    rules:
    - apiGroups:
    - networking.k8s.io
    apiVersions:
    - v1
    operations:
    - CREATE
    - UPDATE
    resources:
    - ingresses
    failurePolicy: Ignore
    sideEffects: None
    admissionReviewVersions:
    - v1
    clientConfig:
    service:
    namespace: ingress-nginx
    name: ingress-nginx-controller-admission
    path: /networking/v1/ingresses
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: ingress-nginx-admission
    namespace: ingress-nginx
    annotations:
    helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
    name: ingress-nginx-admission
    annotations:
    helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    rules:
    - apiGroups:
    - admissionregistration.k8s.io
    resources:
    - validatingwebhookconfigurations
    verbs:
    - get
    - update
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
    name: ingress-nginx-admission
    annotations:
    helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: ingress-nginx-admission
    subjects:
    - kind: ServiceAccount
    name: ingress-nginx-admission
    namespace: ingress-nginx
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/role.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
    name: ingress-nginx-admission
    namespace: ingress-nginx
    annotations:
    helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    rules:
    - apiGroups:
    - ''
    resources:
    - secrets
    verbs:
    - get
    - create
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
    name: ingress-nginx-admission
    namespace: ingress-nginx
    annotations:
    helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: Role
    name: ingress-nginx-admission
    subjects:
    - kind: ServiceAccount
    name: ingress-nginx-admission
    namespace: ingress-nginx
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml
    apiVersion: batch/v1
    kind: Job
    metadata:
    name: ingress-nginx-admission-create
    namespace: ingress-nginx
    annotations:
    helm.sh/hook: pre-install,pre-upgrade
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    spec:
    template:
    metadata:
    name: ingress-nginx-admission-create
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    spec:
    containers:
    - name: create
    image: docker.io/jettech/kube-webhook-certgen:v1.5.1
    imagePullPolicy: IfNotPresent
    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
    restartPolicy: OnFailure
    serviceAccountName: ingress-nginx-admission
    securityContext:
    runAsNonRoot: true
    runAsUser: 2000
    ---
    # Source: ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml
    apiVersion: batch/v1
    kind: Job
    metadata:
    name: ingress-nginx-admission-patch
    namespace: ingress-nginx
    annotations:
    helm.sh/hook: post-install,post-upgrade
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    spec:
    template:
    metadata:
    name: ingress-nginx-admission-patch
    labels:
    helm.sh/chart: ingress-nginx-3.34.0
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.47.0
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: admission-webhook
    spec:
    containers:
    - name: patch
    image: docker.io/jettech/kube-webhook-certgen:v1.5.1
    imagePullPolicy: IfNotPresent
    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
    restartPolicy: OnFailure
    serviceAccountName: ingress-nginx-admission
    securityContext:
    runAsNonRoot: true
    runAsUser: 2000