From 9e562e9bb35ba508adffa8e65fa6b69453e09038 Mon Sep 17 00:00:00 2001 From: Marco Vito Moscaritolo Date: Sun, 21 Jun 2020 18:49:51 +0200 Subject: [PATCH] update readme to use the published chart (#38) --- README.md | 67 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index c884f98..862d317 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,45 @@ # Caddy Ingress Controller -This is the Kubernetes Ingress Controller for Caddy. It includes functionality for monitoring -Ingress resources on a Kubernetes cluster and includes support for providing automatic HTTPS -certificates for all hostnames defined in ingress resources that it is managing. - -**The community is looking for maintainers with Kubernetes experience who can commit to help finish the development of this tool.** Please get involved! +This is the Kubernetes Ingress Controller for Caddy. It includes functionality +for monitoring `Ingress` resources on a Kubernetes cluster and includes support +for providing automatic HTTPS certificates for all hostnames defined in ingress +resources that it is managing. ## Cloud Provider Setup (AWS, GCLOUD, ETC...) -In the Kubernetes folder a Helm Chart is provided to make installing the Caddy Ingress Controller -on a Kubernetes cluster straight forward. To install the Caddy Ingress Controller adhere to the -following steps: +In the `charts` folder a Helm Chart is provided to make installing the Caddy +Ingress Controller on a Kubernetes cluster straight forward. To install the +Caddy Ingress Controller adhere to the following steps: 1. Create a new namespace in your cluster to isolate all Caddy resources. ```sh - kubectl apply -f ./kubernetes/deploy/00_namespace.yaml + kubectl create namespace caddy-system ``` -2. Install the Helm Chart. (If you do not want automatic https set `autotls` to false and do not include -your email address as a value to the helm chart.) +2. Install the Helm Chart. ```sh - helm template \ - --namespace=caddy-system ./kubernetes/helm/caddyingresscontroller/ \ - --set autotls=true \ - --set email=youremail@test.com | kubectl apply -f - + helm install \ + --namespace=caddy-system \ + --repo https://caddyserver.github.io/ingress/ \ + --atomic \ + --set image.tag=latest + mycaddy \ + caddy-ingress-controller ``` -The helm chart will create a service of type `LoadBalancer` in the `caddy-system` namespace on your cluster. You'll want to -set any DNS records for accessing this cluster to the external IP address of this LoadBalancer when the -external IP is provisioned by your cloud provider. +The helm chart create a service of type `LoadBalancer` in the `caddy-system` +namespace on your cluster. You'll want to set any DNS records for accessing this +cluster to the external IP address of this `LoadBalancer` when the external IP +is provisioned by your cloud provider. You can get the external IP address with `kubectl get svc -n caddy-system` ## Debugging -To view any logs generated by Caddy or the Ingress Controller you can view the pod logs of the Caddy Ingress Controller. +To view any logs generated by Caddy or the Ingress Controller you can view the +pod logs of the Caddy Ingress Controller. Get the pod name with: @@ -52,28 +55,28 @@ kubectl logs -n caddy-system ## Automatic HTTPS -By default, any hosts defined in an ingress resource will configure caddy to automatically get certificates from let's encrypt and -will serve your side over HTTPS. - -To disable automattic https you can set the argument `tls` on the caddy ingress controller to `false`. +To enable automatic https via ingress controller using Let's Encrypt you can set +the argument `ingressController.autotls=true` and the email to use +`ingressController.email=your@email.com` on the caddy ingress controller helm +chart values. Example: -Add args `tls=false` to the deployment. + - `--set ingressController.autotls=true` + - `--set ingressController.email=your@email.com` -``` - args: - - -tls=false -``` +when you execute the helm-chart installation. ## Bringing Your Own Certificates -If you would like to disable automatic HTTPS for a specific host and use your own certificates you can create a new TLS secret in Kubernetes and define -what certificates to use when serving your application on the ingress resource. +If you would like to disable automatic HTTPS for a specific host and use your +own certificates you can create a new TLS secret in Kubernetes and define what +certificates to use when serving your application on the ingress resource. Example: -Create TLS secret `mycerts`, where `./tls.key` and `./tls.crt` are valid certificates for `test.com`. +Create TLS secret `mycerts`, where `./tls.key` and `./tls.crt` are valid +certificates for `test.com`. ``` kubectl create secret tls mycerts --key ./tls.key --cert ./tls.crt @@ -99,4 +102,4 @@ spec: - hosts: - test.com secretName: mycerts # use mycerts for host test.com -``` \ No newline at end of file +```