Commit graph

204 commits

Author SHA1 Message Date
Jakub Nyckowski 96a13802d5
Add Node to amd64 bit target (#23115)
Signed-off-by: Jakub Nyckowski <jakub.nyckowski@goteleport.com>
Co-authored-by: Victor Sokolov <gzigzigzeo@gmail.com>
2023-03-17 18:14:14 +00:00
Łukasz Kozłowski 394b307efa
Update Rust to 1.68.0 (#23033) 2023-03-15 08:59:51 +00:00
Jakub Nyckowski 42c472af4a
(Buddy) Removed node from multiarch buildbox, added i386 and amd64 targets (#22979)
* Removed node from multiarch buildbox, added i386, amd64

* Bump github.com/aws/aws-sdk-go-v2/service/sts from 1.18.3 to 1.18.5 (#22292)

Bumps [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) from 1.18.3 to 1.18.5.
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.18.3...config/v1.18.5)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sts
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Added Dockerfile-multiarch Dockerfiles

Signed-off-by: Jakub Nyckowski <jakub.nyckowski@goteleport.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Jakub Nyckowski <jakub.nyckowski@goteleport.com>
Co-authored-by: Victor Sokolov <gzigzigzeo@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-14 18:00:20 +00:00
Alan Parra 0155e1a083
chore: Bump Go to 1.20.2 (#22723)
* chore: Bump Go to 1.20.2

https://go.dev/doc/devel/release#go1.20.2

* Run `make dronegen`

* Update e/ reference
2023-03-07 21:07:57 +00:00
Tobiasz Heller 970dfd3738
Update Go toolchain to 1.20.1 (#21911) 2023-02-16 14:31:44 +00:00
Jakub Nyckowski 71176c598b
Add enter-root/centos7 to build.assets/makefile (#21834)
Fix enter/centos7 to use centos instead of ubuntu.
2023-02-15 17:50:47 +00:00
Jakub Nyckowski e62ff82183
Unify x86/ARM64 build process (#21660)
* Unify x86/AMD64 build process

Currently, our ARM64 pipeline builds limited subset of Teleport features as none of the 3rd party dependencies (openssh, libbpf etc) are not built on AMR64. This change build all dependencies on AMR64 in the same way as we do on x86.

FIPS changes are not included as we do not support FIPS on ARM64.

* Apply suggestions from code review

Co-authored-by: Roman Tkachenko <roman@goteleport.com>

---------

Co-authored-by: Roman Tkachenko <roman@goteleport.com>
2023-02-15 15:38:59 +00:00
Jakub Nyckowski 7447984ca4
Update to libbpf 1.0.1 (#21745)
Update to libbpf 1.0.1 and github.com/aquasecurity/libbpfgo v0.4.5-libbpf-1.0.1. As we're building our releases on CentOS 7 anyway we can also switch to mainstream libbpf instead of using our fork.
2023-02-13 21:29:41 +00:00
Roman Tkachenko 29b51a76aa
Switch to ghcr docs image (#21687) 2023-02-10 23:28:21 +00:00
Jakub Nyckowski 20f5d0b3e0
Move CentOS 7 assets to GitHub repo (#21435)
Moving our CentOS build assets, aka Clang-10 is the first step to enabling our full Teleport to build on ARM64. This change should also save us some $$ as getting the assets from S3 sounds expensive.
2023-02-10 15:46:36 +00:00
Rafał Cieślak 94ec267823
Update JS grpc-tools to 1.12.4 (#21452)
* Update JS grpc-tools to 1.12.4

1.11.2 didn't have support for arm64 so we had to do all this extra stuff
in the Dockerfile.

1.11.3 added support for Darwin arm64 and 1.12.4 finally adds support for
Linux arm64. This means we can completely remove extra cruft and just
install grpc-tools 1.12.4 on all architectures.

* Add comment to ptyHostService.proto
2023-02-09 07:40:45 +00:00
Alan Parra e5f02f4eaa
Update Go toolchain to 1.20 (#21111)
* Update Go to 1.20

* Run `make dronegen`

* Update e/ reference
2023-02-02 14:22:04 +00:00
Michael Wilson 6bf65b0f4d
Add check if protos are up to date. (#21066)
* Add check if protos are up to date.

A new check has been added that will detect if protobufs are up to date. The
script will exit abnormally if protobufs need to be regenerated.

* Alan's feedback.

* Restoring the script.

* Update script comment.

* Add in the set -eu.

* Add a comment for the pull_request/merge_group bit in the new github action.

* Remove helper script.

* Reduce the runner size.
2023-02-02 05:54:20 +00:00
Zac Bergquist 19eae4a738
Update Rust to 1.67.0 (#20821)
Fix lint errors with cargo clippy --fix
2023-01-28 00:34:14 +00:00
Rafał Cieślak 6791b48da9
Remove grpc-teleterm Make target and Dockerfile-teleterm (#20032)
* Remove CLANG_FORMAT from Makefiles

It was used to format protos but we use Buf for that since v10.

* Move installing grpc_node_plugin into Dockerfile

This commit basically takes grpc_node_plugin compilation from
Dockerfile-teleterm and moves it to Dockerfile.

* Replace Dockerfile-teleterm with Dockerfile

After moving grpc_node_plugin compilation to Dockerfile, the only remaining
thing that Dockerfile-teleterm does is installing rpm so that we can make
an RPM package for Connect during tag builds.

Installing this package can be simply moved to Dockerfile.

* Remove grpc-teleterm Make target in favor of grpc

* Add updated protobufs

It looks like they're a result of someone changing protos in lib/prehog
without running `make grpc-teleterm` separately. Which is why we're getting
rid of grpc-teleterm as a separate Make target in the first place. ;)
2023-01-26 09:41:07 +01:00
Jeff Pihach ba2c1fc34a
Add nodejs to the fips dockerfile. (#20487) 2023-01-20 17:27:42 +00:00
Jakub Nyckowski 8108230136
Run webassets build in Docker as current OS user (#20426)
Set the current user when running webassets builds. In this way, the build artifacts will have correct permissions.
2023-01-19 23:01:36 +00:00
Jeff Pihach 34f102bdeb
Enable building teleport with the new UI location (#20361)
* Changes for merging webapps into teleport.
2023-01-18 22:22:25 +00:00
Jeff Pihach 30d51b6680
Add node and yarn to the buildboxes in preparation for the webapps merge (#20339)
* Add node and yarn to the buildboxes in preparation for the webapps merge.
2023-01-18 17:56:04 +00:00
Jakub Nyckowski 86ac5afd07
Update Rust to 1.66.1 (#20197)
Bump up the Rust version to mitigate CVE-2022-46176, context: https://blog.rust-lang.org/2023/01/10/cve-2022-46176.html
2023-01-13 17:32:41 +00:00
Alan Parra 71e0ac95e6
chore: Bump Go to 1.19.5 (#20060)
Update Go to the latest patch.

Bumps api/go.mod to 1.19 as well, as it seems to be lagging.
2023-01-11 14:54:26 +00:00
Trent Clarke 60264f5f62
Moves GHA docker invocation from action to Makefile (#19784)
Consolidates more of the build logic into the build.assets Makefile, transplanted from the workflow file in teleport.e

See comment gravitational/teleport.e#673 (comment)
2023-01-04 03:04:36 +00:00
Trent Clarke d9ac0d43ae
Update makefile with targets to build from GHA (#19637)
The existing `build.assets` makefile targets had the actual build steps 
coupled together with building the build box image. Because of how GHA
image builds work, we need to uncouple those tasks.

GHA also builds OSS and Enterprise teleports in parallel, so we needed 
a new target to build the Enterprise release without also automatically
building the OSS bundle in series.

Co-authored-by: Roman Tkachenko <roman@goteleport.com>
2022-12-28 23:16:57 +00:00
Łukasz Kozłowski d85795c7af
Fix Rust warnings (#19643) 2022-12-23 15:03:40 +00:00
Łukasz Kozłowski 3a781212c9
Update Rust to 1.66.0 (#19605) 2022-12-23 11:29:14 +01:00
Roman Tkachenko 1b387aba2c
Run GHA tests when build.assets/Makefile changes (#19616) 2022-12-22 19:04:44 +00:00
Brian Joerger 68511c4a75
Add PIV tag to docker builds through drone. (#18266) 2022-12-12 19:56:19 +00:00
Alan Parra c4d88ee28b
Update Go to 1.19.4 (#19120)
Update Go to latest security patch.
2022-12-07 13:52:04 +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 Tkachenko 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
Łukasz Kozłowski b6bbe28f3a
Add FIPS support for Desktop Access (#18076) 2022-11-23 15:32:53 +01:00
Grzegorz Zdunek 1ab74c1130
Update Node.js to 16.18.1 (#18354) 2022-11-10 20:41:40 +00:00
Jakub Nyckowski bea2e89df5
Run GCI as make fix-imports (#17956)
Co-authored-by: Alan Parra <alan.parra@goteleport.com>
2022-11-04 15:46:46 +00:00
Brian Joerger 9725c405a5
Make PIV builds opt-in for Mac and Windows (#17767) 2022-10-25 16:35:34 +00:00
Hugo Shaka 2ef2de956a
Use Teleport's standard buildbox (#17122)
* Use Teleport's standard buildbox

This commit edits the teleport-operator container image build process to
rely on Teleport's standard buildbox. This will make sure we are using a
single go version at all time.

This also removed unused environment variables from
`operator/Makefile`.

* Extract BUILDBOX variables out of build.assets/Makefile
* Put `teleport-operator` bin out of the Teleport source volume
2022-10-11 15:19:38 +00:00
Alan Parra f9f0ca339e
Bump grpc-related dependencies (#17265)
Bumps:

* protoc to v3.20.3
* protoc-gen-go to v1.5.2 (github.com/google/protobuf version, Teleterm only)
* google.golang.org/grpc to v1.50.0
* google.golang.org/grpc/examples
2022-10-11 14:29:01 +00:00
Jakub Nyckowski 7ab605a4af
Update Go to 1.19.2 (#17020) 2022-10-04 22:26:34 +00:00
Brian Joerger ce20b20753
PIV login enforcement (#15874)
Add private key policy enforcement.

  - Add private key policy cert extensions and enforcement.

  - Add private key policy settings and attestation logic.

  - Wire attestation request through login endpoints.

  - Store attestation data for reissue requests.

  - Add private key policy discovery and logic.

  - Relogin on hardware key policy errors.

  - Include integration with Teleport Connect.
2022-09-30 23:27:48 +00:00
rosstimothy b09e6a5fcb
Update Rust to 1.64.0 (#16833) 2022-09-29 19:51:15 +00:00
Brian Joerger 7d2bd715c4
Add piv build dependencies (#16424)
* Add piv build dependencies.

  - Add LIBPCSCLITE build tag.

  - Add libpcsclite static linking using gravitational/pcsc fork.

  - Enable use of dynamic pcsc library with LIBPCSCLITE=dynamic.

  - Refactor CGOFLAG in Makefile.

  - Update Centos7 Dockerfile and drone.

* Refactor RELEASE_MESSAGE for readability. Now produces message like: "RELEASE_MESSAGE=Building with GOOS=linux GOARCH=amd64 REPRODUCIBLE= and with PIV support and without PAM support, FIPS support, BPF support, Windows RDP client, libfido2, Touch ID."

Co-authored-by: Jakub Nyckowski <jakub.nyckowski@goteleport.com>
2022-09-22 23:16:51 +00:00
Alan Parra 9bb0255a07
Update toolchain to Go 1.19 (#16479)
Update Go toolchain, allowing for a possible go.mod bump to 1.19.

Since Go 1.19 BoringCrypto is no longer a separate branch, but instead it's
enabled by a [GOEXPERIMENT][1].

Release notes: https://tip.golang.org/doc/go1.19.

[1]: https://cs.opensource.google/go/go/+/refs/tags/go1.19.1:src/internal/goexperiment/exp_boringcrypto_on.go;l=3

* Update Go in build.assets/
* Update Go in Drone
* Appease .sh linter
* Update FIPS images
* Update e/
* Simplify Centos7 FIPS image
2022-09-19 17:31:51 +00:00
Roman Tkachenko e8974ffbda
Bump Go to 1.18.6 (#16248) 2022-09-08 21:11:30 +00:00
Isaiah Becker-Mayer a67f5c3eb4
bumps rust to 1.63.0, fixes linting errors (#16056) 2022-09-06 13:17:31 +02:00
Trent Clarke 1f58333531
Build Teleport Connect for Windows (#15292)
Uses Drone to build Teleport Connect for Windows on a Native 
Windows builder.

This PR adds 2 pipelines to the Drone YAML:

1. `push-build-native-windows-amd64`: Invoked on a push to master, 
   branch/v*, etc., and asserts that Teleport Connect can be built, and
   
2. `build-native-windows-amd64`: Invoked when a branch tag is 
   committed to the teleport Repo. Builds Teleport Connect and uploads 
   it to dronestorage
   
These builds are run on a native windows builder (as opposed to tsh, 
which is built in a linux environment and cross-compiled for Windows)
2022-08-29 16:56:55 +10:00
Alan Parra 0b76b44973
Use to Buf to lint, format and generate api/ protos (#15856)
Change the proto layout of `api/` to a more standard setup, allowing the use of
modern tools (like Buf) to format/lint (and maybe, one day, generate sources).

The new layout looks like this:

``` api/ proto/       <- root of protos and proto imports teleport/  <- base
package for Teleport protos (akin to "google/" or "gogoproto/") legacy/  <- root
of "legacy" protos (most linters disabled) client/ proto/ types/ events/
webauthn/ wrappers/ ```

Non-legacy `api/` protos are expected to follow this layout:

``` api/ proto/ teleport/ mynewpackage/  <- package name v1/          <- protos
explicitly versioned gen/      proto/  <- root for generated sources
(multi-language possible, separate from hand-written code) go/ mynewpackage/ v1
<- generate Go sources go here. ```

Some outstanding issues, like lack of `go_package` declarations and non-standard
import paths (`import "github.com/gravitational/teleport/.../some.proto"`) are
fixed.

Legacy protos still have irregular package declarations. It's possible to fix
that, but it's a bit harder to reason about, as generated sources change in
possibly-meaningful ways.

Future iterations could change legacy packages to match the directory structure
and apply a similar change to protos within lib/ packages, but this seems
sufficient for a first step.

* Add Buf to buildbox
* Unify API protos under Buf
* Fix proto generation
* Reformat protos
* Update generated protos
* Generate protos using Buf
* Appease linter
* Review: make sure gogo protobuf versions are in sync
* Clean leftovers from previous attempts
* Fix operator/Makefile
* Rename internal make gRPC targets to `*/host`
* Sort `make fix-license` targets (nit)
2022-08-26 18:11:38 +00:00
Rafał Cieślak b4c94ebf9b
Add drone pipeline for building Connect with signed tsh.app (#15763)
* Add proof of concept of Connect pipeline

The proof of concept includes a lot of copy-pasted lines which will get
cleared up in subsequent commits.

* Extract copying artifacts into separate functions

The tag pipeline no longer needs to worry about Connect artifacts.

* Reuse steps to install & cleanup toolchains

* Share toolchain configuration commands between pipelines

* Share build commands among different pipelines

* Download webapps only if a pipeline builds Connect

As seen by the changes to .drone.yml, this removes unnecessary webapps
clones from these tag pipelines: build-darwin-amd64, build-darwin-amd64-pkg,
build-darwin-amd64-pkg-tsh. None of them needs webapps to function anymore
and the pkg pipelines never needed webapps in the first place.
2022-08-24 16:38:42 +02:00
Zac Bergquist ac4d7fe651
Build Teleport Connect for Linux (#15509)
In order to do so, we add a new make target:

    make teleterm

This (temporarily) assumes that the gravitational/webapps repo is
cloned at the right version as a sibling to the teleport repo.
(We'll be able to get rid of this when we merge webapps into Teleport)

Additionally, update dronegen to include the name of the calling
function that generated the snippet instead of the line number.
This gets rid of lots of superfluous diffs in the generated
.drone.yml file.

Lastly, rewrite the Go program for getting the right webapps version
in bash, because Go is not available at this step of the drone pipeline.

Co-authored-by: Grzegorz Zdunek <grzegorz.zdunek@goteleport.com>
2022-08-23 13:57:22 -06:00
Logan Davis 830794a9cf
Replace quay.io with amazon ECR where appropriate (#15382) 2022-08-19 10:24:15 -05:00
Logan Davis 76606fc18b
Update buildbox to push to ECR (#15058) 2022-08-16 21:07:07 +00:00
Jakub Nyckowski c3dde989cc
Update protoc to v3.20.1 (#14097)
Co-authored-by: Rafał Cieślak <rafal.cieslak@goteleport.com>
2022-07-07 23:21:32 +00:00