Commit graph

22 commits

Author SHA1 Message Date
Tiago Silva 32d8d5f489
Restore Kubernetes Integration tests (#25624)
* Restore Kubernetes Integration tests

This PR re-enables the Kubernetes integrations tests using a KinD
(Kubernetes in Docker) cluster.

New steps have been introduced to GitHub's Integrations (Non-Root)
Action that configure the KinD cluster using
[`helm/kind-action`](https://github.com/helm/kind-action) and do some
network configurations allowing the container where tests run to connect
to the KinD control plane.

This PR also fixes some of the tests and fixes a bug that affected
joining operations when the target service was a legacy kubernetes
proxy. Some improvements will be introduced in future patches to improve
the logic and reduce the time required for the tests to run.

Fixes #25539

* fix data race in spdystream dep

* address feedback

* remove docker installation

* fix test
2023-05-12 16:38:16 +00:00
Isaiah Becker-Mayer cab45d7712
deletes unused parsing code for defunct trusted_clusters (#20109) 2023-01-14 00:28:30 +00:00
Brian Joerger 488af75797
Client store generalization (#19420)
- Add a generalized client store made up of a key, profile, and trusted certs store. Each sub store can support different backends (~/.tsh, identity_file, in-memory). 
- Replace custom identity file handling with in-memory client store.
- Fix issues with trusted certs handling.
2023-01-06 01:34:04 +00:00
Marek Smoliński fbd5a2aafd
Fix tsh tctl do not load all CAS (#9357) 2022-01-31 13:35:15 +01:00
Gus Luxton ee70d8a940
integration: Add teletest namespace and instructions for Kubernetes tests (#7447) 2021-07-09 15:09:23 -07:00
Alexey Kontsevoy eca06ae669
Fix unit-tests by updating ceritificates in fixtures (#6012) 2021-03-16 07:57:38 -07:00
Gus Luxton 822470580a Switch role/rolebinding namespace from kube-system to teletest 2020-10-08 20:59:00 +00:00
Andrew Lytvynov c0335d4f6f Reduce the necessary k8s permissions for integration tests
Previously, we needed:
- create on namespaces
- impersonate on all users/groups/service accounts
- list pods in kube-system namespace (via teleport-ci-test-group)
- exec/portforward on kube-dns pod in kube-system namespace (via teleport-ci-test-group)

Now, we need:
- create on namespaces
- create on pods in namespace teletest
- impersonate on all users/groups
- get/exec/portforward on pod test-pod in namespace teletest (via teleport-ci-test-group)

Unfortunately, `resourceNames` in RBAC doesn't work with `create` verbs,
so we can't scope down impersonation to just the right users/groups.
2020-10-08 20:59:00 +00:00
Gus Luxton 4edf2355ef
Run k8s integration tests in Drone (#4437) 2020-10-07 18:01:33 -03:00
Forrest Marshall cda5a39d28 Add TLS certs to user identity files
- Updates the identity files exported by `tctl auth sign` to include the
user's TLS certificate, as well as the set of available TLS root CA
certs.

- Adds a new GRPC-based auth server method, `GenerateUserCerts`, which
exports both SSH and TLS based certs.
2019-07-03 12:54:03 -07:00
Russell Jones 0222c0f06c Process ENV_PATH and ENV_SUPATH from login.defs. 2017-06-14 10:34:45 -07:00
Ev Kontsevoy d046eaee20 Merge branch 'master' into ev/i 2017-06-11 21:54:41 -07:00
Ev Kontsevoy 37319d6b41 Implemented identity loading
First part of addressing #1033 is ability to load credentials from the
credentials file(s).

This commit adds -i flag processing, i.e. a certificate can be fed via a
cert.file and used to login.
2017-06-11 13:37:42 -07:00
Ev Kontsevoy eee8bac224 Added filesystem backend configuration parsing
+initialization
2017-01-15 16:28:18 -08:00
Ev Kontsevoy d29a88f524 Web assets are packed into teleport binary
Functionality:

`teleport` binary now serves web assets from its own binary file.
Unless `DEBUG` environment variable is set to "1" or "true", in
this case it will look for ../web/dist (as located in github repo)
which can be used for development.

Design:

To avoid accumulating 3rd party dependencies with a ton of extra
features and licenses, this implementation uses minimalistic
implementation of http.FileSystem interface on top of the embedded ZIP
archive.

1. The assets are zipped into assets.zip during build process
2. assets.zip gets appended to the end of `teleport` binary
3. The resulting file is converted into a self-extracting ZIP
4. Teleport opens itself using the built-in zip unarchiver, and loads
   the assets on demand.

Notes:

1. LOC is tiny (dozens)
2. RAM consumption is CONSTANT regardless of the ZIP size, about 500Kb
   increase vs load-from-file, and most of it is linking zip archive
   code from the standard library. Tested with a 20MB ZIP archive.
2016-10-30 20:40:46 -07:00
Ev Kontsevoy cde3086f0d Fixes #494
This commit is re-applying a fix from August 8:
bedc5d59fd723e50675bb2eaefc0494079e66ea0

Somehow it got lost and did not ever get merged into master.
2016-09-14 14:26:59 -07:00
Ev Kontsevoy 18021f5366 Fixed tests 2016-06-12 15:11:56 -07:00
Ev Kontsevoy 196400fb18 New format for "trusted_clusters" configuration 2016-06-10 23:02:42 -07:00
Ev Kontsevoy 6deab48ab6 Cluster certificate import/export work...
1. tctl auth export now dumps both user&host keys if --type key is missing
2. created fixtures for testing key imports: they're in
   fixtures/trusted_clusters
3. configuration parser reads "trusted_clusters" files expecting the
   output of tctl auth export
2016-06-07 18:57:54 -07:00
Ev Kontsevoy cddaf6e5c8 Some minor improvements
- `tctl auth ls` lists all CAs by default
- Documented `authorize_ip` better
2016-05-31 18:59:07 -07:00
klizhentas 091ccb9894 add TLS client authentication for ETCD 2016-03-16 18:30:00 -07:00
Alexander Klizhentas 0c425d32d5 Initial working prototype 2015-03-14 14:35:43 -07:00