Commit graph

24 commits

Author SHA1 Message Date
Gus Luxton 7b54e7f892
Don't end the script on a certbot error (#3170) 2019-11-22 15:19:47 -04:00
Gus Luxton 0a5f3f6bfc
Cloudflare agent fixes for demo environments in Kubernetes (#3157)
* Added wait time for Cloudflare and retry logic for LetsEncrypt, also removed wildcard registration
* Move log statement
2019-11-14 13:50:04 -04:00
Gus Luxton 2ca75d06e6
Add setuptools to Docker (#3151) 2019-11-13 14:04:54 -04:00
Gus Luxton 7c9e704ada
Change latest tag to buster in Teleport demo containers (#3150) 2019-11-13 13:57:24 -04:00
Gus Luxton f99dc4e4d9
Update pip to pip3 in cloudflare-agent container (#3149) 2019-11-13 13:50:06 -04:00
Brendan Germain 1b10e3aad5 Helm Chart updates kubernetes >= 1.16 support (#3065)
* PV template to use Values.persistence.accessMode

* use apps/v1

* expose replica count for modification
2019-10-09 16:47:50 -07:00
Gus Luxton 882e5ed27f
Automatically restart Teleport process in demo environments (#2824)
* Expose diagnostic endpoint and add liveness/ready checks to pods to enable automatic restart if Teleport shuts down
* Force add OIDC connector to suppress error message when container restarts, also add missing echo to errors
* Force adding of trusted cluster on restart
2019-07-03 14:40:04 -03:00
Alexander Klizhentas 511d777de2 Update default inage in values.yaml for helm chart 2019-05-23 13:40:03 -07:00
Alexander Klizhentas 92e5bf5081
Fixes in DynamoDB event polling (#2661)
* Add resest for buffers to close watchers
and reset buffer the state.
* Add reconnect logic to DynamoDB
* Add tests for cache watchers, make sure
the errors of the cache internal watcher propagate to
external watchers.
2019-04-17 18:52:09 -07:00
Gus Luxton 9dc033f54b
Various extra fixes for Teleport Demo environments (#2647)
* Create wildcard DNS record for the main cluster as well as single A record so we can use Kubernetes forwarding to remote clusters via proxy properly
* Automatically delete created Cloudflare DNS records via pre-delete hook when the chart is deleted to keep the zone tidy
* Don't explicitly print Cloudflare API credentials in debug mode (they're logged along with the curl commands anyway)
* Add a function to handle Cloudflare API calls rather than copy/pasting code
2019-04-11 17:38:54 +01:00
Gus Luxton d328296b04
Reproducible Teleport demo environments in Kubernetes (#2585)
* Initial commit with split Helm chart for proxy/auth and node elements
* Many, many changes to add all required features
* Remove cert-manager and nginx-ingress
* Update TTL
* Add build-essential and python-dev to cloudflare-agent Docker build and set exit on error
* Add --force-upgrade flag to Tiller for potentially different Helm versions
* Enable Letsencrypt by default
* Overhaul naming to allow better multi-tenancy on k8s clusters
* Add NOTES.txt to provide cluster usage instructions
* Make the use of trusted clusters entirely optional
* Actually make the use of trusted clusters entirely optional this time
* Update .gitignore
* Update whitespace formatting in NOTES.txt
* Enable Letsencrypt by default
* Move secrets to git submodule
* Fix README typo and add secrets to .gitignore
* Update documentation
* Add some extra details to NOTES.txt
* Address PR comments plus update all references to Teleport 3.1.4 -> 3.1.7
* Make Cloudflare TTL optional (use Cloudflare's auto value when it's not provided)
* - Explicitly add admin role to clusters with use of kubernetes_groups
- Fix use of claims_to_roles so it can be specified in values.yaml
- Improve Minikube/NodePort support
- Replace use of containerPort with service port for LoadBalancer objects
* Update secrets in submodule to use Kubernetes-enabled license
* Add admin role script to containers
* Ignore all secrets files
* Update k8s RBAC to fix proxy functionality, also create 'clusteradmin' and 'admin' roles in Teleport to split permissions
* Update default version to 3.1.8
* Add k8s cluster roles and bindings to allow use of CSR APIs and limited permission scope
* Restrict admin role from seeing/updating auth_connectors
* Fix whitespace and naming bug
* Change from using k8s CSR API to impersonation API
* Update from kubectl 1.12.4 -> 1.12.5 for security fix
* Updated build scripts to use Docker cache properly, also using version tags for all containers now to keep things tidier
* Use docker build --pull rather than manual pull, also remove unused TELEPORT_VERSION arguments
2019-04-09 14:09:25 +01:00
Daniel Aquino e260c440a8 helm-chart: allow custom tls-web secret names 2019-04-03 10:16:05 -07:00
Daniel Aquino 9322b7b63f helm-chart: disable service account automount 2019-04-03 10:15:55 -07:00
Brendan Germain 1e44be361b expose deployment update strategy 2019-04-01 17:48:22 -07:00
Brendan Germain ea17f9c2be add externalTrafficPolicy to helm service 2019-03-21 13:19:40 -07:00
Sasha Klizhentas aefe8860c1 Kubernetes proxy to use impersonation API
This commit switches Teleport proxy to use impersonation
API instead of the CSR API.

This allows Teleport to work on EKS clusters, GKE and all
other CNCF compabitble clusters.

This commit updates helm chart RBAC as well.

It introduces extra configuration flag to proxy_service
configuration parameter:

```yaml
proxy_service:
   # kubeconfig_file is used for scenarios
   # when Teleport Proxy is deployed outside
   # of the kubernetes cluster
   kubeconfig_file: /path/to/kube/config
```

It deprecates similar flag in auth_service:

```yaml
auth_service:
   # DEPRECATED. THIS FLAG IS IGNORED
   kubeconfig_file: /path/to/kube/config
```
2019-03-18 15:46:49 -07:00
Brendan Germain 34f7a1f3d8 update helm chart pvc name to match deployment/pv (#2466) 2019-01-05 13:24:12 -08:00
Brendan Germain 53d2e4ddd4 add persistence to helm chart (#2465) 2019-01-04 11:29:09 -08:00
Alexander Babai f52de7678e Helm - Make license optional (#2451)
Make license optional, bump chart version.
2018-12-29 12:14:14 -08:00
Brendan Germain 59810b2f0b add proxytunnel as a default service to helm chart 2018-08-16 08:47:26 -07:00
Sasha Klizhentas 1f3b4e2c96 Kubernetes configuration, fetch proxy settings.
This commit moves proxy kubernetes configuration
to a separate nested block to provide more fine
grained settings:

```yaml
auth:
  kubernetes_ca_cert_path: /tmp/custom-ca
proxy:
  enabled: yes
  kubernetes:
    enabled: yes
    public_addr: [custom.example.com:port]
    api_addr: kuberentes.example.com:443
    listen_addr: localhost:3026
```

1. Kubernetes config section is explicitly enabled
and disabled. It is disabled by default.

2. Public address in kubernetes section
is propagated to tsh profile

The other part of the commit updates Ping
endpoint to send proxy configuration back to
the client, including kubernetes public address
and ssh listen address.

Clients updates profile accordingly to configuration
received from the proxy.
2018-08-06 11:57:36 -07:00
Sasha Klizhentas f3488a6c76 Fix helm template typos 2018-07-18 17:23:56 -07:00
Yusuke KUOKA eac92edd20 Idiomatic helm chart for Teleport
This is a helm chart for Teleport that conforms to [helm chart best practices](https://docs.helm.sh/chart_best_practices/) and various conventions seen in the official charts repository, so that it becomes easy-to-use and flexible enough to support many deployment scenarios.

Features:

- Locally testable on minikube
- Chart values for flexible configuration, instead of sourcing the raw teleport.yaml contained in the chart
- Automatically rolling-update the pods on configuration change according to the helm best practices
- Service and deplyment ports more finely configurable
- Customizable service and ingress for exposing the proxy to the private network or the internet
  - Use service annotatinos for integration with e.g. [external-dns](https://github.com/kubernetes-incubator/external-dns)
  - Use ingress for integration with e.g.[aws-alb-ingress-controller](https://github.com/kubernetes-sigs/aws-alb-ingress-controller)
- Configurable pod annotations. Uesful for IAM integration with kube2iam/kiam for example.
- Customizable pod assignment for security and availability
2018-07-06 09:35:10 -07:00
Sasha Klizhentas cece4be212 Initial implementation of Kubernetes support
This issue updates #1986.

This is intial, experimental implementation that will
be updated with tests and edge cases prior to production 2.7.0 release.

Teleport proxy adds support for Kubernetes API protocol.
Auth server uses Kubernetes API to receive certificates
issued by Kubernetes CA.

Proxy intercepts and forwards API requests to the Kubernetes
API server and captures live session traffic, making
recordings available in the audit log.

Tsh login now updates kubeconfig configuration to use
Teleport as a proxy server.
2018-06-03 12:55:13 -07:00