Merge pull request #746 from Jason-ZW/master
Add CoreDNS template for community-catalog
This commit is contained in:
commit
8ef1b8c6db
108
templates/coredns/0/README.md
Normal file
108
templates/coredns/0/README.md
Normal file
@ -0,0 +1,108 @@
|
||||
## CoreDNS
|
||||
|
||||
CoreDNS (written in Go) chains [plugins](https://coredns.io/plugins). Each plugin performs a DNS
|
||||
function.
|
||||
|
||||
CoreDNS is a [Cloud Native Computing Foundation](https://cncf.io) incubating level project.
|
||||
|
||||
CoreDNS is a fast and flexible DNS server. The keyword here is *flexible*: with CoreDNS you
|
||||
are able to do what you want with your DNS data by utilizing plugins. If some functionality is not
|
||||
provided out of the box you can add it by [writing a plugin](https://coredns.io/explugins).
|
||||
|
||||
|
||||
And more. Each of the plugins is documented. See [coredns.io/plugins](https://coredns.io/plugins)
|
||||
for all in-tree plugins, and [coredns.io/explugins](https://coredns.io/explugins) for all
|
||||
out-of-tree plugins.
|
||||
|
||||
## Dockerfile
|
||||
The Dockerfile source is under below:
|
||||
[https://github.com/Jason-ZW/Dockerfile/tree/master/coredns](https://github.com/Jason-ZW/Dockerfile/tree/master/coredns)
|
||||
|
||||
## Parameters
|
||||
|
||||
- Publish port: Port to publish coredns service. (eg. 53)
|
||||
- DNS zone names: you can put multiple zone names.(eg. rancher.io,rancher.io,172.in-addr.arpa)
|
||||
- Etcd root path: etcd root path which is used to save records. (eg. /skydns)
|
||||
- Etcd endpoints: etcd service endpoints,this catalog don't include etcd service,please use external etcd service. (eg. http://localhost:2379, endpoints2, ...)
|
||||
- UpStream for dns: upstream configuration for dns server. (eg. /etc/resolv.conf)
|
||||
- Forward addresses: the address which to be forwarded DNS query. (eg. 8.8.8.8:53,8.8.4.4:53)
|
||||
- Prometheus plugin support: whether to enable prometheus plugin.
|
||||
- Errors plugin support: whether to enable errors plugin.
|
||||
- Log plugin support: whether to enable log plugin.
|
||||
- Proxy plugin support: whether to enable proxy plugin.
|
||||
- Cache plugin support: whether to enable cache plugin.
|
||||
- Loadbalance plugin support: whether to enable loadbalance plugin.
|
||||
|
||||
More detail for CoreDNS plugin
|
||||
[https://coredns.io/plugins](https://coredns.io/plugins)
|
||||
|
||||
## Guide
|
||||
|
||||
Serve for DNS `A/AAAA` Records:
|
||||
|
||||
> Put DNS A record to etcd server.
|
||||
|
||||
```
|
||||
curl -XPUT http://{ETCD_ENDPOINT}:2379/v2/keys/skydns/io/rancher/busybox -d value='{"host":"172.16.80.175","port":8080}'
|
||||
```
|
||||
|
||||
> Set `nameserver` to `/etc/resolv.conf`.
|
||||
```
|
||||
nameserver {DNS_SERVER_ADDRESS}
|
||||
search rancher.io
|
||||
```
|
||||
|
||||
> Query DNS use dns tools(eg. `dig` or `nslookup`)
|
||||
```
|
||||
nslookup busybox.rancher.io
|
||||
|
||||
#output:
|
||||
Server: xxx.xxx.xxx.xxx
|
||||
Address: xxx.xxx.xxx.xxx#53
|
||||
|
||||
Name: busybox.rancher.io
|
||||
Address: 172.16.80.175
|
||||
```
|
||||
|
||||
Serve for DNS `PTR` Records:
|
||||
> Modify the DNS zone names section on Catalog template.
|
||||
|
||||
```
|
||||
# DNS zone names section on Catalog template.
|
||||
rancher.io,172.in-addr.arpa
|
||||
```
|
||||
|
||||
> Put DNS PTR record to etcd server.
|
||||
```
|
||||
curl -XPUT http://{ETCD_ENDPOINT}:2379/v2/keys/skydns/arpa/in-addr/172/16/80/175 -d value='{"host":"busybox.rancher.io"}'
|
||||
```
|
||||
|
||||
> Set `nameserver` to `/etc/resolv.conf`.
|
||||
```
|
||||
nameserver {DNS_SERVER_ADDRESS}
|
||||
search rancher.io
|
||||
```
|
||||
|
||||
> Query DNS use dns tools(eg. `dig` or `nslookup`)
|
||||
```
|
||||
dig @localhost -x 172.16.80.175 +short
|
||||
|
||||
#output:
|
||||
busybox.rancher.io.
|
||||
```
|
||||
|
||||
## Community
|
||||
|
||||
We're most active on Slack (and Github):
|
||||
|
||||
- Slack: #coredns on <https://slack.cncf.io>
|
||||
- Github: <https://github.com/coredns/coredns>
|
||||
|
||||
More resources can be found:
|
||||
|
||||
- Website: <https://coredns.io>
|
||||
- Blog: <https://blog.coredns.io>
|
||||
- Twitter: [@corednsio](https://twitter.com/corednsio)
|
||||
- Mailing list/group: <coredns-discuss@googlegroups.com>
|
||||
|
||||
**Notice: For kubernetes, please use helm coredns's chart.**
|
45
templates/coredns/0/docker-compose.yml
Normal file
45
templates/coredns/0/docker-compose.yml
Normal file
@ -0,0 +1,45 @@
|
||||
version: '2'
|
||||
services:
|
||||
coredns:
|
||||
image: coredns/coredns:1.0.1
|
||||
labels:
|
||||
io.rancher.sidekicks: data
|
||||
io.rancher.container.hostname_override: container_name
|
||||
command: [ "-conf", "/etc/coredns/Corefile" ]
|
||||
ports:
|
||||
- ${PUBLISH_PORT}:${PUBLISH_PORT}/tcp
|
||||
- ${PUBLISH_PORT}:${PUBLISH_PORT}/udp
|
||||
volumes_from:
|
||||
- data
|
||||
data:
|
||||
image: zhenyangzhao/coredns-file:v0.8.0
|
||||
labels:
|
||||
io.rancher.container.start_once: 'true'
|
||||
io.rancher.container.pull_image: always
|
||||
network_mode: none
|
||||
entrypoint:
|
||||
- confd
|
||||
- -backend
|
||||
- env
|
||||
- -onetime
|
||||
environment:
|
||||
PLUGIN_ZONES: ${ZONES}
|
||||
PLUGIN_ROOT_PATH: ${ROOT_PATH}
|
||||
PLUGIN_ETCD_ENDPOINTS: ${ETCD_ENDPOINTS}
|
||||
PLUGIN_UPSTREAM: ${UPSTREAM}
|
||||
PLUGIN_PROM: ${PLUGIN_PROM}
|
||||
PLUGIN_ERRORS: ${PLUGIN_ERRORS}
|
||||
PLUGIN_LOG: ${PLUGIN_LOG}
|
||||
PLUGIN_HEALTH: true
|
||||
PLUGIN_PROXY: ${PLUGIN_PROXY}
|
||||
PLUGIN_CACHE: ${PLUGIN_CACHE}
|
||||
PLUGIN_LOADBALANCE: ${PLUGIN_LOADBALANCE}
|
||||
PLUGIN_FORWARDS: ${FORWARDS}
|
||||
PUBLISH_PORT: ${PUBLISH_PORT}
|
||||
volumes:
|
||||
- coredns_data:/etc/coredns
|
||||
volumes:
|
||||
coredns_data:
|
||||
driver: local
|
||||
per_container: true
|
||||
|
92
templates/coredns/0/rancher-compose.yml
Normal file
92
templates/coredns/0/rancher-compose.yml
Normal file
@ -0,0 +1,92 @@
|
||||
version: '2'
|
||||
catalog:
|
||||
name: "CoreDNS"
|
||||
version: "1.0.1"
|
||||
minimum_rancher_version: v1.6.14
|
||||
description: "CoreDNS is a DNS server that chains plugins and provides such DNS Services like Etcd & Kubernetes. For kubernetes, please use helm coredns's chart."
|
||||
questions:
|
||||
- variable: "PUBLISH_PORT"
|
||||
description: "Port to publish coredns service."
|
||||
label: "Publish port"
|
||||
required: true
|
||||
default: "53"
|
||||
type: "int"
|
||||
- variable: "ZONES"
|
||||
label: "DNS zone names"
|
||||
description: "The name of an existing zone in which to create the records."
|
||||
type: "string"
|
||||
default: "rancher.io"
|
||||
required: true
|
||||
- variable: "ROOT_PATH"
|
||||
label: "Etcd root path"
|
||||
description: "Etcd root path which is used to save records."
|
||||
default: "/skydns"
|
||||
type: "string"
|
||||
required: true
|
||||
- variable: "ETCD_ENDPOINTS"
|
||||
label: "Etcd endpoints"
|
||||
description: "Etcd service endpoints which support multiple parameters separated by comma."
|
||||
type: "string"
|
||||
default: ""
|
||||
required: true
|
||||
- variable: "UPSTREAM"
|
||||
label: "Upstream for dns"
|
||||
description: "The DNS server upstream."
|
||||
type: "string"
|
||||
default: "/etc/resolv.conf"
|
||||
required: false
|
||||
- variable: "FORWARDS"
|
||||
label: "Forward addresses"
|
||||
description: "The address which to be forwarded DNS query."
|
||||
type: "string"
|
||||
default: "8.8.8.8:53,8.8.4.4:53"
|
||||
- variable: "PLUGIN_PROM"
|
||||
label: "Prometheus plugin support"
|
||||
description: "Whether to enable prometheus plugin."
|
||||
type: "boolean"
|
||||
default: true
|
||||
required: true
|
||||
- variable: "PLUGIN_ERRORS"
|
||||
label: "Errors plugin support"
|
||||
description: "Whether to enable errors plugin."
|
||||
type: "boolean"
|
||||
default: true
|
||||
required: true
|
||||
- variable: "PLUGIN_LOG"
|
||||
label: "Log plugin support"
|
||||
description: "Whether to enable log plugin."
|
||||
type: "boolean"
|
||||
default: true
|
||||
required: true
|
||||
- variable: "PLUGIN_PROXY"
|
||||
label: "Proxy plugin support"
|
||||
description: "Whether to enable proxy plugin."
|
||||
type: "boolean"
|
||||
default: true
|
||||
required: true
|
||||
- variable: "PLUGIN_CACHE"
|
||||
label: "Cache plugin support"
|
||||
description: "Whether to enable cache plugin."
|
||||
type: "boolean"
|
||||
default: true
|
||||
required: true
|
||||
- variable: "PLUGIN_LOADBALANCE"
|
||||
label: "Loadbalance plugin support"
|
||||
description: "Whether to enable loadbalance plugin."
|
||||
type: "boolean"
|
||||
default: true
|
||||
required: true
|
||||
services:
|
||||
coredns:
|
||||
scale: 1
|
||||
health_check:
|
||||
response_timeout: 4000
|
||||
healthy_threshold: 2
|
||||
port: 8080
|
||||
unhealthy_threshold: 3
|
||||
initializing_timeout: 60000
|
||||
interval: 2000
|
||||
strategy: recreate
|
||||
request_line: GET "/health" "HTTP/1.0"
|
||||
reinitializing_timeout: 60000
|
||||
|
1
templates/coredns/catalogIcon-coredns.svg
Normal file
1
templates/coredns/catalogIcon-coredns.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 7.7 KiB |
7
templates/coredns/config.yml
Normal file
7
templates/coredns/config.yml
Normal file
@ -0,0 +1,7 @@
|
||||
name: Core DNS
|
||||
description: |
|
||||
CoreDNS is a DNS server that chains plugins and provides such DNS Services like Etcd & Kubernetes.For kubernetes, please use helm coredns's chart.
|
||||
version: 1.0.1
|
||||
category: External DNS
|
||||
labels:
|
||||
io.rancher.orchestration.supported: 'cattle'
|
Loading…
x
Reference in New Issue
Block a user