parent
7332179285
commit
ed322f4235
@ -0,0 +1,85 @@ |
||||
{ cfg }: { |
||||
"dashboard-controller" = { |
||||
"apiVersion" = "extensions/v1beta1"; |
||||
"kind" = "Deployment"; |
||||
"metadata" = { |
||||
"labels" = { |
||||
"addonmanager.kubernetes.io/mode" = "Reconcile"; |
||||
"k8s-app" = "kubernetes-dashboard"; |
||||
"kubernetes.io/cluster-service" = "true"; |
||||
}; |
||||
"name" = "kubernetes-dashboard"; |
||||
"namespace" = "kube-system"; |
||||
}; |
||||
"spec" = { |
||||
"selector" = { |
||||
"matchLabels" = { |
||||
"k8s-app" = "kubernetes-dashboard"; |
||||
}; |
||||
}; |
||||
"template" = { |
||||
"metadata" = { |
||||
"annotations" = { |
||||
"scheduler.alpha.kubernetes.io/critical-pod" = ""; |
||||
}; |
||||
"labels" = { |
||||
"k8s-app" = "kubernetes-dashboard"; |
||||
}; |
||||
}; |
||||
"spec" = { |
||||
"containers" = [{ |
||||
"image" = "gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0"; |
||||
"livenessProbe" = { |
||||
"httpGet" = { |
||||
"path" = "/"; |
||||
"port" = 9090; |
||||
}; |
||||
"initialDelaySeconds" = 30; |
||||
"timeoutSeconds" = 30; |
||||
}; |
||||
"name" = "kubernetes-dashboard"; |
||||
"ports" = [{ |
||||
"containerPort" = 9090; |
||||
}]; |
||||
"resources" = { |
||||
"limits" = { |
||||
"cpu" = "100m"; |
||||
"memory" = "50Mi"; |
||||
}; |
||||
"requests" = { |
||||
"cpu" = "100m"; |
||||
"memory" = "50Mi"; |
||||
}; |
||||
}; |
||||
}]; |
||||
"tolerations" = [{ |
||||
"key" = "CriticalAddonsOnly"; |
||||
"operator" = "Exists"; |
||||
}]; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
"dashboard-service" = { |
||||
"apiVersion" = "v1"; |
||||
"kind" = "Service"; |
||||
"metadata" = { |
||||
"labels" = { |
||||
"addonmanager.kubernetes.io/mode" = "Reconcile"; |
||||
"k8s-app" = "kubernetes-dashboard"; |
||||
"kubernetes.io/cluster-service" = "true"; |
||||
}; |
||||
"name" = "kubernetes-dashboard"; |
||||
"namespace" = "kube-system"; |
||||
}; |
||||
"spec" = { |
||||
"ports" = [{ |
||||
"port" = 80; |
||||
"targetPort" = 9090; |
||||
}]; |
||||
"selector" = { |
||||
"k8s-app" = "kubernetes-dashboard"; |
||||
}; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1,240 @@ |
||||
{ cfg }: { |
||||
"kubedns-cm" = { |
||||
"apiVersion" = "v1"; |
||||
"kind" = "ConfigMap"; |
||||
"metadata" = { |
||||
"labels" = { |
||||
"addonmanager.kubernetes.io/mode" = "EnsureExists"; |
||||
}; |
||||
"name" = "kube-dns"; |
||||
"namespace" = "kube-system"; |
||||
}; |
||||
}; |
||||
"kubedns-controller" = { |
||||
"apiVersion" = "extensions/v1beta1"; |
||||
"kind" = "Deployment"; |
||||
"metadata" = { |
||||
"labels" = { |
||||
"addonmanager.kubernetes.io/mode" = "Reconcile"; |
||||
"k8s-app" = "kube-dns"; |
||||
"kubernetes.io/cluster-service" = "true"; |
||||
}; |
||||
"name" = "kube-dns"; |
||||
"namespace" = "kube-system"; |
||||
}; |
||||
"spec" = { |
||||
"selector" = { |
||||
"matchLabels" = { |
||||
"k8s-app" = "kube-dns"; |
||||
}; |
||||
}; |
||||
"strategy" = { |
||||
"rollingUpdate" = { |
||||
"maxSurge" = "10%"; |
||||
"maxUnavailable" = 0; |
||||
}; |
||||
}; |
||||
"template" = { |
||||
"metadata" = { |
||||
"annotations" = { |
||||
"scheduler.alpha.kubernetes.io/critical-pod" = ""; |
||||
}; |
||||
"labels" = { |
||||
"k8s-app" = "kube-dns"; |
||||
}; |
||||
}; |
||||
"spec" = { |
||||
"containers" = [{ |
||||
"args" = ["--domain=${cfg.dns.domain}." |
||||
"--dns-port=10053" |
||||
"--config-dir=/kube-dns-config" |
||||
"--kube-master-url=${cfg.kubeconfig.server}" |
||||
"--v=2" |
||||
]; |
||||
"env" = [{ |
||||
"name" = "PROMETHEUS_PORT"; |
||||
"value" = "10055"; |
||||
}]; |
||||
"image" = "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1"; |
||||
"livenessProbe" = { |
||||
"failureThreshold" = 5; |
||||
"httpGet" = { |
||||
"path" = "/healthcheck/kubedns"; |
||||
"port" = 10054; |
||||
"scheme" = "HTTP"; |
||||
}; |
||||
"initialDelaySeconds" = 60; |
||||
"successThreshold" = 1; |
||||
"timeoutSeconds" = 5; |
||||
}; |
||||
"name" = "kubedns"; |
||||
"ports" = [{ |
||||
"containerPort" = 10053; |
||||
"name" = "dns-local"; |
||||
"protocol" = "UDP"; |
||||
} { |
||||
"containerPort" = 10053; |
||||
"name" = "dns-tcp-local"; |
||||
"protocol" = "TCP"; |
||||
} { |
||||
"containerPort" = 10055; |
||||
"name" = "metrics"; |
||||
"protocol" = "TCP"; |
||||
}]; |
||||
"readinessProbe" = { |
||||
"httpGet" = { |
||||
"path" = "/readiness"; |
||||
"port" = 8081; |
||||
"scheme" = "HTTP"; |
||||
}; |
||||
"initialDelaySeconds" = 3; |
||||
"timeoutSeconds" = 5; |
||||
}; |
||||
"resources" = { |
||||
"limits" = { |
||||
"memory" = "170Mi"; |
||||
}; |
||||
"requests" = { |
||||
"cpu" = "100m"; |
||||
"memory" = "70Mi"; |
||||
}; |
||||
}; |
||||
"volumeMounts" = [{ |
||||
"mountPath" = "/kube-dns-config"; |
||||
"name" = "kube-dns-config"; |
||||
}]; |
||||
} { |
||||
"args" = ["-v=2" |
||||
"-logtostderr" |
||||
"-configDir=/etc/k8s/dns/dnsmasq-nanny" |
||||
"-restartDnsmasq=true" |
||||
"--" |
||||
"-k" |
||||
"--cache-size=1000" |
||||
"--log-facility=-" |
||||
"--server=/${cfg.dns.domain}/127.0.0.1#10053" |
||||
"--server=/in-addr.arpa/127.0.0.1#10053" |
||||
"--server=/ip6.arpa/127.0.0.1#10053" |
||||
]; |
||||
"image" = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1"; |
||||
"livenessProbe" = { |
||||
"failureThreshold" = 5; |
||||
"httpGet" = { |
||||
"path" = "/healthcheck/dnsmasq"; |
||||
"port" = 10054; |
||||
"scheme" = "HTTP"; |
||||
}; |
||||
"initialDelaySeconds" = 60; |
||||
"successThreshold" = 1; |
||||
"timeoutSeconds" = 5; |
||||
}; |
||||
"name" = "dnsmasq"; |
||||
"ports" = [{ |
||||
"containerPort" = 53; |
||||
"name" = "dns"; |
||||
"protocol" = "UDP"; |
||||
} { |
||||
"containerPort" = 53; |
||||
"name" = "dns-tcp"; |
||||
"protocol" = "TCP"; |
||||
}]; |
||||
"resources" = { |
||||
"requests" = { |
||||
"cpu" = "150m"; |
||||
"memory" = "20Mi"; |
||||
}; |
||||
}; |
||||
"volumeMounts" = [{ |
||||
"mountPath" = "/etc/k8s/dns/dnsmasq-nanny"; |
||||
"name" = "kube-dns-config"; |
||||
}]; |
||||
} { |
||||
"args" = ["--v=2" |
||||
"--logtostderr" |
||||
"--probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.${cfg.dns.domain},5,A" |
||||
"--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.${cfg.dns.domain},5,A" |
||||
]; |
||||
"image" = "gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1"; |
||||
"livenessProbe" = { |
||||
"failureThreshold" = 5; |
||||
"httpGet" = { |
||||
"path" = "/metrics"; |
||||
"port" = 10054; |
||||
"scheme" = "HTTP"; |
||||
}; |
||||
"initialDelaySeconds" = 60; |
||||
"successThreshold" = 1; |
||||
"timeoutSeconds" = 5; |
||||
}; |
||||
"name" = "sidecar"; |
||||
"ports" = [{ |
||||
"containerPort" = 10054; |
||||
"name" = "metrics"; |
||||
"protocol" = "TCP"; |
||||
}]; |
||||
"resources" = { |
||||
"requests" = { |
||||
"cpu" = "10m"; |
||||
"memory" = "20Mi"; |
||||
}; |
||||
}; |
||||
}]; |
||||
"dnsPolicy" = "Default"; |
||||
"serviceAccountName" = "kube-dns"; |
||||
"tolerations" = [{ |
||||
"key" = "CriticalAddonsOnly"; |
||||
"operator" = "Exists"; |
||||
}]; |
||||
"volumes" = [{ |
||||
"configMap" = { |
||||
"name" = "kube-dns"; |
||||
"optional" = true; |
||||
}; |
||||
"name" = "kube-dns-config"; |
||||
}]; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
||||
"kubedns-sa" = { |
||||
"apiVersion" = "v1"; |
||||
"kind" = "ServiceAccount"; |
||||
"metadata" = { |
||||
"labels" = { |
||||
"addonmanager.kubernetes.io/mode" = "Reconcile"; |
||||
"kubernetes.io/cluster-service" = "true"; |
||||
}; |
||||
"name" = "kube-dns"; |
||||
"namespace" = "kube-system"; |
||||
}; |
||||
}; |
||||
"kubedns-svc" = { |
||||
"apiVersion" = "v1"; |
||||
"kind" = "Service"; |
||||
"metadata" = { |
||||
"labels" = { |
||||
"addonmanager.kubernetes.io/mode" = "Reconcile"; |
||||
"k8s-app" = "kube-dns"; |
||||
"kubernetes.io/cluster-service" = "true"; |
||||
"kubernetes.io/name" = "KubeDNS"; |
||||
}; |
||||
"name" = "kube-dns"; |
||||
"namespace" = "kube-system"; |
||||
}; |
||||
"spec" = { |
||||
"clusterIP" = "${cfg.dns.serverIp}"; |
||||
"ports" = [{ |
||||
"name" = "dns"; |
||||
"port" = 53; |
||||
"protocol" = "UDP"; |
||||
} { |
||||
"name" = "dns-tcp"; |
||||
"port" = 53; |
||||
"protocol" = "TCP"; |
||||
}]; |
||||
"selector" = { |
||||
"k8s-app" = "kube-dns"; |
||||
}; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1,54 @@ |
||||
{ cfg, addons }: { |
||||
"kube-addon-manager" = { |
||||
"apiVersion" = "v1"; |
||||
"kind" = "Pod"; |
||||
"metadata" = { |
||||
"labels" = { |
||||
"component" = "kube-addon-manager"; |
||||
}; |
||||
"name" = "kube-addon-manager"; |
||||
"namespace" = "kube-system"; |
||||
}; |
||||
"spec" = { |
||||
"containers" = [{ |
||||
"command" = ["/bin/bash" |
||||
"-c" |
||||
"/opt/kube-addons.sh | tee /var/log/kube-addon-manager.log" |
||||
]; |
||||
"env" = [{ |
||||
"name" = "KUBECTL_OPTS"; |
||||
"value" = "--server=${cfg.kubeconfig.server}"; |
||||
}]; |
||||
"image" = "gcr.io/google-containers/kube-addon-manager:${cfg.addonManager.versionTag}"; |
||||
"name" = "kube-addon-manager"; |
||||
"resources" = { |
||||
"requests" = { |
||||
"cpu" = "5m"; |
||||
"memory" = "50Mi"; |
||||
}; |
||||
}; |
||||
"volumeMounts" = [{ |
||||
"mountPath" = "/etc/kubernetes/addons/"; |
||||
"name" = "addons"; |
||||
"readOnly" = true; |
||||
} { |
||||
"mountPath" = "/var/log"; |
||||
"name" = "varlog"; |
||||
"readOnly" = false; |
||||
}]; |
||||
}]; |
||||
"hostNetwork" = true; |
||||
"volumes" = [{ |
||||
"hostPath" = { |
||||
"path" = "${addons}/"; |
||||
}; |
||||
"name" = "addons"; |
||||
} { |
||||
"hostPath" = { |
||||
"path" = "/var/log"; |
||||
}; |
||||
"name" = "varlog"; |
||||
}]; |
||||
}; |
||||
}; |
||||
} |
Loading…
Reference in new issue