Commit graph

507 commits

Author SHA1 Message Date
joerger 836a488464 Disable make target update-api-module-path. 2022-01-07 02:15:11 -07:00
Zac Bergquist d0eb86191d Remove vendor
- Remove the vendor directory
- Update bot to stop accounting for vendor
- Update linter config
- Remove update-vendor make target
2022-01-07 02:15:11 -07:00
Jakub Nyckowski bf204e7194
Disable RDP client on ARM 32 bit (#9667)
Disable RDP client on ARM to remove libatomic dependency on Linux.
2022-01-06 19:35:46 +00:00
Trent Clarke 4ba0248769
Restrores CI lint for non-go files (#9663)
Linting for non-go files was accidentally dropped in the transition to
GCB (sorry!). This patch restores linting for non-go files and fixes
any lint failures that have crept in during the interim.
2022-01-06 22:20:56 +11:00
Trent Clarke ea176c2b3c
Attempts to make CI integration test logs more useful (#9626)
Actually tracking down the cause of a failure in the integration tests can 
be hard:

* It's hard to get an overall summary of what failed
* The tests sometimes emit no output before timing out, meaning any 
  diagnostic info is lost
* The emitted logs are too voluminous for a human to parse
* The emitted logs can present information out of order
* It's often hard to tell where the output from one test ends 
  and the next one begins

This patch attempts to address these concerns without attempting to rewrite 
any of the underlying teleport logging.

 * It improves the render-tests script to (optionally) report progress per-
   test, rather than on a per-package basis. My working hypothesis on the
   tests that time out with no output is that go test ./integration is
   waiting for the entire set of integration tests tests to be complete
   before reporting success or failure. Reporting on a per-test cycle gives
   faster feedback and means that any timed-out builds should give at least
   some idea of where they are stuck.

 * Adds the render-tests filter to the integration and integration-root make
   targets. This will show an overall summary of test results, as well as
    - Discarding log output from passing tests to increase signal-to-noise 
      ratio, and
    - Strongly delimiting the output from each failed test, making failures 
      easier to find.

 * Removes the notion of a failure-only logger in favour of post-processing
   the log events with render-tests. The failure-only logger catches log
   output from the tests and only forwards it to the console if the test 
   fails. Unfortunately, not all log output is guaranteed to pass through
   this logger (some teleport packages do not honour the configured logger,
   and reports from the go race detector certainly don't), meaning some 
   output is presented at the time it happens, and other output is batched
   and displayed at the end of the test. This makes working out what 
   happened where harder than it need be.

In addition, this patch also promotes the render-tests script into a fully-
fledged program, with appropriate makefile targets, make clean support, etc. 
It is now also more robust in the face on non-JSON output from go test 
(which happens if a package fails to compile).
2022-01-05 10:42:07 +11:00
Edoardo Spadolini d027173547
Clean up make grpc and .pb.go generation (#9432)
* Ensure that slice.pb.go is generated by `make grpc`

* Clean up `make grpc`

* Disable the test target rules in Makefile when running inside the devbox
2021-12-16 22:20:53 +00:00
Joel 7951de5728
Split dev tools into a seperate docker container (#9410) 2021-12-15 20:11:52 +00:00
Zac Bergquist e2a0225c7c
Fix make grpc (#9252)
- Ensure that the protoc include directory is readable by all users
- Switch back to the root user by default

Either of these changes would have fixed the issue on their own,
but I decided to include both as GRPC should be readable by non-root
users, and I wanted to preserve the original behavior of running
as root unless the $(NOROOT) flags are specified.

Additionally: clarify comments on the make targets, which are
confusingly named, and stop installing goimports since it seems
it was never used.
2021-12-07 07:46:08 -08:00
Trent Clarke cce6db2e5f
Google CloudBuild support (#9090)
Part of this change is implementing a "no secrets" policy for CI. Given that

    we have to support CI for arbitrary external contributors, and
    it is easy to craft a malicious PR that exfiltrates secrets during a CI build

any test that runs under CI must be able to do so without any injected secrets.

This means that several of the test we currently run under Drone will not be run on GCB, at least as part of the regular CI. The plan is to create a separate task that periodically runs tests that require external credentials (e.g. Kube tests, various backend data stores, etc.) in a more secure way and report failures asynchronously. And while these tests will not run under CI, the should still be built under CI so that required changes are caught during review.
2021-11-30 12:12:16 +11:00
Joel 074dbe7f5d
Fix the buildbox (again) (#8892)
* remove toolchain

* don't force env

* Revert "don't force env"

This reverts commit 1e216365f3.

* linter fix and update bindings

* spec toolchain version

* resolve perms
2021-11-08 14:54:07 -07:00
Joel a833907647
Rust & Desktop Access fixes (#8822)
* update deps in manifest and lockfile

* fixes and updates to docker and profiles

* lint rust

* fix typo

* resolve clippy lints

* fix typo

* mark risk functions unsafe

* fmt + clean up the last lints#

* verify lockfile up to date

* disable lto since it doesn't work with two rust libs

* merge lock check and lint

* Add missing license header to Rust files

And update Makefile to ensure they are checked

Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2021-11-05 12:35:20 -07:00
Zac Bergquist 2d34ab4402 Update mac builds
Download Rust and Go per-build to ensure that the right version is used
and that builds do not step on each other.

Also rungs cbindgen in quiet mode to suppress the annoying output it
spews for non-public symbols.
2021-10-29 16:55:53 -06:00
Brian Joerger 20da22ca35
API release automation with go script (#8484) 2021-10-28 10:15:47 -07:00
Trent Clarke 5463c799ea
Fix race condition in PipeNetCon (#8643)
The race condition detector is being tripped by a concurrent `Write` and
`Close` in the `PipeNetCon` in several integration tests. This is a naive
fix to serialize the write and close operations to resolve the race
condition.

The affected tests were also not handling asynchronous error reporting
correctly (i.e. it's not legal to call `require.XYZ()` from a goroutine
other than the one executing the test function.). This patch introduces
some plumbing to marshal asynchronous errors back into the main test
routine before failing the test.
2021-10-28 09:38:51 +11:00
Zac Bergquist 4685e6ba1b Ensure that Rust libraries are cleaned 2021-10-27 14:36:33 -06:00
Zac Bergquist edf9b927f4 Add Rust to buildbox
- Ensure Rust is installed in the buildbox image
- Install Rust toolchains for each arch we support
- Use openssl's vendor feature to ensure we always link a static lib
- Automatically include RDP client if Rust is detected
2021-10-27 10:51:43 -06:00
Trent Clarke eca9603376
Include package-level failures in formatted test output (#8698)
In some cases, it's possible for a package to be marked as a test
failure even if no tests inside it have failed. The motivating example
for this change is a timeout: a test overshooting the allotted timeout
is considered by go test to be a package-level failure, even if no
tests inside the package are considered failures.

This led to cases where the user would see an "All tests passed"
message from the go test filter, but still mysteriously fail the make
step.

To address this, the test renderer now:

  * treats package-level pass/fail/skip events as first-class citizens
    and includes them in its event count,
  * tracks the cached test output at both a package and individual test
    level, and
  * displays the whole package output if a package is marked as failed,
    but only if there is no obvious failed test top account for the
    package-level failure.

This patch also removes the json files created by the unit tests, as
they are not yet needed for anything.
2021-10-27 11:14:27 +11:00
Zac Bergquist 0bae0d255f Cleanup lint targets
- Don't assume an explicit $GOPATH is set
- Remove golint from linters - it's been deprecated for over a year
  and golangci-lint prints a warning instead of running it.
2021-10-19 09:21:55 -06:00
Trent Clarke cc86d31d6d
Make unit tests write JSON test logs (#8351)
This change makes the Teleport unit tests write a JSON log of all the tests that we run `make test-go`. It also includes a parsing script that will render the JSON log into a human-readable format during the test run, so that the working developer can see what the tests are doing without having to wade through JSON.

The log output is somewhat of a cross between the standard go test output, with pytest-style summaries at the end. 

I have limited the realtime report to package-level results (a package-level skip result means no tests file were found). It's trivial to output each test as it comes in, if that works better (but at ~1500 tests, it's a lot).

This is another step towards getting better visibility on our test suite. The idea is that we will eventually collect these test reports as build artifacts for further analysis.
2021-10-15 12:25:24 +11:00
Andrew Lytvynov 726e70de7d TDP: add mouse scroll support 2021-10-07 14:33:34 -07:00
Russell Jones dafcf377a0 Release 8.0.0-alpha.1. 2021-10-05 15:28:42 -07:00
Andrew Lytvynov 813dff20c1
PIV authentication for RDP (#8408)
* PIV authentication for RDP

This uncomfortably large change fully implements smartcard PIV
authentication for RDP clients using the Teleport CA:
- PIV applet implementation in emulated RDP smartcard
- generating Windows-compatible certificates using Teleport CA with a
  dedicated RPC
- generating dummy CRLs for Teleport CA and publishing it via LDAP

The CRLs are required by Windows for any smartcard login certificate, we
can't avoid that. But we can avoid making it public: the CRL can live in
ActiveDirectory instead of a public endpoint of a Teleport service.
Here, we use LDAP to publish the CRL on startup, valid for a year.

There are a few unhandled cases in the current implementation:
- LDAP server certificate is not validated when upgrading to TLS
- multiple active CAs (with HSMs) are not supported, only one CRL is
  published
- CA rotation is not supported, CRL is not re-published on rotation

All of the above issues will be handled in future PRs as this one is
already too large.

* Address review feedback

* Fix linter errors
2021-10-01 15:01:17 -07:00
Russell Jones b58ad48464 Reduce the number of tests that run in parallel. 2021-09-27 17:59:31 -07:00
Andrej Tokarčík 3585bf9034 Bump version to 8.0.0-dev 2021-09-23 21:11:03 +02:00
Tim Buckley c821ec5f2f
Sign tsh.exe on tag builds (#7897)
* Sign tsh.exe on tag builds

This adds a Makefile step to sign tsh.exe when the
`$WINDOWS_SIGNING_CERTIFICATE` env var is set to a base64-encoded
pkcs12 code signing certificate. The certificate must not be password
protected.

This includes a sample cert (`cert-dummy.pfx`) for CI pipeline
testing. It should be removed in any eventual PR, along with the
other modifications to the drone pipeline. The cert is imported into
the environment in the `Makefile` for testing purposes; in practice
it will be imported from a secure secret store (drone secrets, etc).

* Improve Windows code signing

 - Split signing into a separate step; `release-windows-unsigned` now
   performs the build, `release-windows` signs the binary.
 - Require `release-windows` to successfully generate a signed
   binary.
 - Clearly mark unsigned binaries and archives as such.
 - Guard against stdout secret leakage in Makefiles.
 - Move temporary cert data from Makefile into dronegen to test
   full pipeline.

* Use an invalid cert string for testing purposes.

* Pass certs to the build process via a statically named file

Signed Windows builds now depend on a `.gitignore`'d
`windows-signing-cert.pfx` at the root of the source directory. This
should ease testing and help avoid accidental secret leakage.

* Use production secret

* Remove windows-signing-cert.pfx before continuing to the next step

Additionally, fix variable reference as the bracket syntax does not
seem to play nice with Drone.

* Update .gitignore

Co-authored-by: Andrew Lytvynov <andrew@goteleport.com>

Co-authored-by: Andrew Lytvynov <andrew@goteleport.com>
2021-09-02 16:34:57 -06:00
Alan Parra dba49bfad6
Lint and fix missing license headers (#8075)
Introduce new make targets to check and add license headers to files
("make lint-license" and "make fix-license"). License checking is now a part of
"make lint" as well.

Initial attempts used goheader, but it caused "make lint-go" to become about 9x
slower (if not more), plus it only targets go files. Google's addlicense is fast
enough and targets however many file types we want.

Existing files that were missing licenses got the header added, using the
current year as the license date.

* Introduce lint-license and fix-license make targets
* Ignore generated files
* Add license to go files
* Replace irregular licenses with standard copyright/license
* Add license to proto files
* Install addlicense in build.assets Dockerfile
2021-08-30 09:44:09 -07:00
Rui Li 89440dcfcf
Datalog based access tester (#7543)
Created an access tester for troubleshooting access related issues with Teleport RBAC system. This access tester allows admins to answer questions like:

Can user alice SSH into a node node-1 as root?
If not, which role(-s) prevents access?
Which roles allow access to production as login admin?
2021-08-25 14:39:59 -04:00
Forrest Marshall 11dfefcdc5 disable build determinism in centos6 2021-08-23 17:42:09 -07:00
Russell Jones 3d1459a054 Exclude tar flags for non-Linux platforms.
Exclude tar flags for non-Linux platforms as they don't support
reproducible builds at the moment.
2021-08-23 17:42:09 -07:00
Forrest Marshall 9d2851e148 pipefail in make shell 2021-08-23 17:42:09 -07:00
Alan Parra 7c9985db10
Add WebAuthn protocol buffers (#7923)
WebAuthn messages are soon to be plugged into the AuthService gRPC API.

Definitions are based on the WebAuthn specification, current browser
capabilities and, in some part, meant to play nice with duo-labs/webauthn.

References:

* https://www.w3.org/TR/webauthn-2/
* https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer
* https://github.com/duo-labs/webauthn/
2021-08-19 12:28:05 -07:00
Zac Bergquist c718343c47
Fix make update-vendor on macOS (#7910)
We were using switches specific to GNU coreutils for the api symlink.
These aren't supported on macOS with its BSD variants, so use a more
primitive syntax that will work on both platforms.
2021-08-19 12:17:51 -06:00
Russell Jones e901ce4b3f Reduced shared library dependencies.
Reduced Teleport shared library dependencies on libbpf, libelf, libz.

For libbpf, switched to forked version that does not rely on "fmemopen"
which brings in a glibc 2.22 dependency. This allows binaries built on
Ubuntu 18.04 box to run on CentOS 7 as well.

For libelf and libz (which libbpf uses), the build process has been
updated to statically link both of them during the build process.
2021-08-09 19:17:06 -07:00
Brian Joerger 9b8b9d6d0c
rollback - Upgrade api version. (#7751) 2021-07-30 15:34:19 -07:00
Forrest Marshall 51caf1d9cf Improved build determinism. 2021-07-28 17:16:14 -07:00
Brian Joerger c040aca4c1
Upgrade api version. (#7609) 2021-07-28 13:51:21 -07:00
Brian Joerger 01706305f5
Replace make tag with updated make update-tag. (#7627) 2021-07-22 19:31:53 -07:00
Russell Jones b4b25637b5 Updated Makefile to fix FIPS BPF issues.
Updated Makefile to build BPF for amd64/linux FIPS builds.
2021-07-19 16:56:10 -07:00
Eugene Yakubovich 67c0eb3b4c Add restricted session
Adds the ability to block network traffic on SSH sessions.
The deny/allow lists of IPs are specified in teleport.yaml file.
Supports both IPv4 and IPv6 communication.

This feature currently relies on enhanced recording for
cgroup management so that needs to be enabled as well.

-- Design rationale:
This patch uses Linux Security Module (LSM) hooks, specifically
security_socket_connect and security_socket_sendmsg, to control
egress traffic. The LSM provides two advantages over socket filtering
program types.
- It's executed early enough that the task information is available.
  This makes it easy to report PID, COMM, etc.
- It becomes a model for extending restrictions beyond networking.

The set of enforced cgroups is stored in a BPF hash map and the
deny/allow lists are stored in BPF trie maps. An IP address is
first checked against the allow list. If found, it's checked for
an override in the deny list. The policy is default deny. However,
the absence of the NetworkRestrictions API object is allow all.

IPv4 addresses are additionally registered in IPv6 trie (as mapped)
to account for dual stacks. However it is unclear if this is sufficient
as 4-to-6 transition methods utilize a multitude of translation and
tunneling methods.
2021-07-16 16:49:04 -07:00
Russell Jones 29c390f1fc Release 7.0.0-beta.1. 2021-07-08 14:56:08 -07:00
Brian Joerger a3aab985cd
API version generated file (#7157) 2021-06-18 13:52:55 -05:00
Andrew Lytvynov 53094d87d2 makefile: explicitly set SHELL to /bin/bash
When `SHELL` is not set, `make` defaults to `/bin/sh`.

On systems where `/bin/sh` is an alias for `/bin/bash`, everything works
as expected.

On systems where `/bin/sh` is actually the original Bourne Shell, some
bash-isms don't work. For example: `if [[ condition ]]` results in
`/bin/sh: 1: [[: not found`
2021-06-04 00:12:27 +00:00
Gus Luxton 080decb417 bpf: Disable failing builds
Updates #7110
2021-06-02 15:14:46 -07:00
Gus Luxton 1254477014
rpm: Don't include build-id artifacts in packages (#7080)
Fixes #7040
2021-05-31 09:52:30 -07:00
Eugene Yakubovich 585c33232b Move from BCC to libbpf with CO-RE. 2021-05-28 15:25:23 -07:00
Gus Luxton 1743ea7210
docker: Override GOMODCACHE to always use a writable location (#6899) 2021-05-19 22:14:12 -07:00
Andrew Lytvynov d3e1be2064 make update-vendor: run 'go mod tidy' in api/ 2021-05-18 21:56:02 +00:00
Gus Luxton 8767fb81f5
helm: Fixes for Linux/Mac interoperability (#6891) 2021-05-17 12:01:16 -07:00
Gus Luxton 925801440a
helm: Adds 'aws', 'gcp', 'standalone' and ‘custom’ modes to teleport-cluster chart (#6344) 2021-05-17 11:35:11 -03:00
Lisa Kim fe55ef7201
Remove webassets.zip file before builds in Makefile (#6595) 2021-05-04 11:13:47 -07:00
Gus Luxton 52a29bb63f
helm: Improve linting and add log level override (#6330) 2021-04-08 08:02:29 -07:00
Gus Luxton 4c9ec23822
Revert "darwin fips builds (#5866)" (#6265)
* Revert "darwin fips builds (#5866)"

This reverts commit 32ac67db06.

* Remove GO_BINARY references

* Re-add dronegen changes for commands/image

* make dronegen

* Update e ref

* Re-add package signing/notarization for full MacOS builds
2021-04-01 10:12:53 -07:00
Gus Luxton a956a0c279
Ensure webassets are present when running 'make full' on a fresh clone (#6231) 2021-03-31 13:11:04 -07:00
Gus Luxton 854da48990
Add lint-api target and fix lint errors (#6169) 2021-03-30 17:02:04 -07:00
a-palchikov 32ac67db06
darwin fips builds (#5866)
* Switch to go1.16. Use embed package to embed webassets instead of ad-hoc attaching to binary
* Fix pipeline duplicate step error
* Resolve duplicate pipeline step name error. Explicitly define platform for 'exec' pipelines. Remove the uid/gid environment from 'exec' pipelines as redundant.
* Set proper dependencies when building darwin package fips pipelines. Use enterprise build directory for tsh
* Address review comments
2021-03-29 19:20:01 +02:00
a-palchikov d301da5a39
Embed webassets natively into teleport instead of attaching to the binary (#5935)
Switch to go1.16. Use embed package to embed webassets instead of ad-hoc attaching to binary
2021-03-26 17:37:52 -07:00
Gus Luxton 026d3419c2
dronegen: drone config generator (#6071) 2021-03-22 18:32:45 -07:00
Gus Luxton 854d5fc80b
Move linter config to .golangci.yml and remove surplus Makefile lines (#6052) 2021-03-19 09:26:56 -07:00
Gus Luxton 1f93c23d7d
Add unit tests to teleport-generate-config AMI script (#5682) 2021-03-16 09:58:58 -07:00
Gus Luxton 763f0cf35a
Update VERSION on master to v7.0.0-dev (#5931) 2021-03-11 17:29:48 -08:00
Andrew Lytvynov eee051c4a6
grpc: use the regular buildbox and bump gogoproto version (#5879)
An extra dockerfile for gRPC generation is extra maintenance burden. It
was also using a really old base image that has a ton of known vulns.

Also, update GOGO_PROTO_TAG to match the version we have vendored via
go.mod.
2021-03-10 11:16:08 -08:00
Andrew Lytvynov 8ebd304aad
Add 'make update-webassets' script (#5853)
* Add 'make update-webassets' script

Copying over from `teleport/ops` to make it easier to discover.
Also changed the script to clone the repos into a temp directory and
clean it up later. Without this, a nested `teleport` checkout would
cause all kinds of problems.

* Update Makefile

Co-authored-by: Gus Luxton <gus@gravitational.com>

Co-authored-by: Gus Luxton <gus@gravitational.com>
2021-03-10 10:53:17 -08:00
Gus Luxton f962a04cb9
Run next linter on docs PRs (#5908) 2021-03-10 14:01:48 -04:00
Gus Luxton 85a31ce918
Add Kubernetes listener to HA Terraform (#5633) 2021-02-23 20:45:28 -04:00
Brian Joerger 427bafe7b2
API Go module (#5449) 2021-02-22 16:20:43 -08:00
Acrimon 324ccda21f Implemented utmp/wtmp support. 2021-02-15 20:58:30 +01:00
Gus Luxton 8ec5b6c22d
Build ARM/ARM64 binaries in Docker (#5510) 2021-02-11 11:14:27 -04:00
Gus Luxton e7efa6738a
Add linting for Helm charts with example values (#5495) 2021-02-08 17:08:05 -04:00
Andrew Lytvynov 075c3fa2bb
Fix windows cross-compilation with CGO (#5485)
Install `mingw-w64` cross-compiler toolchain in the buildbox and pass
magic flags to `go build` to use it.
2021-02-04 13:30:32 -08:00
Andrew Lytvynov 4b5bb54bf4
u2f: restructure MFA backend to support multiple devices (#5404)
Each user can now have multiple devices. This commit only changes the
backend structure to support it, the client and API haven't been updated
yet.

Also added a migration for existing MFA data on auth server startup.
2021-02-01 17:30:39 -08:00
Roman Tkachenko 722cdeaadf
Release 6.0.0-alpha.2 (#5389) 2021-01-22 12:15:13 -08:00
Roman Tkachenko 7277e23df9
Release 6.0.0-alpha.1 (#5312) 2021-01-15 11:55:55 -08:00
Brian Joerger 64f80f1d1a
Move proto files and other select files from lib/events package to api/types/events package. (#5251) 2021-01-14 16:13:17 -08:00
Brian Joerger ab3d1a11da
Move /lib/wrappers to /api/types/wrappers. (#5286) 2021-01-14 14:58:44 -08:00
Brian Joerger 3c3ce160d9
Move API types and functionality from lib/services to api/types. (#5143) 2021-01-11 10:02:34 -08:00
Gus Luxton bdbe10ed1d
Update Makefile version on master branch (#5220) 2021-01-06 10:46:06 -04:00
Forrest Marshall fff0addc35 fix grpc target 2020-12-31 09:57:05 -08:00
joerger f020f75078 Refactor API client into a separate package. 2020-12-29 10:06:37 -08:00
a-palchikov 7c87576a8b
flaky tests: consistent logging (#4849)
* Update logrus package to fix data races
* Introduce a logger that uses the test context to log the messages so they are output if a test fails for improved trouble-shooting.
* Revert introduction of test logger - simply leave logger configuration at debug level outputting to stderr during tests.
* Run integration test for e as well
* Use make with a cap and append to only copy the relevant roles.
* Address review comments
* Update integration test suite to use test-local logger that would only output logs iff a specific test has failed - no logs from other test cases will be output.
* Revert changes to InitLoggerForTests API
* Create a new logger instance when applying defaults or merging with file service configuration
* Introduce a local logger interface to be able to test file configuration merge.
* Fix kube integration tests w.r.t log
* Move goroutine profile dump into a separate func to handle parameters consistently for all invocations
2020-12-07 15:35:15 +01:00
Gus Luxton 626624d46e
Only test internal docs links with milv via Makefile (#4830) 2020-11-19 20:21:05 -04:00
Gus Luxton 2795df3f6a
Various AMI fixes (#4744) 2020-11-17 10:49:56 -04:00
Gus Luxton abe2b607d5
Add support for RPM signing via Drone (#4634) 2020-10-31 15:27:00 -03:00
Andrew Lytvynov bd974ef09a
golint: final batch of fixes (#4589)
And enable `golint` during `make lint`.
2020-10-22 00:13:09 +00:00
Gus Luxton 4247920dfd
Update master version and add missing CHANGELOG entries (#4484) 2020-10-13 14:30:07 -03:00
Gus Luxton 434775692a
Revert "Fix shellcheck quotation warnings" (#4477)
This reverts commit f06e9204d1.
2020-10-07 14:00:02 -03:00
Sasha Klizhentas c1b1c6a154 Improves logging and error handling in filesessions.
Adds chaos tests for async file upload.

Fixes playback for legacy sessions stored unpacked on disk
2020-10-06 13:41:17 -07:00
Andrew Lytvynov f06e9204d1 Fix shellcheck quotation warnings
And enable all shellcheck checks in CI.
2020-10-06 17:32:38 +00:00
Gus Luxton 20d3dd3b68
Update Teleport Helm/Terraform/CloudFormation to 4.3.7 (#4453) 2020-10-05 18:28:40 -03:00
Gus Luxton d77d53ec2c
Release 4.4.0-alpha.1 2020-09-30 18:00:11 -03:00
Andrew Lytvynov a3d3f2aa1d k8s: enable SPDY pings on in/outbound connections
This helps with ELB and similar L5 load balancers that don't respect
TCP-level keep-alives. ELB for example kills connections after 60s of no
application traffic.

With this PR, you can leave a `kubectl exec` session open indefinitely
without any activity.
2020-09-29 21:04:02 +00:00
Andrew Lytvynov 8d7a217089 Run shellcheck during "make lint"
Shellcheck is a linter for shell scripts. Since we have quite a few of
those for release packaging and examples, we'll benefit from an extra
set of (robot) eyes.

Note: I disabled https://github.com/koalaman/shellcheck/wiki/Sc2086 to
make this PR smaller. That specific check is for the most frequent
mistake in our scripts - not quoting env var expansions. I'll do a
separate PR cleaning those up.

`build.assets/pkg` is no longer used and was removed.
2020-09-29 20:40:16 +00:00
Sasha Klizhentas d160507430 Session streaming
This commit introduces GRPC API for streaming sessions.

It adds structured events and sync streaming
that avoids storing events on disk.

You can find design in rfd/0002-streaming.md RFD.
2020-09-28 23:08:56 -07:00
Gus Luxton 8d1903df9d
Split Docker/AMI jobs into separate build and publish steps (#4313) 2020-09-21 14:34:50 -03:00
Ev Kontsevoy 7412d310f0
SEO changes in Documentation (#4215)
* SEO changes in Documentation
* All documentation pages have dedicated <title> tag
* All documentation pages have dedicated <meta description> tag
* Fixed a few broken links
* Fixed missing <H1> tags
* Renamed some pages to make SEO-friendly URLs
* Found and updated all links to the renamed pages
* Compress PNGs

Co-authored-by: Ben Arent <ben@gravitational.com>
2020-08-17 09:42:18 -07:00
Gus Luxton c13fb1439a
Add jobs for Drone MacOS/ARM exec runners (#4093) 2020-07-24 17:46:20 -03:00
Gus Luxton b934d3b971
Add Docker builds to Drone (#4029) 2020-07-20 17:18:00 -03:00
Andrew Lytvynov 16031edaff Remove godep references and add docs for modules 2020-07-17 16:09:23 +00:00
Gus Luxton ca59ead882
Add RPM/DEB/i386 releases to Drone pipeline (#4006) 2020-07-16 21:43:18 -03:00
Gus Luxton 048da3cce1
Update master branch version tag (#3880)
* Update master branch version tag to master

* Use 4.4.0-dev as version
2020-06-25 15:42:48 -03:00
Andrew Lytvynov 6746213886 Preserve SSH signing alg for existing CAs
Store the signing algorithm along the CA private key. When reading old
CAs that don't have it set, default to UNKNOWN proto enum which
corresponds to the old SHA1-based signing alg.

The only time you get a SHA2 signature is when creating a fresh cluster
and generating a new CA. This can be disabled in the config.
2020-06-24 21:25:33 +00:00