Commit Graph
219 Commits
Author SHA1 Message Date
Yael Jay PerezandHugo Shaka 54951cfc26 Allow for resource limits and requests for pre-deployment jobs (#23077)
* Update predeploy_job.yaml

Adding the ability to allow for requests and limits to be added to the predeploy_job like already done for deployments.

* Update predeploy_job.yaml

Add the ability for the proxy predeploy_job to have limits and requests like the deployment. Using same values from Values file.

* Update predeploy_test.yaml

Adding tests for resource limits on predeploy job for auth and proxy.

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Update examples/chart/teleport-cluster/tests/predeploy_test.yaml

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

---------

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>
2023-03-15 17:08:07 +00:00
Vitor EnesandEdoardo Spadolini 6a1d1aedc3 Emit new AgentMetadataEvent (#22068)
* Emit new `AgentMetadataEvent`

Part of https://github.com/gravitational/cloud/issues/3550.

This commits adds a new `UpstreamInventoryAgentMetadata` that is sent
from a Teleport agent to an auth server.
Once received, it is transformed into an `AgentMetadataEvent` and sent
to PreHog.

Most `UpstreamInventoryAgentMetadata` fields are intentionally kept as
empty in this PR. Follow up PRs will be opened with the mechanisms
required to fill them (as described in #21337).

* server_id -> host_id

* compute OS and host architecture

* Compute OS version and container runtime

* Close stream if agent receives an agent metadata message

* cmd -> exec ; file -> read

* implement fetchOSVersion for linux

* Remove unused import

* Add note about `agentMetadataCh`

* Allow commands with args

* Remove parseFun abstraction

* fetch glibc version

* fetch container orchestrator

* Fix lint

* Fix TODO

* Add note about glibc version

* cmd -> command

* fetch cloud environment

* fetch install methods

* GLibCVersion -> GlibcVersion

* Use `http.NewRequestWithContext`

* Add missing comment

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

* GLibCVersion -> GlibcVersion

* Fix lint

* Fix helm unit tests

* Add missing comments

* 5 second timeout on http requests

* Spawn gorountine that fetches metadata on each new stream

* Use `defaults.HTTPClient()`

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

* Add missing import

* Handle error

* Revert "Spawn gorountine that fetches metadata on each new stream"

This reverts commit fe4f2790be.

* Send agent metadata to auth server once per stream

* Improve note about agentMetadataDone

* Don't process command output & file content on the agent

Since agents cannot be trusted, regex validation and sanitization should
happen in PreHog anyways. So this commit removes such logic in favor of
moving it to PreHog.

* Fix lint

* Trim space

* Move handling of `AgentMetadataEvent` to `handleControlStream`

* Use cached hello message

* Move metadata files to lib/inventory/metadata

* make sending of agent metadata more self contained

* Minimize diff

* Send all system roles to PreHog

* Remove unused import

* Add parsing of command output / file content back

* Usage reporter refactor

* Usage reporter refactor

* Add missing handling of inventory agent metadata msg

* Fix ICS usage reporter

* Improve comments

* Add cached `metadata.Get*` methods

* Use systemctl status instead of is-active

* Add `Metadata` struct

* return pointer in `FetchMetadata`

* Pass context to `GetMetadata`

* metadataFetchConfig -> fetchConfig

* GetMetadata -> Get

* Add note about `Get` result

* Ensure install methods are non-nil

* Exit `metadata.Get` if context is closed

* Replace sync.Once with atomic.Bool.Swap

* Initialize channel

* Fix lint

* Fix lint

* Make `metadata.Get` return an error instead of bool

* Allow multiple true/false values for env vars

* Use `strings.Cut`

* Use /etc/os-release ID instead of NAME

* Improve `autoEmitMetadata`

* Use `gnu_get_libc_version`

* Ubuntu -> ubuntu

* Use GOARCH

* gofmt

* Move import C up

* Variables may include quotes

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

* Default values for ID and VERSION_ID

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

* Blank lines are permitted

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>

* Anonymize host id

---------

Co-authored-by: Edoardo Spadolini <edoardo.spadolini@goteleport.com>
2023-03-10 12:45:29 +00:00
Steven Martin d281fd7c8e Examples spell fixes and discord example fix (#22606) 2023-03-03 22:45:08 +00:00
Anthony SomersetandHugo Shaka d6f23feb49 fixes #21970 - remove broken config validation check in scratch mode (#22124)
* fixes #21970 - move from required to a fail check for scratch mode

* fixing typo double proxy reference

* Remove auth predeploy checks

* Remove proxy predeploy checks

---------

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>
2023-02-28 17:10:01 +00:00
Marco André Dinis 8436ea949b Discover: install ent image when cluster is enterprise (#21971)
Update the helm chart for kube-agent.
The image swap logic was already there.

Update the UI to include `enterprise: <isEnterprise>` when installing
the kube-agent.
2023-02-21 19:06:01 +00:00
Peter Nduati 9089e56c66 Extend security context to proxy init container wait-auth-update. (#21969)
* Extend security context to proxy InitContainer.

* Set securityContext for initContainers
2023-02-18 02:08:52 +00:00
Hugo Shaka 14b336d92a helm: fix proxy and auth config referring to the same subdict (#21760) 2023-02-13 21:02:27 +00:00
Tiago Silva 46f1166b86 Reuse auth token when upgrading an Helm chart without token (#20763)
* Reuse auth token when upgrading an Helm chart without token

When upgrading an Helm chat and not providing the auth token because it
was previously set, Helm deleted the secret and Statefulset pods become
stuck because the secret does not exist.

This PR reads the secret value from the previous upgrade/install and
reuses it during the upgrade.

Fixes #20761

* remove secret lookup
2023-02-11 00:13:39 +00:00
Hugo ShakaandGus Luxton cddd09960c helm: allow to set security contexts in teleport-kube-agent (#21076)
* helm: allow to set `initSecurityContext` in `teleport-kube-agent`

* Apply suggestions from code review

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

* fixup! helm: allow to set `initSecurityContext` in `teleport-kube-agent`

---------

Co-authored-by: Gus Luxton <gus@goteleport.com>
2023-02-08 22:28:00 +00:00
Hugo Shaka 03708a8011 helm: disable PSPs on 1.23 and document PSA usage (#21258)
* helm: disbale PSPs on 1.23 and document PSA usage

In 1.25 Kubernetes removes PSP support, this has 2 consequences:
- Helm will break after upgrading if PSPs are deployed
- We cannot set security policies anymore

This commit documents those two behaviours and makes the chart disable
PSPs on 1.23 and higher to ensure a smooth upgrade path.

* helm: Remove stale 'migrate from legacy charts' guide
2023-02-06 15:39:01 +00:00
Hugo Shaka 2b3b9f7bf8 docs: Document teleport-cluster v12 Helm chart (#19881) 2023-02-02 15:37:08 +00:00
Hugo Shaka d3e886ba1d helm: Fix proxy's ProvisionToken on etcd backend (#21034)
Fixes #20960

etcd had a previously unknown TTL limitation (TTL is stored as
nanoseconds in a signed int64, max TTL is ~= 29 years). Creating
very long-lived resources with expiry higher than the max TTL is not
supported and the process crashes on startup as it cannot apply the
token.
2023-01-31 21:14:12 +00:00
Gus Luxton 3ba20b4a2d helm: Rename port from k8s -> kube for consistency between charts (#21017) 2023-01-31 20:41:35 +00:00
Gus Luxton a6747768b2 helm: Expose ports on containers (#20485)
* helm: Expose ports on containers

Some Kubernetes tooling expects to see the ports that a container exposes registered on the individual containers themselves as well as the underlying Service. This change makes it a little easier for users to deploy the teleport-cluster chart behind their own load balancers or using a ClusterIP, by being explicit about exactly which ports are expected to be routed to each container.

* Expose tls port 3080

* Expose port 3080 before others

* Rename https -> tls

* Add 3021 for proxy peering when enterprise is true
2023-01-30 17:23:43 +00:00
Hugo Shaka 210e59c366 helm: fix operator invalid mounts with TLS secret (#20641)
Fixes an issue where the operator sidecar tries to mount the public TLS certificates but the volume is not declared.

```
$ helm install -n teleport teleport-repro /home/shaka/work/teleport/examples/chart/teleport-cluster --set teleportVersionOverride=12.0.0-alpha.1 --set clusterName=teleport.example.com --set tls.existingSecretName=my-tls-secret --set tls.existingCASecretName=my-root-ca --set operator.enabled=true
# [...]
Error: INSTALLATION FAILED: Deployment.apps "teleport-repro-auth" is invalid: spec.template.spec.containers[1].volumeMounts[0].name: Not found: "teleport-tls"
```

The operator does not need those certs to work.
2023-01-25 16:11:31 +00:00
Hugo Shaka b23dcd680a helm: default 2fa to on instead of otp (#20631)
This change adds support for FIDO2/webauthn/hardware tokens by default.
OTP 2fa fill remains functional. This is a major change and should be
part of a major release, even if this should be seamless for most users.

Warning: `webauthn.rp_id` should not change in the cluster life, else
2fa tokens will have to be re-registered.

Users accessing the cluster under a different name than `clusterName`
will have to set rp_id
(`auth.teleportConfig.auth_service.authentication.webauthn.rp_id`) to be
able to register second factors. As we strongly encourage users to have
a resolvable `clusterName` and `publicAddr` support got added recently,
this seems an acceptable edge case.
2023-01-25 13:10:25 +00:00
Hugo Shaka 4aaac53d25 helm: fix potential deadlock during proxy install (#20488) 2023-01-20 18:00:41 +00:00
Roman Tkachenko bf4ad5db62 Update version to 13.0.0-dev (#20372) 2023-01-18 19:01:11 -05:00
Hugo Shaka fb14caf70c helm: add wait initContainer and preStop hooks (#20106)
Part of [RFD-096](https://github.com/gravitational/teleport/pull/18274): managing the major upgrades safely

This commit's main purpose is to block proxies running a new Teleport major version from connecting to auth pods running an old Teleport version.

This commit does 3 things:
- adding initContainers and preStop hooks to the `teleport-cluster` Helm chart (initContainers were designed in RFD 096, preStop was a nice additoin coming from [the wait PR](https://github.com/gravitational/teleport/pull/19277))
- fixing a bug in the `wait` command (the DNS error was not properly unwrapped and not recognized as a DNS error)
- fixing missing override support on some auth Deployment values. As a rule of thumb for future review, we should not use .Values directly and prefer using $auth and $proxy
2023-01-13 16:50:00 +00:00
Yann Toqué deb332709f feat(teleport-cluster chart): Add nodeSelector field
see https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
Levering this field allows to place pod associated with the deployment to be on the specified node

Signed-off-by: Yann Toqué <toqueyann@gmail.com>
2023-01-12 19:44:06 -05:00
Tiago Silva 3a5c1e2639 Adds a post-delete hook to delete the kube-agent state secrets (#20043)
This PR adds a `post-delete` hook that cleans the state secret that each Pod creates when it receives the identity from the Teleport Auth Server.

Fixes #20035
Fixes #18854
2023-01-12 22:27:30 +00:00
Hugo Shaka 1d43b0f76d helm: add proxy config tests 2023-01-12 16:44:22 -05:00
Hugo Shaka 59db56c278 helm: reload proxy certs automatically 2023-01-12 16:44:22 -05:00
Hugo Shaka 46e949a2f6 helm: support passing raw config in teleport-kube-agent (#20129)
This commit implements arbitrary configuration passing to Teleport, like what was done for the `teleport-cluster` in https://github.com/gravitational/teleport/pull/18857. This allows users to deploy services or set fields the chart does not support.

The huge snapshot diffs are caused by order changes in the config (the YAML export orders keys alphabetically). I validated that the old and new snapshots were strictly equivalent with the following python snippet:

```python
import yaml
import pathlib
import deepdiff

old = yaml.safe_load(Path("./config-snapshot.old").open())
new = yaml.safe_load(Path("./config-snapshot.new").open())

old_content = { k: yaml.safe_load(yaml.safe_load(v[1])["data"]["teleport.yaml"]) for (k,v) in old.items() }
new_content = { k: yaml.safe_load(yaml.safe_load(v[1])["data"]["teleport.yaml"]) for (k,v) in new.items() }

diff = deepdiff.DeepDiff(old_content, new_content)
print(diff)
```
2023-01-12 21:32:03 +00:00
Hugo Shaka ab51a9b5ea helm: support dnsConfig in teleport-kube-agent chart (#20096)
Adds support for `dnsConfig` and `dnsPolicy` configuration in the `teleport-kube-agent` chart.
2023-01-11 19:57:20 +00:00
Hugo Shaka 4ca4b54075 Deploy split proxy/auth with helm chart (#18857)
This commit refactors the `teleport-cluster` Helm chart to deploy separately proxy and auth pods.
It allows users to pass raw teleport configuration to the deployed Teleport nodes.
Finally, it removes the `custom` chart mode as the mode was broken by the split. A new `scratch` mode has been introduced.

See [the corresponding RFD](https://github.com/gravitational/teleport/pull/18274) describing the design.
2023-01-11 17:50:35 +00:00
Tiago Silva 40861809a6 Add RoleV6 resource type (#19324)
This PR includes a new Role resource version that is compatible with V5 spec.

The new resource introduces the `kubernetes_resources` definition that allows operators to limit the Kubernetes resources that each member can access. The `kubernetes_resources` entries must follow the following format: `{"kind":"<kind>", "namespace":"<namespace>","name":"<pod>"}`. Currently, it only supports objects of `kind` `pod`. Valid examples `<namespace>/<name>:
- `*/*`: matches all pods in all namespaces.
- `default/*`: matches all pods in the `default` namespace.
- `*/nginx-*`: matches every pod prefixed with `nginx-` in every namespace.

For older resource versions - V5, V4, V3 - `kubernetes_resources` is automatically populated with `{"kind":"pod","namespace":"*","name":"*"}` to keep compatibility. For the newest version, it's mandatory to define its value otherwise access to pods will be denied.

Part of #18434
2023-01-05 09:58:12 +00:00
Adam StrawsonandZac Bergquist e6d2485d66 Fix issue where gcp.credentialSecretName isn't needed (#17964)
Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2023-01-03 19:50:12 +00:00
Alexey DubkovandZac Bergquist cb0a04ea53 helm: add option to disable ClusterRole and ClusterRoleBinding (#17570)
Co-authored-by: Zac Bergquist <zac.bergquist@goteleport.com>
2022-12-14 17:18:31 +00:00
Hugo Shaka 207567b548 helm: use new helm-unittest plugin (#18964)
* Invoke helm plugins with correct path
* helm: breaking - change helm unittest plugin
* helm: document test plugin fork choice
* Add Makefile target checking helm plugins
2022-12-05 18:58:32 +00:00
Roman TkachenkoandVictor Sokolov 710b7d18ef Implicitly set go version in prepare-workspace (#18953)
- Determine Go version for cache key automatically instead of hardcoding.
- Do not build ghcr CI images (etcd and buildboxes) on PRs to avoid unintended breakages.
- Only build/push them on push events which mirrors our current Drone setup. We might add ability to trigger them manually via workflow_dispatch events later.
- Add release branches pattern for buildbox images trigger as well.
- Remove packages: read permission from test jobs since buildbox images are now public.

Signed-off-by: Roman Tkachenko <roman@goteleport.com>
Co-authored-by: Victor Sokolov <gzigzigzeo@gmail.com>
2022-12-01 00:40:53 +00:00
Roman TkachenkoandVictor Sokolov cda4be5273 Add Go version to GHA cache key and CI image workflow (#18877)
* Include Go version in the cache key to prevent cache reuse when upgrading Go.
* Push buildboxes to Github container registry to avoid public ECR rate limiting.

Signed-off-by: Roman Tkachenko <roman@goteleport.com>
Co-authored-by: Victor Sokolov <gzigzigzeo@gmail.com>
2022-11-30 00:25:45 +00:00
Roman Tkachenko a6dfac72ed Set permissions for GHA workflows (#18728) 2022-11-22 17:35:43 -08:00
Hugo Shaka eb36e239e7 operator: fix unregistered CR in scheme + wrong chart clusterrole (#18367)
- operator: fix crash due to unregistered CR in scheme
- chart: fix issue in operator clusterrole
2022-11-11 05:33:36 +00:00
Hugo Shaka d7c6c5461f operator: Add auth_connector support (#17448)
* Add auth_connector api resources

- Add the go types in `operator/apis`
- Add the OIDCConnector, SAMLConnector and GithubConnector resources to `protoc-gen-crd`
- Add `wrappers.StringValues` support to `protoc-gen-crd`
- Update crdgen test fixtures

* Regenerate CRD manifests

* Introduce the teleport reconciler abstraction

* operator: Add auth_connector resources support

- Reconcile OIDC, SAML and Github authconnectors
- Make the oidc, saml and github interfaces implement `ResourceWithOrigin`

* operator: Add standard tests for auth connectors

This Commit introduces a set of default tests that can be reused for
each controller based on `TeleportResourceReconciler`.

* Bump CRD manifests to go 1.19

* operator: make Makefile OSX friendly

* Add newKubeResource tests and fix godocs
2022-11-10 15:42:18 +00:00
Gus LuxtonandPaul Gottschling ad924f4065 Add callouts to docs and Helm values for Kubernetes 1.23+ on EKS (#18006)
* Add callouts to docs and Helm values for Kubernetes 1.23+ on EKS

Kubernetes 1.23 introduced a requirement for EKS clusters to use a CSI (container storage interface) driver addon to provision EBS volumes as persistent volumes. Kubernetes 1.23 is now the default for new EKS clusters and since our chart uses persistence in its default mode, it will fail to deploy on EKS without this additional driver being installed.

* Apply suggestions from code review

Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>
2022-11-02 20:18:39 +00:00
Gus Luxton 5641958194 helm: Handle setting teleportVersionOverride to <11 when using v11 teleport-kube-agent chart (#18008)
* helm: Handle setting teleportVersionOverride to <11 when using v11 teleport-kube-agent chart

The instructions for adding a teleport-kube-agent in Teleport's web UI always use the latest version of the Helm
chart from the repo. This works fine when installing v11 agents, but causes errors if you set `teleportVersionOverride`
to anything <11 because config version `v3` is not supported. This will cause issues for Teleport Cloud customers trying
to add new agents following the web UI's instructions, as Cloud is not on v11 yet and won't be for a few weeks.
2022-11-02 14:28:33 +00:00
Hugo Shaka 284bdaba13 operator: Remove CRD shortname that was conflicting with Kubernetes (#17644) 2022-10-24 14:22:18 +00:00
Hugo Shaka fb52514ecb helm: fix broken snapshot (#17680) 2022-10-21 15:58:43 -04:00
153347e795 azure db discovery helm chart (#16867)
* Update teleport-kube-agent readme

* Add values.yaml and schema changes for azure dbs

* Add azure discovery helm lint

* Add azure discovery helm tests

* Fix schema and update snapshot

* Update lint

* Update helm chart docs reference

* Update readme

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>

* Move yaml lint note to include snippet

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>

* Add azureDatabases to list of required resources for db role in docs

* Update readme to link to docs

* Provide complete example yaml for azure db discovery helm chart

* s|dbResources|databaseResources|g in helm chart reference

* Remove --set tabs for aws and azure databases from chart reference

* Update lint to use secret as example too

* Update azure db discovery helm chart snapshot

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Update docs/pages/reference/helm-reference/teleport-kube-agent.mdx

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Remove shell vars in readme since we dont provide a command

Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>
Co-authored-by: Hugo Shaka <hugo.hervieux@goteleport.com>
Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>
2022-10-20 18:20:32 +00:00
49160f64b4 pr-buddy: helm: support join_params in teleport-kube-agent chart (#16351)
This contribution adds the following feature
- support for `joinParams` value to join using EC2 and IAM tokens

The PR contains the following fixes
- Fix previous secretName documentation that was incorect
- Reword authToken and joinParams documentation to explicit how values interact together
- Add unit test with `joinParams.method = token`
- Add unit tests checking secret creation
- Mark joinParams.method mandatory in JSONSchema
- Always use join_params to pass tokens
* Document requirements for IAM joining

Co-authored-by: Guilherme Sponda <sponda@archlinux.com.br>
Co-authored-by: Guilherme Sponda <guilherme.sponda@audibene.de>
2022-10-17 20:45:04 +00:00
Tiago Silva 398b140a2b Fix invalid quotes on hook names (#17438)
Fixes invalid quotes caused by a find and replace that went wrong.

Fixes #17437
2022-10-14 17:53:58 +00:00
Roman Tkachenko dc94159be7 Bump version in master to 12.0.0-dev (#17104) 2022-10-06 01:51:59 +00:00
Tiago Silva d3bc7bd7f4 Add option to disable the ServiceAccount creation for teleport-kube-agent chart (#16876)
When assigning AWS IAM permissions to Teleport, `eksctl create iamserviceaccount` command manages the ServiceAccount lifecycle. 

This PR allows any user to configure an existing Kubernetes ServiceAccount used by the agent.

Part of #11866
2022-10-03 16:25:51 +01:00
Ryan Clark 806a568ada Introduce config v3, add auth_server and proxy_server, remove auth_addresses (#15761) 2022-09-28 15:30:15 +00:00
Steven Martin 2e56b592bb gcp secret only in gcp mode fix (#13319) 2022-09-26 16:14:56 +00:00
Hugo Shaka cfb2fb01b4 helm: support imagePullSecret in kube-agent chart in statefulset mode (#16508) 2022-09-23 15:24:50 +00:00
Hugo Shaka 1cf949e5c4 helm: add minReadySeconds to teleport-cluster chart (#16465)
Fixes #13129

This PR sets minReadySeconds to 15 by default. During a rollout we still have proxies that don't have tunnels to all agents, but at least agents don't end up with 0 active tunnels.
2022-09-23 14:20:03 +00:00
Brian Joerger 2654add770 RequireMFAType (#16034)
Replace role/authPref RequireSessionMFA (bool) with RequireMFAType
(string).

  - Add new RequireMFAType constant values with custom boolean marshalling.

  - Add RequireMFAType to role and auth preference and deprecate
RequireSessionMFA.

  - Add session-mfa override login when hardware_key_touch is enforced.

  - Add protobuf enum for RequireMFAType.

  - Add support for proto enums in protoc-gen-crd and update Kubernetes
Operator manifests.
2022-09-22 20:30:32 +00:00
Hugo ShakaandPaul Gottschling 920495c6d7 helm: allow custom CA in teleport-cluster without custom certs (#16325)
Provides a solution for #9298

This removes an unnecessary limitation of the Helm chart: `.Values.tls.existingCASecretName` can now be used without `.Values.tls.existingSecretName`. This allows users to trust their own CAs without building custom images.

Context:
- go's x509 library supports loading system certs based on the SSL_CERTS_FILE environment variable
- we are already using this in the chart to trust private CAs (teleport proxy needs to trust its own certs to start)
- users might want to trust custom CAs to
  - speak with a S3 backend (minio)
  - validate upstream app certs (unlike DB access you can't trust certs per-application)
  - trust another cluster
  - call an OIDC provider
- teleport-kube-agent chart already has the feature

Co-authored-by: Paul Gottschling <paul.gottschling@goteleport.com>
2022-09-16 15:53:35 +00:00