Commit Graph

312 Commits

Author SHA1 Message Date
R.B. Boyer bd87505bf2
ci: upgrade bats and the circle machine executors to get integration tests to function again (#12918)
Bonus change: send less context when building the test-sds-server to
speed up the setup.
2022-05-03 11:21:32 -05:00
Dhia Ayachi 4488b6c339
Add versions compatibility tests between Consul (#12702)
* add a sample

* Consul cluster test

* add build dockerfile

* add tests to cover mixed versions tests

* use flag to pass docker image name

* remove default config and rely on flags to inject the right image to test

* add cluster abstraction

* fix imports and remove old files

* fix imports and remove old files

* fix dockerIgnore

* make a `Node interface` and encapsulate ConsulContainer

* fix a test bug where we only check the leader against a single node.

* add upgrade tests to CI

* fix yaml alignment

* fix alignment take 2

* fix flag naming

* fix image to build

* fix test run and go mod tidy

* add a debug command

* run without RYUK

* fix parallel run

* add skip reaper code

* make tempdir in local dir

* chmod the temp dir to 0777

* chmod the right dir name

* change executor to use machine instead of docker

* add docker layer caching

* remove setup docker

* add gotestsum

* install go version

* use variable for GO installed version

* add environment

* add environment in the right place

* do not disable RYUK in CI

* add service check to tests

* assertions outside routines

* add queryBackend to the api query meta.

* check if we are using the right backend  for those tests (streaming)

* change the tested endpoint to use one that have streaming.

* refactor to test multiple scenarios for streaming

* Fix dockerfile

Co-authored-by: FFMMM <FFMMM@users.noreply.github.com>

* rename Clients to clients

Co-authored-by: FFMMM <FFMMM@users.noreply.github.com>

* check if cluster have 0 node

* tidy code and add some doc strings

* use uuid instead of random string

* add doc strings to tests

* add queryBackend to the api query meta.

* add a changelog

* fix for api backend query

* add missing require

* fix q.QueryBackend

* Revert "fix q.QueryBackend"

This reverts commit cd0e5f7b1a1730e191673d624f8e89b591871c05.

* fix circle ci config

* tidy go mod after merging main

* rename package and fix test scenario

* update go download url

* address review comments

* rename flag in CI

* add readme to the upgrade tests

* fix golang download url

* fix golang arch downloaded

* fix AddNodes to handle an empty cluster case

* use `parseBool`

* rename circle job and add comment

* update testcontainer to 0.13

* fix circle ci config

* remove build docker file and use `make dev-docker` instead

* Apply suggestions from code review

Co-authored-by: Dan Upton <daniel@floppy.co>

* fix a typo

Co-authored-by: FFMMM <FFMMM@users.noreply.github.com>
Co-authored-by: Dan Upton <daniel@floppy.co>
2022-04-25 10:41:36 -04:00
Bryce Kalow 239c84a5c1
website: remove source code (#12806) 2022-04-19 12:32:02 -05:00
Evan Culver fb7022b763
Run arm64 builds on go1.18 (#12818) 2022-04-18 23:13:37 -07:00
Evan Culver 000d0621b4
connect: Add Envoy 1.22 to integration tests, remove Envoy 1.18 (#12805)
Co-authored-by: R.B. Boyer <rb@hashicorp.com>
2022-04-18 09:36:07 -07:00
DanStough 95250e7915 Update go version to 1.18.1 2022-04-18 11:41:10 -04:00
Boris Korzun 319a0a08cd
Fix incorrect severity syslog messages (#12079)
Co-authored-by: Evan Culver <eculver@hashicorp.com>
2022-04-14 15:51:00 -07:00
Evan Culver 881e17fae1
connect: Add Envoy 1.21.1 to support matrix, remove 1.17.4 (#12777) 2022-04-14 10:44:42 -07:00
Mark Anderson e1f0a824c7
Merge pull request #12736 from hashicorp/ma/update_vault_version
Update vault to 1.9.4
2022-04-13 10:01:27 -07:00
R.B. Boyer c24df50476
ci: upsize many slow-running circleci builds (#12742) 2022-04-11 14:40:57 -05:00
Mark Anderson b1edc7b112 Update vault to 1.9.4
Vault hasn't been updated for a while, and we should be testing
against a newer version. I'd update to 1.10.0, but we would run afoul
of https://github.com/hashicorp/vault/issues/14863. We should update
to 1.10.1 as soon as it comes our, or better yet move to using latest.

Signed-off-by: Mark Anderson <manderson@hashicorp.com>
2022-04-08 15:33:45 -07:00
R.B. Boyer 8b527889ec
ci: run envoy integration tests on a real machine (#12715) 2022-04-07 11:25:10 -05:00
R.B. Boyer 82bfc04f87
build: auto install correct version of protoc locally (#12651) 2022-03-30 10:08:17 -05:00
R.B. Boyer cef336a0a3
build: install mog and execute it during protobuf compilation (#12647)
- also import replace isn't needed anymore
2022-03-29 15:18:05 -05:00
R.B. Boyer 8aebca5794
build: enforce protoc binary is the expected version (#12641) 2022-03-29 12:02:43 -05:00
Eric 76c65e873c code review changes 2022-03-29 09:36:34 -04:00
Eric 5f050614e5 remove the rest of gogo 2022-03-28 17:34:41 -04:00
Eric 5cab213e81 assorted changes required to remove gogo 2022-03-25 09:55:36 -04:00
John Cowen ee0e8bf500
ui: App-ify Lock Sessions (#12482)
This commit moves our in-app LockSessions code into an external 'app', which can theoretically be side-loaded but for now it just makes for good isolation/code hygiene.

Functionally, there is kind of one change here, and that is we only show the 'Lock Session' tab if you have permissions to see them. Currently as our UI authorization endpoint needs to be changed slightly to suit our usecase, you will always have permissions to see Lock Sessions as we hardcode the session:read to true (obvs this is a frontend thing, not a backend thing), so it doesn't really change anything from a user perspective.

Also added very bare docs while I was here.

Small note here, ideally we need to add the each individual tab depending on whether an 'app' is enabled or not instead of just permissions, ideally it would be done totally from The Outside rather than a can based conditional on the inside, just something else to be thinking about for the future.
2022-03-14 16:54:49 +00:00
Evan Culver 522676ed8d
connect: Update supported Envoy versions to include 1.19.3 and 1.18.6 2022-02-24 16:59:33 -08:00
Evan Culver b95f010ac0
connect: Upgrade Envoy 1.20 to 1.20.2 (#12443) 2022-02-24 16:19:39 -08:00
Chris S. Kim e7d1ac0ce8
ci: Fix merge conflicts cleanly (#12249) 2022-02-14 23:12:36 -05:00
Daniel Nephin eede4a14ac ci: fix arm64 build
'make dev' is not enough, we need to move it into PATH as well.
2022-02-07 17:11:21 -05:00
Daniel Nephin 6ea0e5d4e9 ci: skip building the binary
The tests that require a Consul binary should be skipped by -short, so skip building
the binary in go-test-arm64 to save after 3 minutes.
2022-02-03 18:24:20 -05:00
Daniel Nephin 01ed9e3c60 ci: try to run only -short on PR branches 2022-02-03 17:58:59 -05:00
Daniel Nephin f00a93c795 ci: share common go-test steps 2022-02-03 17:50:03 -05:00
odidev 08d1eb585d Add test jobs for arm64 in CircleCI 2022-02-03 17:50:03 -05:00
Daniel Nephin f504a02776 Replace build script with 'go build' 2022-02-03 07:19:57 -08:00
Chris S. Kim c1d438ed03
ci: Update CI to stash changes before checkout (#12210) 2022-01-27 10:59:05 -05:00
Chris S. Kim 06fbee2801
Push bindata_assetfs.go to a non-protected branch (#12151) 2022-01-21 16:10:54 -05:00
Evan Culver e35dd08a63
connect: Upgrade Envoy 1.20 to 1.20.1 (#11895) 2022-01-18 14:35:27 -05:00
Bryce Kalow a068867400
website: fix algolia indexing (#11413) 2021-12-15 08:30:46 -06:00
Chris S. Kim 8bdbe7c0fb
Update CI and release go versions to 1.17.5 (#11799) 2021-12-10 14:04:56 -05:00
John Cowen 26341f0b05
ui: Move nspace CRUD to use the same approach as partitions (#11633)
This sounds a bit 'backwards' as the end goal here is to add an improved UX to partitions, not namespaces. The reason for doing it this way is that Namespaces already has a type of 'improved UX' CRUD in that it has one to many relationship in the form when saving your namespaces (the end goal for partitions). In moving Namespaces to use the same approach as partitions we:

- Ensure the new approach works with one-to-many forms.
- Test the new approach without writing a single test (we already have a bunch of tests for namespaces which are now testing the approach used by both namespaces and partitions)

Additionally:

- Fixes issue with missing default nspace in the nspace selector
- In doing when checking to see that things where consistent between the two, I found a few little minor problems with the Admin Partition CRUD so fixed those up here also.
- Removed the old style Nspace notifications
2021-12-01 11:04:02 +00:00
R.B. Boyer 9db6645352
build: switch to 'go install' over 'go get' (#11582)
Also add lint-consul-retry to the 'make tools' set.
2021-11-16 12:04:49 -06:00
Evan Culver 01c583431a
ci: Loosen apt source verification (#11493) 2021-11-05 16:38:23 -04:00
Evan Culver 61be9371f5
connect: Remove support for Envoy 1.16 (#11354) 2021-10-27 18:51:35 -07:00
Evan Culver bec08f4ec3
connect: Add support for Envoy 1.20 (#11277) 2021-10-27 18:38:10 -07:00
Daniel Nephin 66798ca42d ci: test against go1.17 2021-10-21 16:18:32 -04:00
John Cowen a1a0ce1dad
ci: Only install UI dependencies for CI frontend-cache (#11313) 2021-10-14 15:14:26 +01:00
John Cowen e5a15fdaac
ci: Don't focus install JS deps (#11267) 2021-10-11 14:37:21 +01:00
John Cowen baa377ddca
ui: Adds initial CRUD for partitions (#11188)
* Add `is` and `test` helpers in a similar vein to `can`

Adds 2 new helpers in a similar vein to ember-cans can:

- `is` allows you to use vocab/phrases such as (is "something model") which calls isSomething() on the models ability.
- `test` allows you to use vocab/phrases such as (test "is something model") or (test "can something model")which calls isSomething() / canSomething() on the models ability. Mostly using the is helper and the can helper. It's basically the is/can helper combined.

* Adds TextInput component + related modifiers/helpers/machines/services (#11189)

Adds a few new components/modifiers/helpers to aid building forms.

- state-chart helper, used in lieu of a more generic approach for requiring our statecharts.
- A few modifications to our existing disabled modifier.
- A new 'validation' modifier, a super small form validation approach built to make use of state charts (optionally). Eventually we should be able to replace our current validation approach (ember-changeset-validations + extra deps) with this.
- A new TextInput component, which is the first of our new components specifically to make it easy to build forms with validations. This is still a WIP, I left some comments in pointing out where this one would be progressed, but as we don't need the planned functionality yet, I left it where it was. All of this will be fleshed out more at a later date.

Documentation is included for all of ^

* ui: Adds initial CRUD for partitions (#11190)

Adds basic CRUD support for partitions. Engineering-wise probably the biggest takeaway here is that we needed to write very little javascript code to add this entire feature, and the little javascript we did need to write was very straightforwards. Everything is pretty much just HTML. Another note to make is that both ember-changeset and ember-data (model layer things) are now completely abstracted away from the view layer of the application.

New components:

- Consul::Partition::Form
- Consul::Partition::List
- Consul::Partition::Notifications
- Consul::Partition::SearchBar
- Consul::Partition::Selector

See additional documentation here for more details

New Route templates:

- index.hbs partition listing/searching/filtering
- edit.hbs partition editing and creation

Additionally:

There is some additional debug work here for better observability and to prevent any errors regarding our href-to usage when a dc is not available in our documentation site.

Our softDelete functionality has been DRYed out a little to be used across two repos.

isLinkable was removed from our ListCollection component for lists like upstream and service listing, and instead use our new is helper from within the ListCollection, meaning we've added a few more lighterweight templateOnly components.

* ui: Exclude all debug-like files from the build (#11211)

This PR adds **/*-debug.* to our test/prod excluded files (realised I needed to add test-support.js also so added that here as its more or less the same thing). Conditionally juggling ES6 static imports (specifically debug ones) for this was also getting a little hairy, so I moved it all to use the same approach as our conditional routes. All in all it brings the vendor build back down to ~430kb gzipped.
2021-10-08 16:29:30 +01:00
Evan Culver 7e20a5e4f9
connect: remove support for Envoy 1.15 2021-09-22 11:48:50 -07:00
Evan Culver 7605dff46e
add envoy 1.19.1 2021-09-21 15:39:36 -07:00
Dhia Ayachi 9592990773
Rerun go-test and go-test-32bits tests up to 3 times before failing (#11059)
* Rerun go-test and go-test-32bits tests up to 3 times before failing

* do not run rerun fail report in oss

* set back rerun fail report but print to stdin instead of comment
2021-09-20 16:04:59 -04:00
Freddy 8d83d27674
connect: update envoy supported versions to latest patch release
(#10961)

Relevant advisory: 
https://github.com/envoyproxy/envoy/security/advisories/GHSA-6g4j-5vrw-2m8h
2021-08-31 10:39:18 -06:00
R.B. Boyer e0d1e2689c
ci: upgrade to use Go 1.16.7 (#10856) 2021-08-16 12:21:16 -05:00
Daniel Nephin eb6505b526 ci: query for max number of possible labels
To fix a failure in our docs-cherrypick automation. This started to fail today, I suspect because
github silently changed the order the labels were being returned, and by default it only
returns 30 labels.

We currently have 68 labels, so using per_page=100 (the maximum allowed) we should be able to fix
this failure.
2021-07-29 13:51:05 -04:00
Daniel Nephin a318ca38cf Update CI config and Makefile for vendor removal
Now that vendor is removed our CI can check that 'go mod tidy' makes no changes, instad of
checking vendor/modules.txt
2021-07-21 18:39:07 -04:00
Daniel Nephin 690dc41c55
Merge pull request #10515 from hashicorp/dnephin/fix-arm32-atomic-aligment
Fix panic on 32-bit platforms
2021-06-30 16:40:20 -04:00
Daniel Nephin 4d741531b4 Update references to the main branch
The main branch is being renamed from master->main. This commit should
update all references to the main branch to the new name.

Co-Authored-By: Mike Morris <mikemorris@users.noreply.github.com>
2021-06-29 17:17:38 -04:00
Daniel Nephin 3b04326025 ci: add go-test-32bit and lint-32bit to catch atomic misalignment panics 2021-06-29 16:10:21 -04:00
Daniel Nephin 8054ea3ff1 ci: test api/sdk against last 2 Go versions
So that we catch any incompatibilities with the preivous Go version.
2021-06-24 12:24:12 -04:00
Dhia Ayachi f2eed912b2
upgrade golangci-lint to v1.40.1 (#10276)
Also: fix linter issue detected with newer version
2021-05-24 22:22:37 -04:00
Alvin Huang 5fe74cd85a
ci: allow bash_env in load-test (#10278)
* setup bash shell usage for load-test

* add cluster_name tf var
2021-05-21 14:19:26 -04:00
Alvin Huang 1f77dddcee update terraform provider versions to within constraints 2021-05-19 16:11:54 -04:00
John Cowen 8301e79c56
ui: Bump node to v14 (#10238) 2021-05-18 16:30:19 +01:00
Daniel Nephin 71fc219189
Merge pull request #10217 from hashicorp/dnephin/test-flakes
testing: attempt to fix some test flakes
2021-05-12 15:38:29 -04:00
R.B. Boyer 3b50a55533
connect: update supported envoy versions to 1.18.3, 1.17.3, 1.16.4, and 1.15.5 (#10231) 2021-05-12 14:06:06 -05:00
Daniel Nephin 3dde5ab521 ci: update gotestsum
To pickup this fix: e91cbd912a
2021-05-10 13:25:18 -04:00
Daniel Nephin f5afed82c8
ci: add a verify CI job to ensure CI checks are run (#10179)
This workflow will be added as a branch protection rule in github.
2021-05-06 12:26:10 -04:00
Daniel Nephin c8f53a1d52 ci: allow cherry-picking a manual backport to other release branches
If an automatic backport fails to more than one release branch we need
to crate a PR to backport it. So far we've had to create a backport PR
for each target release branch.

With this change, we may be able to create only a single PR, and then
run the backport automation to cherry-pick it into other release
branches.

The idea is that if a change introduced in version n-1 caused a
conflict, and there are no other changes, then the backport automation
should be able to use the same commit for version n-2 and n-3.
2021-05-03 16:09:10 -04:00
R.B. Boyer abc1dc0fe9
connect: update supported envoy versions to 1.18.2, 1.17.2, 1.16.3, and 1.15.4 (#10101)
The only thing that needed fixing up pertained to this section of the 1.18.x release notes:

> grpc_stats: the default value for stats_for_all_methods is switched from true to false, in order to avoid possible memory exhaustion due to an untrusted downstream sending a large number of unique method names. The previous default value was deprecated in version 1.14.0. This only changes the behavior when the value is not set. The previous behavior can be used by setting the value to true. This behavior change by be overridden by setting runtime feature envoy.deprecated_features.grpc_stats_filter_enable_stats_for_all_methods_by_default.

For now to maintain status-quo I'm explicitly setting `stats_for_all_methods=true` in all versions to avoid relying upon the default.

Additionally the naming of the emitted metrics for these gRPC requests changed slightly so the integration test assertions for `case-grpc` needed adjusting.
2021-04-29 15:22:03 -05:00
Jamie Finnigan 8fc62cb87f
remove Codecov from CI runs (#10145) 2021-04-28 13:23:31 -07:00
John Cowen 345765f766
ui: Adds human formatting to nanosecond based session durations (#10062)
* ui: Adds human formatting to nanosecond based session durations
2021-04-28 12:12:56 +01:00
Sarah 602b1e3b0c
updating fingerprint 2021-04-22 15:08:55 +01:00
Sam Salisbury 7ae1d4fa28 ci: rotate the read/write SSH key fingerprint 2021-04-19 18:04:34 +01:00
Daniel Nephin 66567f4bc0 ci: test against Go1.16.3 2021-04-13 12:06:13 -04:00
Daniel Nephin c715d0cef1 ci: update config for nomad main branch rename 2021-03-09 14:44:44 -05:00
R.B. Boyer 398b766532
xds: default to speaking xDS v3, but allow for v2 to be spoken upon request (#9658)
- Also add support for envoy 1.17.0
2021-02-26 16:23:15 -06:00
R.B. Boyer 3b6ffc447b
xds: remove deprecated usages of xDS (#9602)
Note that this does NOT upgrade to xDS v3. That will come in a future PR.

Additionally:

- Ignored staticcheck warnings about how github.com/golang/protobuf is deprecated.
- Shuffled some agent/xds imports in advance of a later xDS v3 upgrade.
- Remove support for envoy 1.13.x but don't add in 1.17.x yet. We have to wait until the xDS v3 support is added in a follow-up PR.

Fixes #8425
2021-02-22 15:00:15 -06:00
R.B. Boyer 6eeccc93ce
connect: update supported envoy point releases to 1.16.2, 1.15.3, 1.14.6, 1.13.7 (#9737) 2021-02-10 13:11:15 -06:00
Alvin Huang 0d1301c408
ci: add nightly load testing on master (#9693) 2021-02-03 15:59:37 -05:00
Alvin Huang e889f7dbcd
ci: fail cherrypick if git push fails (#9673) 2021-01-29 19:42:14 -05:00
Alvin Huang 6cb0482db6
ci: reset working directory between cherrypick labels (#9656) 2021-01-27 15:51:12 -05:00
Alvin Huang 58191cbe4c
ci: fix logic for check-vendor (#9619) 2021-01-22 11:36:35 -05:00
Alvin Huang 2a5b88e5b1
ci: change check-vendor to verify git status has no changes (#9615) 2021-01-21 18:29:26 -05:00
Alvin Huang 62acc073b7 modify envoy test job names to make circleci happy 2021-01-13 23:31:15 -05:00
Alvin Huang 3165e84e98 add load test configuration 2021-01-13 23:30:00 -05:00
Alvin Huang 4120e72875 upload zip instead of tar dev builds 2021-01-13 23:27:17 -05:00
Alvin Huang b5560b04d8 modify aws assume role circleci command 2021-01-13 23:25:21 -05:00
Alvin Huang de98b4591c add PR load test terraform config 2021-01-13 23:19:53 -05:00
Daniel Nephin 2e2ee41390 xds: Fix data race
TestEnvoy.Close used e.stream.recvCh == nil to indicate the channel had already
been closed, so that TestEnvoy.Close can be called multiple times. The recvCh
was not protected by a lock, so setting it to nil caused a data race with any
goroutine trying to read from the channel.

Instead set the stream to nil. The stream is guarded by a lock, so it does not race.

This change allows us to test the agent/xds package using -race.
2021-01-07 18:13:48 -05:00
John Cowen 6196d49f62
ui: Remove ui-staging from CI (#9508)
* Remove all mention of ui-staging as we don't use that branch name
2021-01-06 18:37:51 +00:00
John Cowen 512ad836bc
ui: Add license checker to the workspace plus CI (#9507)
* ui: Adds license-checker plus manually run package script
2021-01-06 18:37:21 +00:00
Mike Morris 2c84b76469
ci: update to Go 1.15.6 (#9373) 2021-01-04 12:56:40 -05:00
Daniel Nephin 839429eb40
Merge pull request #9160 from hashicorp/dnephin/go-test-race-in-to-out-list
ci: change go-test-race package list to exclude list
2020-11-17 13:13:38 -05:00
Mike Morris 81f8f3cace
ci: reword cherry-picker comment (#9192) 2020-11-13 17:14:47 -05:00
R.B. Boyer a2e1cbd061
ci: update to go 1.15.5 (#9187) 2020-11-13 15:35:33 -06:00
Mike Morris 7af643ac37
ci: update to Go 1.15.4 and alpine:3.12 (#9036)
* ci: stop building darwin/386 binaries

Go 1.15 drops support for 32-bit binaries on Darwin https://golang.org/doc/go1.15#darwin

* tls: ConnectionState::NegotiatedProtocolIsMutual is deprecated in Go 1.15, this value is always true

* correct error messages that changed slightly

* Completely regenerate some TLS test data

Co-authored-by: R.B. Boyer <rb@hashicorp.com>
2020-11-13 13:02:59 -05:00
Daniel Nephin b27457dac8 ci: go-test-race switch to exclude list
Most packages should pass the race detector. An exclude list ensures
that new packages are automatically tested with -race.

Also fix a couple small test races to allow more packages to be tested.

Returning readyCh requires a lock because it can be set to nil, and
setting it to nil will race without the lock.

Move the TestServer.Listening calls around so that they properly guard
setting TestServer.l. Otherwise it races.

Remove t.Parallel in a small package. The entire package tests run in a
few seconds, so t.Parallel does very little.

In auto-config, wait for the AutoConfig.run goroutine to stop before
calling readPersistedAutoConfig. Without this change there was a data
race on reading ac.config.
2020-11-11 14:44:57 -05:00
Mike Morris 79a1eb7daf
ci: publish bindata_assetfs.go for all release/.x branches (#9158) 2020-11-11 13:39:40 -05:00
Mike Morris 1924ab9703
ci: remove nonexistant autopilot directory from go-test-race (#9159) 2020-11-11 13:38:45 -05:00
Mike Morris c0ef425ae5 chore: update to Go 1.14.11 2020-11-09 15:48:18 -05:00
Daniel Nephin acfc22822c ci: cherry-pick port-merge comment 2020-11-06 18:06:52 -05:00
Alvin Huang ea88956c9c
use hashicorp docker mirror to prevent rate limit (#9070) 2020-10-30 17:59:13 -04:00
John Cowen 827e53694c
ui: Upgrade consul-api-double to fix datacenter mocks (#9045) 2020-10-27 13:31:57 +00:00
Daniel Nephin 194c7f7ae6 ci: upgrade gotestsum
So that we are using the same version as enterprise
2020-10-26 15:19:08 -04:00
Alvin Huang 0d34e2939f
ci: add parallelism to envoy tests (#9005)
add subtest output
2020-10-23 11:53:24 -04:00
Alvin Huang 5e4de8b50a
move static-assets dist to new path (#9015) 2020-10-22 21:04:39 -04:00