Commit Graph

56 Commits

Author SHA1 Message Date
hc-github-team-secure-vault-core
f67e66e074 backport of commit aeb3f1623c (#18341) 2022-12-13 12:56:18 -07:00
Ryan Cragun
ccdb62d78e test: fix release testing workflows (#18322) (#18329)
* Use the correct runner
* Fix indentation

Signed-off-by: Ryan Cragun <me@ryan.ec>
2022-12-12 16:57:04 -07:00
hc-github-team-secure-vault-core
8139d039cc Backport of [QT-436] Pseudorandom artifact test scenarios into release/1.12.x (#18320)
* [QT-436] Pseudo random artifact test scenarios (#18056)

Introducing a new approach to testing Vault artifacts before merge
and after merge/notorization/signing. Rather than run a few static
scenarios across the artifacts, we now have the ability to run a
pseudo random sample of scenarios across many different build artifacts.

We've added 20 possible scenarios for the AMD64 and ARM64 binary
bundles, which we've broken into five test groups. On any given push to
a pull request branch, we will now choose a random test group and
execute its corresponding scenarios against the resulting build
artifacts. This gives us greater test coverage but lets us split the
verification across many different pull requests.

The post-merge release testing pipeline behaves in a similar fashion,
however, the artifacts that we use for testing have been notarized and
signed prior to testing. We've also reduce the number of groups so that
we run more scenarios after merge to a release branch.

We intend to take what we've learned building this in Github Actions and
roll it into an easier to use feature that is native to Enos. Until then,
we'll have to manually add scenarios to each matrix file and manually
number the test group. It's important to note that Github requires every
matrix to include at least one vector, so every artifact that is being
tested must include a single scenario in order for all workflows to pass
and thus satisfy branch merge requirements.

* Add support for different artifact types to enos-run
* Add support for different runner type to enos-run
* Add arm64 scenarios to build matrix
* Expand build matrices to include different variants
* Update Consul versions in Enos scenarios and matrices
* Refactor enos-run environment
* Add minimum version filtering support to enos-run. This allows us to
  automatically exclude scenarios that require a more recent version of
  Vault
* Add maximum version filtering support to enos-run. This allows us to
  automatically exclude scenarios that require an older version of
  Vault
* Fix Node 12 deprecation warnings
* Rename enos-verify-stable to enos-release-testing-oss
* Convert artifactory matrix into enos-release-testing-oss matrices
* Add all Vault editions to Enos scenario matrices
* Fix verify version with complex Vault edition metadata
* Rename the crt-builder to ci-helper
* Add more version helpers to ci-helper and Makefile
* Update CODEOWNERS for quality team
* Add support for filtering matrices by group and version constraints
* Add support for pseudo random test scenario execution

Backport

* Fix most `gofumpt` linter errors

Signed-off-by: Ryan Cragun <me@ryan.ec>
2022-12-12 15:07:16 -07:00
hc-github-team-secure-vault-core
fbbc3be803 Reduce number of places where go version is set (#17762) (#18099)
Reduce go version references to two: .go_version and @executors.yml.
2022-11-23 10:55:26 -05:00
Ryan Cragun
79cc894a4f [QT-353] Use a different approach to branch restrictions (#17998) (#18059)
Create a new workflow job that is only triggered when all build and
integration workflows have completed. This will allow us to require
branch restrictions on a single workflow.

Of note, we tried to allow docs branches to bypass testing using the
method suggested by Github[0], however, the `branches-ignore`
functionality did not work for the `pull_request` event type. Therefore,
bypassing build and integration workflows for docs branches is no longer
supported.

[0] https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-skipped-but-required-checks

Signed-off-by: Ryan Cragun <me@ryan.ec>
2022-11-18 18:34:01 -07:00
hc-github-team-secure-vault-core
c997ec14c7 backport of commit 695d5b9dbc (#17975)
Co-authored-by: Hamid Ghaf <83242695+hghaf099@users.noreply.github.com>
2022-11-16 14:59:18 -05:00
hc-github-team-secure-vault-core
4796561e3e Backport of [QT-358] Unify CRT and local builder workflows into release/1.12.x (#17912)
* [QT-358] Unify CRT and local builder workflows (#17766)

Here we make the following major changes:

* Centralize CRT builder logic into a script utility so that we can share the
  logic for building artifacts in CI or locally.
* Simplify the build workflow by calling a reusable workflow many times
  instead of repeating the contents.
* Create a workflow that validates whether or not the build workflow and all
  child workflows have succeeded to allow for merge protection.

Motivation

* We need branch requirements for the build workflow and all subsequent
  integration tests (QT-353)
* We need to ensure that the Enos local builder works (QT-558)
* Debugging build failures can be difficult because one has to hand craft the
  steps to recreate the build
* Merge conflicts between Vault OSS and Vault ENT build workflows are quite
  painful. As the build workflow must be the same file and name we'll reduce
  what is contained in each that is unique. Implementations of building
  will be unique per edition so we don't have to worry about conflict
  resolution.
* Since we're going to be touching the build workflow to do the first two
  items we might as well try and improve those other issues at the same time
  to reduce the overhead of backports and conflicts.

Considerations

* Build logic for Vault OSS and Vault ENT differs
* The Enos local builder was duplicating a lot of what we did in the CRT build
  workflow
* Version and other artifact metadata has been an issue before. Debugging it
  has been tedious and error prone.
* The build workflow is full of brittle copy and paste that is hard to
  understand, especially for all of the release editions in Vault Enterprise
* Branch check requirements for workflows are incredibly painful to use for
  workflows that are dynamic or change often. The required workflows have to be
  configured in Github settings by administrators. They would also prevent us
  from having simple docs PRs since required integration workflows always have
  to run to satisfy branch requirements.
* Doormat credentials requirements that are coming will require us to modify
  which event types trigger workflows. This changes those ahead of time since
  we're doing so much to build workflow. The only noticeable impact will be
  that the build workflow no longer runs on pushes to non-main or release
  branches. In order to test other branches it requires a workflow_dispatch
  from the Actions tab or a pull request.

Solutions

* Centralize the logic that determines build metadata and creates releasable
  Vault artifacts. Instead of cargo-culting logic multiple times in the build
  workflow and the Enos local modules, we now have a crt-builder script which
  determines build metadata and also handles building the UI, Vault, and the
  package bundle. There are make targets for all of the available sub-commands.
  Now what we use in the pipeline is the same thing as the local builder, and
  it can be executed locally by developers. The crt-builder script works in OSS
  and Enterprise so we will never have to deal with them being divergent or with
  special casing things in the build workflow.
* Refactor the bulk of the Vault building into a reusable workflow that we can
  call multiple times. This allows us to define Vault builds in a much simpler
  manner and makes resolving merge conflicts much easier.
* Rather than trying to maintain a list and manually configure the branch check
  requirements for build, we'll trigger a single workflow that uses the github
  event system to determine if the build workflow (all of the sub-workflows
  included) have passed. We'll then create branch restrictions on that single
  workflow down the line.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2022-11-15 10:54:32 -07:00
Mike Baum
b7beeda2c1 [QT-182] Fix broken k8s workflow for vault-enterprise (#17629) (#17635) 2022-10-21 16:07:18 -04:00
hc-github-team-secure-vault-core
a7b4bf7740 backport of commit 4a2063ca85 (#17623)
Co-authored-by: Michele Degges <mdeggies@gmail.com>
2022-10-20 10:57:09 -07:00
Jaymala
87e7fc0e54 Add Enos scenarios and workflows for testing 1.12.x (#17605)
* Add Enos scenarios and workflows for testing

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

* Update build workflow for Enos support

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

* Update CRT workflow to enable Enos verify

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

* Add Enos K8s scenarios

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>
2022-10-19 16:36:32 -04:00
hc-github-team-secure-vault-core
e6f997618e backport of commit cd90c64e5c (#17367)
Co-authored-by: Mike Palmiotto <mike.palmiotto@hashicorp.com>
2022-09-29 17:22:39 -04:00
Jaymala
20eddffb60 Refactor Enos scenario matrix generation (#17060)
* Refactor Enos scenario matrix generation

* Generate scenario matrix based on artifact edition to test
* Configure Vault license for testing Ent artifact
* Run Autopilot scenario for Ent

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Cleanup Enos runtime

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Fix syntax

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Use script to generate Enos scenario matrix

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Checkout repo to generate matrix

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Fix matrix syntax

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Fix json format

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Update Enos scenario license condition

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

* Address review feedback

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

* Fix syntax

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

* Update json format for scenario matrix

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

* Address review comments

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>

Signed-off-by: Jaymala Sinha <jaymala@hashicorp.com>
2022-09-14 14:17:07 -04:00
Ryan Cragun
f25ce9cc71 enos: don't fail fast in enos integration matrix (#16960)
Disable the fail-fast feature for the matrix strategy. This prevents a
single failure to cascade to all jobs in the matrix. This prevents cases
where other jobs fail before they're able to clean up resources.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2022-09-01 13:16:17 -06:00
Ryan Cragun
78e0656b55 [QTI-308] Add Enos integration tests (#16760)
Add our initial Enos integration tests to Vault. The Enos scenario
workflow will automatically be run on branches that are created from the
`hashicorp/vault` repository. See the README.md in ./enos a full description
of how to compose and execute scenarios locally.

* Simplify the metadata build workflow jobs
* Automatically determine the Go version from go.mod
* Add formatting check for Enos integration scenarios
* Add Enos smoke and upgrade integration scenarios
  * Add Consul backend matrix support
  * Add Ubuntu and RHEL distro support
  * Add Vault edition support
  * Add Vault architecture support
  * Add Vault builder support
  * Add Vault Shamir and awskms auto-unseal support
  * Add Raft storage support
  * Add Raft auto-join voter verification
  * Add Vault version verification
  * Add Vault seal verification
  * Add in-place upgrade support for all variants
* Add four scenario variants to CI. These test a maximal distribution of
  the aforementioned variants with the `linux/amd64` Vault install
  bundle.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Rebecca Willett <rwillett@hashicorp.com>
Co-authored-by: Jaymala <jaymalasinha@gmail.com>
2022-08-23 13:53:41 -06:00
Christopher Swenson
7cada26a5c Update OSS workflow so not all issues get put in the UI board (#16666)
If we don't guard against pull_request being null, we do a lot of extra
checkout and path filtering, and it ends up putting everything in the UI
board.

I tested this in another repo, and it seems to behave correctly.
2022-08-10 08:53:45 -07:00
Christopher Swenson
820575f9e3 Update project auto-triage to use new token (#16660) 2022-08-09 19:29:39 -04:00
Christopher Swenson
7408e57700 Add Open Source project workflow (#16653)
Add Open Source project workflow

This will help us triage open source issues into our various internal
project boards.

I tested this on a separate repo, and it seems to work.
2022-08-09 17:52:07 -04:00
Christopher Swenson
9a8cbf99cf Update Go to 1.18 (#16522)
Update Go to 1.18

From 1.17.12

1.18.5 was just released, but not all packages have been updated, so I
went with 1.18.4

Co-authored-by: Steven Clark <steven.clark@hashicorp.com>
2022-08-02 10:36:12 -07:00
Steven Clark
bc59160ed6 Update Go version changelog checker to indicate underscore is required (#16528)
- Bringing back mdlalow's work that was done in ENT to OSS updating our
   filename checks for Go version bumps in the changelog checker
2022-08-02 12:41:14 -04:00
Chris Capurso
ba56224a2a Update go to version 1.17.12 (#16336)
* update to go 1.17.12

* update changelog entry

* update readme
2022-07-18 16:28:47 -04:00
Steven Clark
8dbb7f86b7 Update Go to 1.17.11 (#15818)
* Update Go to 1.17.11

 See https://go.dev/doc/devel/release#go1.17.minor for release notes
2022-06-06 13:18:24 -04:00
Tom Proctor
29ee7503b5 Ignore CRT builds on docs branches (#15811) 2022-06-06 16:47:55 +01:00
Nick Cabatoff
88b327c9aa Upgrade to newer backport-assistant and use the new feature BACKPORT_MERGE_COMMIT
This is from https://github.com/hashicorp/backport-assistant/pull/40, so that we backport only the merge commit instead of the individual PR commits. This requires that the PR have been merged using the squash commit strategy, which is our policy. (#15571)
2022-05-24 13:37:53 -04:00
Alexander Scheel
dc98295e4c UBI Containerfile - CRT Enablement (#15272)
* Copy UBI Dockerfile into Vault

This Dockerfile was modeled off of the existing Alpine Dockerfile (in
this repo) and the external Dockerfile from the docker-vault repo:

> https://github.com/hashicorp/docker-vault/blob/master/ubi/Dockerfile

We also import the UBI-specific docker-entrypoint.sh, as certain
RHEL/Alpine changes (like interpreter) require a separate entry script.

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Add UBI build to CRT pipeline

Also adds workflow_dispatch to the CRT pipeline, to allow manually
triggering CRT from PRs, when desired.

Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>

* Update Dockerfile

Co-authored-by: Sam Salisbury <samsalisbury@gmail.com>

* Update Dockerfile

Co-authored-by: Sam Salisbury <samsalisbury@gmail.com>

* Update Dockerfile

Co-authored-by: Sam Salisbury <samsalisbury@gmail.com>

* Update Dockerfile

* Update Dockerfile

* Update build.yml

Allow for both push to arbitrary branch plus workflow dispatch, per Newsletter article.

Co-authored-by: Sam Salisbury <samsalisbury@gmail.com>
2022-05-13 11:21:15 -04:00
claire labry
28ac1a8d04 change action to pull v1 instead of main (#15128) 2022-04-22 14:15:09 -04:00
Chris Capurso
203b1ad789 Add build date (#14957)
* add BuildDate to version base

* populate BuildDate with ldflags

* include BuildDate in FullVersionNumber

* add BuildDate to seal-status and associated status cmd

* extend core/versions entries to include BuildDate

* include BuildDate in version-history API and CLI

* fix version history tests

* fix sys status tests

* fix TestStatusFormat

* remove extraneous LD_FLAGS from build.sh

* add BuildDate to build.bat

* fix TestSysUnseal_Reset

* attempt to add build-date to release builds

* add branch to github build workflow

* add get-build-date to build-* job needs

* fix release build command vars

* add missing quote in release build command

* Revert "add branch to github build workflow"

This reverts commit b835699ecb7c2c632757fa5fe64b3d5f60d2a886.

* add changelog entry
2022-04-19 14:28:08 -04:00
Alexander Scheel
3796e2ab7b Update changelog checker for validating Go toolchain updates (#15060)
Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>
2022-04-15 15:01:07 -04:00
Alexander Scheel
7d7c0160cc Update to Go 1.17.9 (#15043)
Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>
2022-04-14 14:41:05 -04:00
Kevin Wang
5fb93e3e9b chore: remove backport-docs (#14978)
- this is in support of removal of `stable-website`
2022-04-13 09:13:22 -07:00
Ryan Cragun
ac15ddc045 crt: use the latest version of actions-packaging-linux@v1 (#14641)
Use the latest version of the actions-packaging-linux@v1 to ensure that
.deb and .rpm artifacts are generated with release.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2022-03-23 12:45:30 -06:00
swayne275
4e7c463d03 fix ent changelog check (#14312)
* fix ent changelog check

* update for consistency but verify

* undo test

* add logging
2022-03-02 08:54:02 -07:00
Hridoy Roy
113cba8ff6 Fix ent diff check 2022/02/23 (#14237)
* achieve parity with ent in core.go

* add VAULT_DISABLE_LOCAL_AUTH_MOUNT_ENTITIES

* parity in build.yml with ent but without adding the +ent

* pass base version to ldflags

Co-authored-by: Kyle Penfound <kpenfound11@gmail.com>
2022-02-24 11:57:40 -08:00
Nick Cabatoff
db5097dec9 Update to Go 1.17.7 (#14232) 2022-02-23 15:08:08 -05:00
Meggie
2999fb8865 Make backport assistant work with ENT backport tags (#13876)
* Make backport assistant work with ENT backport tags

I want the regexp to include word characters and the plus sign on
enterprise. I'm confused about the levels of escaping required, because
this is a shell env var that gets passed to a go program as a regular
expression. I didn't escape the square brackets because the parens
weren't escaped. I matched what was done previously with the '.'s for
the '+' because I also want that literal, but it was unclear from
playing around with https://regex101.com/ and go regexps whether the
extra backslashes were required for the '+' char.

* Update .github/workflows/backport.yml

Co-authored-by: Nick Cabatoff <ncabatoff@hashicorp.com>

Co-authored-by: Nick Cabatoff <ncabatoff@hashicorp.com>
2022-02-02 16:37:56 -05:00
modrake
77e6d08ff6 add netcgo tag for darwin builds (#13728) 2022-01-20 11:23:37 -08:00
Kevin Wang
7bb4398c35 fix: backport squashes into stable-website (#13521) 2022-01-03 10:23:16 -05:00
Kevin Wang
e9ded2be24 chore: always run 2nd step (#13488) 2021-12-21 18:33:28 -05:00
Meggie
1aca2656f2 Splitting backport-asst GH action (#13461)
This way we can have an OSS action, and an ENT action. We'll be able to
keep the backport-assistant workflows the same on OSS and ENT for normal
PRs, and have a separate labeling system on OSS for docs backports.

We should delete the backport-docs.yml file on ENT.
2021-12-16 18:49:59 -05:00
Kevin Wang
6ef50dcfab feat: add backport.yml (#13163)
* feat: add `backport.yml`

* feat: check releases over labels for latest

* chore: Do not automerge for non `stable-website`

* chore: Do not automerge to not `stable-website`

* Update .github/workflows/backport.yml

Co-authored-by: Meggie <meggie@hashicorp.com>

Co-authored-by: Meggie <meggie@hashicorp.com>
2021-12-15 18:16:35 -05:00
Michele Degges
b9ecffb4c4 Fix for main: Add vault revision to --version cmd (#13428) 2021-12-15 11:38:20 -08:00
Kyle Penfound
40a1c19418 crt main fix for ecr tag (#13425) 2021-12-14 15:53:02 -05:00
Meggie
fcc5f22bea Main go version bump (#13408)
* Go 1.17.2 -> 1.17.5
* Switching to cimg
2021-12-14 11:11:13 -05:00
claire labry
1bec99602c adding CRT to main branch (#13088)
* adding CRT to main branch

* cleanup

* um i dont know how that got removed but heres the fix

* add vault.service

Co-authored-by: Kyle Penfound <kpenfound11@gmail.com>
2021-12-06 11:06:22 -05:00
Meggie
648aa6d937 Should use "change" not "changes" (#13020) 2021-11-02 18:36:11 -04:00
Jim Kalafut
8486cbf099 Update changelog checker to catch invalid "fix" type (#12674) 2021-09-29 14:02:03 -07:00
Jim Kalafut
d341378c63 Rename some references from master to main (#11897)
* Rename some references from master to main

* Update changelog-checker
2021-06-18 11:24:54 -07:00
Meggie
abf1dd776d Adding github action to check for changelog file (#11894)
* Adding github action to check for changelog file

This might have to be slightly different on ENT, where changelog files
should be prefixed with an underscore.

* Fixing comment

* Adding release branches, enhancement more specific

Also tidying my rusty bash

* More descriptive error messages

I also un-nested some if statements.

* Reference this PR too
2021-06-18 11:36:36 -04:00
Zachary Shilton
f7d526c0e6 website: support hidden pages in nav-data (#11528)
* website: bump to docs-page prerelease, support hidden pages

* website: switch to hidden pages approach for docs and api-docs

* website: remove temporary fix for hidden pages, and related check

* website: fix content structure issue with docs/auth/jwt

* website: bump to latest pre-release

* website: bump to stable docs-page, w next-mdx-remote bump

* website: bump to latest markdown-page
2021-05-06 13:32:25 -04:00
Zachary Shilton
20492a144d website: resolve unlinked content (#11391)
* website: temp support for unlinked content

* website: add GitHub check for unlinked content

* website: add hotfix for brand coloration issue
2021-04-22 13:41:07 -04:00
Jamie Finnigan
62d6ebf6d7 enable GitHub code scanning workflow (#10526) 2020-12-10 15:34:34 -08:00