{
  "apiVersion": "v1",
  "items": [
    {
      "apiVersion": "v1",
      "kind": "Service",
      "metadata": {
        "annotations": {
          "prometheus.io/port": "9153",
          "prometheus.io/scrape": "true"
        },
        "labels": {
          "eks.amazonaws.com/component": "kube-dns",
          "k8s-app": "kube-dns",
          "kubernetes.io/cluster-service": "true",
          "kubernetes.io/name": "CoreDNS"
        },
        "name": "kube-dns",
        "namespace": "kube-system"
      },
      "spec": {
        "ports": [
          {
            "name": "dns",
            "port": 53,
            "protocol": "UDP",
            "targetPort": 53
          },
          {
            "name": "dns-tcp",
            "port": 53,
            "protocol": "TCP",
            "targetPort": 53
          }
        ],
        "selector": {
          "k8s-app": "kube-dns"
        },
        "sessionAffinity": "None",
        "type": "ClusterIP"
      }
    },
    {
      "apiVersion": "v1",
      "kind": "ServiceAccount",
      "metadata": {
        "annotations": {},
        "labels": {
          "eks.amazonaws.com/component": "coredns",
          "k8s-app": "kube-dns"
        },
        "name": "coredns",
        "namespace": "kube-system"
      }
    },
    {
      "apiVersion": "v1",
      "data": {
        "Corefile": ".:53 {\n    errors\n    health {\n      lameduck 5s\n    }\n    ready\n    kubernetes cluster.local in-addr.arpa ip6.arpa {\n      pods insecure\n      fallthrough in-addr.arpa ip6.arpa\n    }\n    prometheus :9153\n    forward . /etc/resolv.conf\n    cache 30\n    loop\n    reload\n    loadbalance\n}\n"
      },
      "kind": "ConfigMap",
      "metadata": {
        "annotations": {},
        "labels": {
          "eks.amazonaws.com/component": "coredns",
          "k8s-app": "kube-dns"
        },
        "name": "coredns",
        "namespace": "kube-system"
      }
    },
    {
      "apiVersion": "apps/v1",
      "kind": "Deployment",
      "metadata": {
        "annotations": {},
        "labels": {
          "eks.amazonaws.com/component": "coredns",
          "k8s-app": "kube-dns",
          "kubernetes.io/name": "CoreDNS"
        },
        "name": "coredns",
        "namespace": "kube-system"
      },
      "spec": {
        "progressDeadlineSeconds": 600,
        "replicas": 2,
        "revisionHistoryLimit": 10,
        "selector": {
          "matchLabels": {
            "eks.amazonaws.com/component": "coredns",
            "k8s-app": "kube-dns"
          }
        },
        "strategy": {
          "rollingUpdate": {
            "maxSurge": "25%",
            "maxUnavailable": 1
          },
          "type": "RollingUpdate"
        },
        "template": {
          "metadata": {
            "annotations": {
              "eks.amazonaws.com/compute-type": "ec2"
            },
            "labels": {
              "eks.amazonaws.com/component": "coredns",
              "k8s-app": "kube-dns"
            }
          },
          "spec": {
            "affinity": {
              "nodeAffinity": {
                "requiredDuringSchedulingIgnoredDuringExecution": {
                  "nodeSelectorTerms": [
                    {
                      "matchExpressions": [
                        {
                          "key": "kubernetes.io/os",
                          "operator": "In",
                          "values": [
                            "linux"
                          ]
                        },
                        {
                          "key": "kubernetes.io/arch",
                          "operator": "In",
                          "values": [
                            "amd64",
                            "arm64"
                          ]
                        }
                      ]
                    }
                  ]
                }
              },
              "podAntiAffinity": {
                "preferredDuringSchedulingIgnoredDuringExecution": [
                  {
                    "podAffinityTerm": {
                      "labelSelector": {
                        "matchExpressions": [
                          {
                            "key": "k8s-app",
                            "operator": "In",
                            "values": [
                              "kube-dns"
                            ]
                          }
                        ]
                      },
                      "topologyKey": "kubernetes.io/hostname"
                    },
                    "weight": 100
                  }
                ]
              }
            },
            "containers": [
              {
                "args": [
                  "-conf",
                  "/etc/coredns/Corefile"
                ],
                "image": "%s.dkr.ecr.%s.%s/eks/coredns:v1.8.3-eksbuild.1",
                "imagePullPolicy": "IfNotPresent",
                "livenessProbe": {
                  "failureThreshold": 5,
                  "httpGet": {
                    "path": "/health",
                    "port": 8080,
                    "scheme": "HTTP"
                  },
                  "initialDelaySeconds": 60,
                  "periodSeconds": 10,
                  "successThreshold": 1,
                  "timeoutSeconds": 5
                },
                "name": "coredns",
                "ports": [
                  {
                    "containerPort": 53,
                    "name": "dns",
                    "protocol": "UDP"
                  },
                  {
                    "containerPort": 53,
                    "name": "dns-tcp",
                    "protocol": "TCP"
                  },
                  {
                    "containerPort": 9153,
                    "name": "metrics",
                    "protocol": "TCP"
                  }
                ],
                "readinessProbe": {
                  "failureThreshold": 3,
                  "httpGet": {
                    "path": "/ready",
                    "port": 8181,
                    "scheme": "HTTP"
                  },
                  "initialDelaySeconds": 30,
                  "periodSeconds": 10,
                  "successThreshold": 1,
                  "timeoutSeconds": 1
                },
                "resources": {
                  "limits": {
                    "memory": "170Mi"
                  },
                  "requests": {
                    "cpu": "100m",
                    "memory": "70Mi"
                  }
                },
                "securityContext": {
                  "allowPrivilegeEscalation": false,
                  "capabilities": {
                    "add": [
                      "NET_BIND_SERVICE"
                    ],
                    "drop": [
                      "all"
                    ]
                  },
                  "readOnlyRootFilesystem": true
                },
                "terminationMessagePath": "/dev/termination-log",
                "terminationMessagePolicy": "File",
                "volumeMounts": [
                  {
                    "mountPath": "/etc/coredns",
                    "name": "config-volume",
                    "readOnly": true
                  },
                  {
                    "mountPath": "/tmp",
                    "name": "tmp"
                  }
                ]
              }
            ],
            "dnsPolicy": "Default",
            "priorityClassName": "system-cluster-critical",
            "restartPolicy": "Always",
            "schedulerName": "default-scheduler",
            "securityContext": {},
            "serviceAccount": "coredns",
            "serviceAccountName": "coredns",
            "terminationGracePeriodSeconds": 30,
            "tolerations": [
              {
                "effect": "NoSchedule",
                "key": "node-role.kubernetes.io/master"
              },
              {
                "key": "CriticalAddonsOnly",
                "operator": "Exists"
              }
            ],
            "volumes": [
              {
                "emptyDir": {},
                "name": "tmp"
              },
              {
                "configMap": {
                  "defaultMode": 420,
                  "items": [
                    {
                      "key": "Corefile",
                      "path": "Corefile"
                    }
                  ],
                  "name": "coredns"
                },
                "name": "config-volume"
              }
            ]
          }
        }
      }
    },
    {
      "apiVersion": "rbac.authorization.k8s.io/v1",
      "kind": "ClusterRole",
      "metadata": {
        "annotations": {},
        "labels": {
          "eks.amazonaws.com/component": "coredns",
          "k8s-app": "kube-dns",
          "kubernetes.io/bootstrapping": "rbac-defaults"
        },
        "name": "system:coredns"
      },
      "rules": [
        {
          "apiGroups": [
            ""
          ],
          "resources": [
            "endpoints",
            "services",
            "pods",
            "namespaces"
          ],
          "verbs": [
            "list",
            "watch"
          ]
        },
        {
          "apiGroups": [
            ""
          ],
          "resources": [
            "nodes"
          ],
          "verbs": [
            "get"
          ]
        },
        {
          "apiGroups": [
            "discovery.k8s.io"
          ],
          "resources": [
            "endpointslices"
          ],
          "verbs": [
            "list",
            "watch"
          ]
        }
      ]
    },
    {
      "apiVersion": "rbac.authorization.k8s.io/v1",
      "kind": "ClusterRoleBinding",
      "metadata": {
        "annotations": {
          "rbac.authorization.kubernetes.io/autoupdate": "true"
        },
        "labels": {
          "eks.amazonaws.com/component": "coredns",
          "k8s-app": "kube-dns",
          "kubernetes.io/bootstrapping": "rbac-defaults"
        },
        "name": "system:coredns"
      },
      "roleRef": {
        "apiGroup": "rbac.authorization.k8s.io",
        "kind": "ClusterRole",
        "name": "system:coredns"
      },
      "subjects": [
        {
          "kind": "ServiceAccount",
          "name": "coredns",
          "namespace": "kube-system"
        }
      ]
    }
  ],
  "kind": "List"
}
