mirror of
				https://github.com/coredns/coredns.git
				synced 2025-10-31 10:13:14 -04:00 
			
		
		
		
	* Add script to generate manifest (#504)
This commit is contained in:
		
				
					committed by
					
						 Miek Gieben
						Miek Gieben
					
				
			
			
				
	
			
			
			
						parent
						
							123a76c91e
						
					
				
				
					commit
					e8ebcd3cfd
				
			| @@ -128,4 +128,14 @@ all values.  The labels that accept wildcards are: | ||||
| * multiple wild cards are allowed in a single query. | ||||
|    * e.g. `A` Request `*.*.svc.zone.` or `SRV` request `*.*.*.*.svc.zone.` | ||||
|  | ||||
| ## deploy.sh and coredns.yaml.sed | ||||
|  | ||||
| A convenience script to generate a manifest for running CoreDNS on a cluster that is currently | ||||
| running standard kube-dns. It creates a ConfigMap and a CoreDNS deployment, then updates the | ||||
| Kube-DNS service selector to use the CoreDNS deployment. It doesn't delete the kube-dns | ||||
| deployment or replication controller - you'll have to do that manually. | ||||
|  | ||||
| ~~~ | ||||
| $ ./deploy.sh 10.3.0.0/24 | kubectl apply -f - | ||||
| $ kubectl delete --namespace=kube-system deployment kube-dns | ||||
| ~~~ | ||||
|   | ||||
							
								
								
									
										93
									
								
								middleware/kubernetes/coredns.yaml.sed
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								middleware/kubernetes/coredns.yaml.sed
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | ||||
| apiVersion: v1 | ||||
| kind: ConfigMap | ||||
| metadata: | ||||
|   name: coredns | ||||
|   namespace: kube-system | ||||
| data: | ||||
|   Corefile: | | ||||
|     .:53 { | ||||
|         errors | ||||
|         log stdout | ||||
|         health | ||||
|         kubernetes CLUSTER_DOMAIN { | ||||
|           cidrs SERVICE_CIDR | ||||
|         } | ||||
|         proxy . /etc/resolv.conf | ||||
|         cache 30 | ||||
|     } | ||||
| --- | ||||
| apiVersion: extensions/v1beta1 | ||||
| kind: Deployment | ||||
| metadata: | ||||
|   name: coredns | ||||
|   namespace: kube-system | ||||
|   labels: | ||||
|     k8s-app: coredns | ||||
|     kubernetes.io/cluster-service: "true" | ||||
|     kubernetes.io/name: "CoreDNS" | ||||
| spec: | ||||
|   replicas: 1 | ||||
|   selector: | ||||
|     matchLabels: | ||||
|       k8s-app: coredns | ||||
|   template: | ||||
|     metadata: | ||||
|       labels: | ||||
|         k8s-app: coredns | ||||
|       annotations: | ||||
|         scheduler.alpha.kubernetes.io/critical-pod: '' | ||||
|         scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]' | ||||
|     spec: | ||||
|       containers: | ||||
|       - name: coredns | ||||
|         image: infoblox/coredns:latest | ||||
|         imagePullPolicy: Always | ||||
|         args: [ "-conf", "/etc/coredns/Corefile" ] | ||||
|         volumeMounts: | ||||
|         - name: config-volume | ||||
|           mountPath: /etc/coredns | ||||
|         ports: | ||||
|         - containerPort: 53 | ||||
|           name: dns | ||||
|           protocol: UDP | ||||
|         - containerPort: 53 | ||||
|           name: dns-tcp | ||||
|           protocol: TCP | ||||
|         livenessProbe: | ||||
|           httpGet: | ||||
|             path: /health | ||||
|             port: 8080 | ||||
|             scheme: HTTP | ||||
|           initialDelaySeconds: 60 | ||||
|           timeoutSeconds: 5 | ||||
|           successThreshold: 1 | ||||
|           failureThreshold: 5 | ||||
|       dnsPolicy: Default | ||||
|       volumes: | ||||
|         - name: config-volume | ||||
|           configMap: | ||||
|             name: coredns | ||||
|             items: | ||||
|             - key: Corefile | ||||
|               path: Corefile | ||||
| --- | ||||
| apiVersion: v1 | ||||
| kind: Service | ||||
| metadata: | ||||
|   name: kube-dns | ||||
|   namespace: kube-system | ||||
|   labels: | ||||
|     k8s-app: coredns | ||||
|     kubernetes.io/cluster-service: "true" | ||||
|     kubernetes.io/name: "CoreDNS" | ||||
| spec: | ||||
|   selector: | ||||
|     k8s-app: coredns | ||||
|   clusterIP: CLUSTER_DNS_IP | ||||
|   ports: | ||||
|   - name: dns | ||||
|     port: 53 | ||||
|     protocol: UDP | ||||
|   - name: dns-tcp | ||||
|     port: 53 | ||||
|     protocol: TCP | ||||
							
								
								
									
										19
									
								
								middleware/kubernetes/deploy.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								middleware/kubernetes/deploy.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Deploys CoreDNS to a cluster currently running Kube-DNS. | ||||
|  | ||||
| SERVICE_CIDR=$1 | ||||
| CLUSTER_DOMAIN=${2:-cluster.local} | ||||
| YAML_TEMPLATE=${3:-`pwd`/coredns.yaml.sed} | ||||
| YAML=${4:-`pwd`/coredns.yaml} | ||||
|  | ||||
| if [[ -z $SERVICE_CIDR ]]; then | ||||
| 	echo "Usage: $0 SERVICE-CIDR [ CLUSTER-DOMAIN ] [ YAML-TEMPLATE ] [ YAML ]" | ||||
| 	exit 1 | ||||
| fi | ||||
|  | ||||
| CLUSTER_DNS_IP=$(kubectl get service --namespace kube-system kube-dns -o jsonpath="{.spec.clusterIP}") | ||||
|  | ||||
| sed -e s/CLUSTER_DNS_IP/$CLUSTER_DNS_IP/g -e s/CLUSTER_DOMAIN/$CLUSTER_DOMAIN/g -e s?SERVICE_CIDR?$SERVICE_CIDR?g $YAML_TEMPLATE | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user