Commit graph

264 commits

Author SHA1 Message Date
Ev Kontsevoy 7f5e93cf87 Added an example script for retreiving a GKE certificate 2018-10-30 13:09:51 -07:00
Sasha Klizhentas 410c33b7d9 Add clustered etcd docker-compose example 2018-08-27 13:54:41 -07: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
Ev Kontsevoy b2c12066a0 Updated getting started experience for systemd users
- Modified the default teleport.service to start without
  /etc/teleport.yaml
- Updated REAMDE for systemd unit
- Updated ./install script
2018-07-19 18:04:14 -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
Gus Luxton 8f69bc7546
Use full pathnames in tctl execution (#1972) 2018-05-25 13:29:31 -03:00
Sasha Klizhentas b9813e3c76 Switch Terraform to Dynamo
This commit replaces EFS with S3 for audit logging,
and switches to DynamoDB for events storage.

It also updates Terraform and AWS provider
2018-05-14 18:12:57 -07:00
Russell Jones c4b3089247
Update saml-connector.yaml 2018-04-19 18:09:30 -07:00
Ev Kontsevoy 1d315e518c Updated "graceful restarts" section 2018-03-11 20:18:51 -07:00
Sasha Klizhentas ebe3c1a9c1 Fix several issues with audit events.
1. Fixes several cosmetic issues with logs:

Fixes #1690, fixes #1687

2. Fixes deadlocks that were revealed during stress
testing on slow encrypted EFS system.

The following deadlock scenario was happening:

Goroutine 1:

t1. auditlock.Lock <- success
t3. diskSessionLogger.Lock <- blocked

Gorotuine 2:

t2. diskSessionLogger.Lock <- success
t4. auditLock.Lock  <- blocked

3. Update ansible upgrade scripts
to support custom binary upgrades.

4. Fix docker flow by removing deprecated
--gops-addr flag

5. Remove verbose logging lines.

6. Reduce compression efficiency to
reduce large memory load.
2018-02-15 18:28:42 -08:00
Sasha Klizhentas 11672b8493 Terraform improvements.
Fixes #1671

* Add notes about TOS agreements for AMI
* Use specific UID for Teleport instances
* Use encrypted EFS for session storage
* Default scale up auto scaling groups to amount of AZs
* Move dashboard to local file
* Fix dynamo locking bug
* Move PID writing fixing enterprise pid-file
* Add reload method for teleport units
2018-02-14 15:09:56 -08:00
Ev Kontsevoy a09e8c64ea Updated README for go-client (auth server API example) 2018-02-14 10:26:23 -08:00
Sasha Klizhentas 7b1b29be80 Add go-client initial example. 2018-02-13 18:55:24 -08:00
Sasha Klizhentas a180d405ab Add sample teleport upgrade procedure 2018-02-06 15:11:02 -08:00
Sasha Klizhentas bb9b00e451 Cache recently accessed items.
Introduce cache for items that were accessed
by proxies and nodes within 2 second window to reduce
load on database under high load.
2018-01-31 16:35:18 -08:00
Sasha Klizhentas f84e9e0fe1 Add monitoring stack.
Demo monitoring stack sets up example monitoring
infrastructure:

* All nodes, auth servers and proxies
  run telegraf alongside them, polling prometheus
  diagnostic endpoints.

* Telegraf sends the data to InfluxDB database

* Grafana sets up cluster health dashboard
watching key teleport metrics - numbers of goroutines,
number of active sessions, file descriptors and so on.
2018-01-25 13:22:43 -08:00
Sasha Klizhentas 6138f2c93a Improvements for AWS support deployments
* Fix IAM instance profiles assignments for proxy and nodes
* Add support for auth server certificate verification done by
  nodes and proxies joining the cluster.
* Fix out of order events returned by auth servers in HA mode.

In HA mode, auth server could return events out of order
in case if they were sent to multiple auth servers what confused
the user interface expecting events sorted.

This commit fixes the problem by sorting events returned
by function SearchEvents.
2018-01-23 19:41:54 -08:00
Sasha Klizhentas 324c5c95af Initial reference AWS deployment
This is MVP for HA deployment of Teleport on AWS

* Using terraform
* EFS for audit log storage
* Proxies and auth servers in auto scaling group
* NLB for frontends
* Letsencrypt
2018-01-22 13:49:28 -08:00
Sasha Klizhentas 43c2515f8c address code review comments 2017-11-13 10:10:04 -08:00
Sasha Klizhentas f2549155fd Update DynamoDB backend
* Add support for TTL
* Add support for Batch reads
* Update default values
* Use batch reads to retrieve nodes
2017-11-10 12:20:18 -08:00
Ev Kontsevoy af302a7d53 PR edits 2017-09-14 11:58:08 -07:00
Ev Kontsevoy 1231e75b25 Documentation edits
Some users noticed that 'display' field is not well-documented for the
connectors.

I also noticed that some defaults are not sensible (like "google" as the
provider)
2017-09-14 11:35:38 -07:00
Ev Kontsevoy 2f7200b112 Another typo! 2017-09-13 18:41:44 -07:00
Ev Kontsevoy 23bd85a27e Typo 2017-09-13 18:41:11 -07:00
Ev Kontsevoy 5d866f2305 Added RBAC version of 'trusted cluster' resource to examples 2017-09-13 18:38:40 -07:00
Ev Kontsevoy 47c1791437 Updated comments inside the examples 2017-09-13 18:13:08 -07:00
Ev Kontsevoy efde3681a0 Updated 'examples/resources' with more comments 2017-09-12 18:06:08 -07:00
Ev Kontsevoy 82cb0ce01d Updated resource examples 2017-09-12 10:36:32 -07:00
Ev Kontsevoy 3533903c0e Lots of documentation edits.
Minor code changes too (only comments)
2017-09-11 20:27:42 -07:00
Ev Kontsevoy 8b845d26b8 Added upstart Teleport daemon script to examples
Closes #1177
2017-08-19 20:34:13 -07:00
Ev Kontsevoy 6962f7a567 Better systemd unit 2017-08-15 18:57:20 -07:00
Ev Kontsevoy 94c35298b8 Preparation for 2.3
- Switched to new way of building Enterprise
- Removed `tctl tunnels` command (preparation for new resources)
- Removed `tctl auth ls` command (preparation for new resources)
2017-06-21 20:14:40 -07:00
Ev Kontsevoy ab6857a573 Added 'insecure' flag to etcd config
Fixes #694
2017-01-16 11:15:04 -08:00
Ev Kontsevoy 5e952e2cf2 Merge branch 'master' into ev/688 2017-01-16 00:59:28 -08:00
Ev Kontsevoy ac205ad530 Finished cleaning up storage back-ends
I hope this closes #688
2017-01-15 23:23:37 -08:00
Ev Kontsevoy d549d884bc "Cluster snapshot" became "caching AP client"
Instead of trying to achieve a full "offline" operation, this commit
honestly converts previous attempts to a "caching access point client"
behavior.

Closes #554
2016-10-16 22:04:20 -07:00
Ev Kontsevoy fb090a4e72 Intermediate commit 2016-10-14 00:10:38 -07:00
Ev Kontsevoy 1dc2d9c414 Intermediate commit where "standalone mode" kind of works
What works:

1. You have to start all 3: node, proxy and auth.
2. Login using 'tsh' (so it will create a cert)
3. Then you can shut 'auth' down.
4. Proxy and node will stay up and tsh will be able to login.

What doesn't work:

1. Auth updates are not visible to proxy/node (like new servers)
2. Not sure if "trusted clusters" will work.
2016-10-10 21:19:55 -07:00
Ev Kontsevoy 0a78b45b3c Added "examples" directory with some sample configs
- 3-node cluster example
- systemd unit file
2016-10-10 10:51:43 -07:00
Ev Kontsevoy 952c1d6bc3 Clode / structure cleanup 2016-03-15 20:45:04 -07:00
Alex Lyulkov 66dd4436e9 working hangouts 2016-02-16 15:51:33 +03:00
Alex Lyulkov 566933b541 Fixed code style 2016-02-05 02:03:05 +03:00
Alex Lyulkov acd9cf4943 Added user mapping, web shell restarts after exit 2016-02-04 20:19:42 +03:00
Alex Lyulkov 70ecc479c3 minor code style fixes 2016-02-01 16:51:22 +03:00
Alex Lyulkov 67bcda7b82 Added init encryption keys for auth backend config, backend configs are JSON now, all complex env configs are JSON now 2016-01-29 19:17:12 +03:00
Alex Lyulkov f6fa70c66b Fixed cpu drain in node labels 2016-01-26 22:26:39 +03:00
Alex Lyulkov dc72190910 Added sample config with all the parameters 2016-01-18 02:47:13 +03:00
Alex Lyulkov 4c02338225 Tsh client. Everything works. 2015-12-25 02:24:47 +03:00
Alex Lyulkov 8451bc1e31 fixed bugs, added error text when web login fails 2015-12-10 18:37:48 +03:00
Alex Lyulkov c8332eba27 Added node labels, fixed limiter bugs 2015-12-07 23:05:54 +03:00
Alex Lyulkov 0a7e6fdfbe Refactoring 2015-12-03 12:26:34 +03:00
Alex Lyulkov 91bfd6e719 Added rate limiter, connection limiter 2015-12-02 21:51:32 +03:00
Alex Lyulkov 8c7f849805 Added tests for permissions, everythink works 2015-11-13 19:47:59 -08:00
Alex Lyulkov 32c1c11a9e Fixed scp, added single node config 2015-11-06 20:55:12 -08:00
klizhentas 7164f2dd66 update the docs 2015-10-31 14:42:07 -07:00
klizhentas 325a4bf62b some changes to readme 2015-10-28 18:10:09 -07:00
klizhentas 8cb3f63f39 fix orbit integration, tests and configuration samples 2015-10-25 14:48:03 -07:00
klizhentas dbbd15b192 first batch of code changes of moving telescope into teleport 2015-10-24 16:04:13 -07:00
Alex Lyulkov 1b71e6b51c Added 2 factor hotp authentication, everyting works 2015-10-23 13:34:09 -07:00
Alex Lyulkov e89e658c20 Modified telescope makefile command for the new congig 2015-10-23 11:52:07 -07:00
klizhentas c58654d55f orbit-compatible packaging and configuration for teleport and telescope 2015-10-14 20:01:25 -07:00