Commit Graph
36 Commits
Author SHA1 Message Date
Jonathon Canada e172456938 [examples] Add image types, AMI IDs, extend AuthASG timeout for Cloudformation Enterprise (#3503)
* Add image types, AMI IDs, extend AuthASG timeout
Added options for m4.large and m5.large. Added AMI IDs for all regions. Extended the timeout on the Auth ASG from 20 minutes to 30 minutes.
* Update ent.yaml
Co-authored-by: Ben Arent <ben@gravitational.com>
Co-authored-by: Gus Luxton <gus@gravitational.com>
2020-04-29 09:19:15 -07:00
Jonathon Canada f19ee7e04b Fixed ASG timeout and updated AMIs (#3631)
Prolonged ASG timeout to 30 minutes, updated the AMIs with 4.2.8, and added additional instance size options
2020-04-27 14:17:13 -07:00
Jonathon Canada 5481491160 [docs] Added instructions for license.pem (#3504)
* Added instructions for license.pem
Co-authored-by: Ben Arent <ben@gravitational.com>
2020-03-31 10:02:39 -07:00
Gus Luxton 3245a65687 Also set TELEPORT_PROXY_SERVER_LB for tunnel configs 2020-03-30 17:27:28 -07:00
Gus Luxton 7880e67ea3 Reflect auth server AMI changes in Cloudformation 2020-03-30 17:27:28 -07:00
Gus Luxton b254b5743b Some tidying for Terraform code (#3408) 2020-03-05 18:47:10 -04:00
Gus Luxton 608cd0ba71 Update region list/Teleport version for Terraform (#3405) 2020-03-05 16:26:15 -04:00
Gus Luxton 5b34237ce2 Use HTTPS for backend connections from LB with Terraform and ACM (#3399) 2020-03-03 15:49:24 -04:00
Gus Luxton 84ed04b0c5 Add auth server LB public_addr to Teleport config (#3333) 2020-02-07 06:14:45 -08:00
Gus Luxton 545e52391f Update Terraform code to support Terraform 0.12.x and AWS provider 2.x (#3319) 2020-02-06 11:08:57 -08:00
Gus Luxton 6696cec6f0 Add tunnel listener and target group to Terraform example for use with ACM (#3302) 2020-01-27 13:38:44 -04:00
Ben Arent c00511712e Expand Examples Readme (#3120)
* Update Readme Examples
2019-11-01 16:49:48 -07:00
Gus Luxton ecfe3cf1cb Fix some cfn_nag complaints and add metadata for ignoring rules (#3104) 2019-10-24 17:40:35 -03:00
Gus Luxton 4efef0cab1 Added FIPS AMI build support (#3051) 2019-10-04 15:49:47 -03:00
Gus Luxton ad6bf79f98 Add Dynamo stream configuration to Terraform (#3023)
* Add Dynamo stream configuration
* Update to NEW_IMAGE as per docs
2019-10-03 14:34:58 -03:00
Ben Arent d161538e2e Additional IAM permissions (#3022)
* Update Terraform for IAM Requirements with S3 requirements.
2019-09-25 11:32:37 -07:00
Gus Luxton 152d626a1d Make license optional in Terraform to improve use with OSS (#2978) 2019-09-11 13:38:17 -07:00
Ben Arent b014d85230 Example CloudFormation using AMI & Let's Encrypt (#2887)
- Added a CloudFormation example to the repo.
2019-08-16 16:11:48 -07:00
Gus Luxton f9d194d0f5 Various small fixes for Grafana (#2836)
* Update default version to 4.0.0
* Various fixes for default Grafana password/dashboards, plus adding missing auth server data
2019-07-04 17:14:18 -03:00
Sasha Klizhentas 70297fa5a1 Add actions on streams to examples.
Teleport 4.0 uses streaming and IAM should
be updated accordingly.
2019-06-25 16:39:58 -07:00
Gus Luxton 689bb5b4f8 Change cluster validation method from using CA cert to CA pin hash (#2602)
* Change cluster validation method from using CA cert stored in SSM to CA pin hash stored in SSM - also fixes issues with proxy/node being unable to join the cluster if the cluster name is reused. Split builds into local 'debug' versions and separate production/marketplace versions with different names
2019-03-14 12:11:16 +00:00
Gus Luxton e3f229b443 Update region line 2019-03-07 17:07:57 +00:00
Gus Luxton fa26cd894f Updates to copy license correctly when using Terraform (#2591)
* Fixes for Terraform documentation and license
* Update Makefile and README
* Makefile formatting fixes
* Add build timestamps back into Jenkins
* Add BuildTimestamp into user tags
* Add region to modify-image-attribute command
* Add owner ID into list command
2019-03-07 16:05:07 +00:00
Gus Luxton 1265d4cf63 Single AMI changes for Amazon Marketplace (#2486)
* Add single AMI build/setup
* Add ACM support to Terraform and Letsencrypt support to single AMI
* Finish Letsencrypt support for Single AMI, also add ACM to Single AMI and tidy up Terraform versioning
* Fix Letsencrypt cert acquistion, reduce startup timers from 5 minutes to 3 minutes, tweaks for ACM/non-ACM in Terraform
* Remove AWS-based license from Enterprise AMI to convert to BYOL
* Tidy up - move Cloudformation into a separate subdirectory and remove old Terraform code
* Updated TIG stack to latest versions and tested
* Tidy up CloudFormation builds and improve instructions
* Fix VPC variable name
2019-01-29 18:26:32 +00:00
Sasha Klizhentas f40df845db Events and GRPC API
This commit introduces several key changes to
Teleport backend and API infrastructure
in order to achieve scalability improvements
on 10K+ node deployments.

Events and plain keyspace
--------------------------

New backend interface supports events,
pagination and range queries
and moves away from buckets to
plain keyspace, what better aligns
with DynamoDB and Etcd featuring similar
interfaces.

All backend implementations are
exposing Events API, allowing
multiple subscribers to consume the same
event stream and avoid polling database.

Replacing BoltDB, Dir with SQLite
-------------------------------

BoltDB backend does not support
having two processes access the database at the
same time. This prevented Teleport
using BoltDB backend to be live reloaded.

SQLite supports reads/writes by multiple
processes and makes Dir backend obsolete
as SQLite is more efficient on larger collections,
supports transactions and can detect data
corruption.

Teleport automatically migrates data from
Bolt and Dir backends into SQLite.

GRPC API and protobuf resources
-------------------------------

GRPC API has been introduced for
the auth server. The auth server now serves both GRPC
and JSON-HTTP API on the same TLS socket and uses
the same client certificate authentication.

All future API methods should use GRPC and HTTP-JSON
API is considered obsolete.

In addition to that some resources like
Server and CertificateAuthority are now
generated from protobuf service specifications in
a way that is fully backward compatible with
original JSON spec and schema, so the same resource
can be encoded and decoded from JSON, YAML
and protobuf.

All models should be refactored
into new proto specification over time.

Streaming presence service
--------------------------

In order to cut bandwidth, nodes
are sending full updates only when changes
to labels or spec have occured, otherwise
new light-weight GRPC keep alive updates are sent
over to the presence service, reducing
bandwidth usage on multi-node deployments.

In addition to that nodes are no longer polling
auth server for certificate authority rotation
updates, instead they subscribe to event updates
to detect updates as soon as they happen.

This is a new API, so the errors are inevitable,
that's why polling is still done, but
on a way slower rate.
2018-12-10 17:20:24 -08:00
cove 3a2a0c6768 test state before getting public IP (#2336) 2018-12-05 15:23:56 +00:00
Abraham Ingersoll 26cbf51452 Update certbot depepdency, incl requests lib
details within https://github.com/aws/aws-cli/issues/3678, closes #2339
2018-11-15 12:12:01 -08: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
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
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