diff options
author | 2016-10-10 20:13:22 +0100 | |
---|---|---|
committer | 2016-10-10 20:13:22 +0100 | |
commit | faf83b00ddcf59ebc9507a90a2322d03bda40567 (patch) | |
tree | b87dec53ba32096dea049dc87d731d1e6072fac5 /middleware/kubernetes | |
parent | c22b7b225288bd9413a326cb4e1fa6b059653b89 (diff) | |
download | coredns-faf83b00ddcf59ebc9507a90a2322d03bda40567.tar.gz coredns-faf83b00ddcf59ebc9507a90a2322d03bda40567.tar.zst coredns-faf83b00ddcf59ebc9507a90a2322d03bda40567.zip |
docs: rewrite using manpage style (#327)
This still needs cleanup, but this is a first pass the cleans some
cruft and documents our style (in middleware.md) and makes all the
docs match that style.
Diffstat (limited to 'middleware/kubernetes')
-rw-r--r-- | middleware/kubernetes/README.md | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/middleware/kubernetes/README.md b/middleware/kubernetes/README.md index 0324cebfa..efab9d181 100644 --- a/middleware/kubernetes/README.md +++ b/middleware/kubernetes/README.md @@ -1,6 +1,6 @@ # kubernetes -`kubernetes` enables reading zone data from a kubernetes cluster. Record names +*kubernetes* enables reading zone data from a kubernetes cluster. Record names are constructed as "myservice.mynamespace.coredns.local" where: * "myservice" is the name of the k8s service (this may include multiple DNS labels, @@ -13,19 +13,23 @@ The record name format can be changed by specifying a name template in the Coref ## Syntax ~~~ -kubernetes [zones...] +kubernetes [ZONES...] ~~~ -* `zones` zones kubernetes should be authorative for. Overlapping zones are ignored. +* `ZONES` zones kubernetes should be authorative for. Overlapping zones are ignored. +Or if you want to specify an endpoint: + ~~~ -kubernetes [zones] { - endpoint http://localhost:8080 +kubernetes [ZONES...] { + endpoint ENDPOINT } ~~~ -* `endpoint` the kubernetes API endpoint, default to http://localhost:8080 +* **ENDPOINT** the kubernetes API endpoint, defaults to http://localhost:8080 + +TODO(...): Add all the other options. ## Examples @@ -41,8 +45,8 @@ This is the default kubernetes setup, with everything specified in full: resyncperiod 5m # Use url for k8s API endpoint endpoint https://k8sendpoint:8080 - # The tls cert, key and the CA cert filenames - tls cert key cacert + # The tls cert, key and the CA cert filenames + tls cert key cacert # Assemble k8s record names with the template template {service}.{namespace}.{zone} # Only expose the k8s namespace "demo" @@ -69,8 +73,9 @@ Defaults: is required. The label selector syntax is described in the kubernetes API documentation at: http://kubernetes.io/docs/user-guide/labels/ -### Template syntax +### Template Syntax Record name templates can be constructed using the symbolic elements: + | template symbol | description | | `{service}` | Kubernetes object/service name. | | `{namespace}` | The kubernetes namespace. | @@ -81,10 +86,9 @@ Record name templates can be constructed using the symbolic elements: #### Launch Kubernetes -Kubernetes is launched using the commands in the `contrib/kubernetes/testscripts/00_run_k8s.sh` script. +Kubernetes is launched using the commands in the `.travis/kubernetes/00_run_k8s.sh` script. - -#### Configure kubectl and test +#### Configure kubectl and Test The kubernetes control client can be downloaded from the generic URL: `http://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/${GOOS}/${GOARCH}/${K8S_BINARY}` @@ -95,7 +99,6 @@ For example, the kubectl client for Linux can be downloaded using the command: The `contrib/kubernetes/testscripts/10_setup_kubectl.sh` script can be stored in the same directory as kubectl to setup kubectl to communicate with kubernetes running on the localhost. - #### Launch a kubernetes service and expose the service The following commands will create a kubernetes namespace "demo", @@ -112,7 +115,7 @@ $ ./kubectl expose deployment mynginx --namespace=demo --port=80 $ ./kubectl get service --namespace=demo ~~~ -The script `contrib/kubernetes/testscripts/20_setup_k8s_services.sh` creates a couple of sample namespaces +The script `.travis/kubernetes/20_setup_k8s_services.sh` creates a couple of sample namespaces with services running in those namespaces. The automated kubernetes integration tests in `test/kubernetes_test.go` depend on these services and namespaces to exist in kubernetes. @@ -125,7 +128,7 @@ Build CoreDNS and launch using this configuration file: # Serve on port 53 .:53 { kubernetes coredns.local { - resyncperiod 5m + resyncperiod 5m endpoint http://localhost:8080 template {service}.{namespace}.{zone} namespaces demo @@ -154,10 +157,6 @@ In a separate terminal a DNS query can be issued using dig: ~~~ $ dig @localhost mynginx.demo.coredns.local -; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> @localhost mynginx.demo.coredns.local -; (2 servers found) -;; global options: +cmd -;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47614 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 @@ -176,6 +175,7 @@ mynginx.demo.coredns.local. 0 IN A 10.0.0.10 ~~~ +TODO(miek|...): below this line file bugs or issues and cleanup: ## Implementation Notes/Ideas |