521 Commits

Author SHA1 Message Date
Vault Automation
7b470708ac
[VAULT-41521] enos(ec2_infor): update scenario base images (#11508) (#11533)
Update the base images for all scenarios:

- RHEL: upgrade base image for 10 to 10.1
- RHEL: upgrade base image for 9 to 9.7
- SLES: upgrade base image for 15 to 15.7
- SLES: add SLES 16.0 to the matrix
- OpenSUSE: remove OpenSUSE Leap from the matrix

I ended up removing OpenSUSE because the images that we were on were rarely updated and that resulted in very slow scenarios because of package upgrades. Also, despite the latest release being in October I didn't find any public cloud images produced for the new version of Leap. We can consider adding it back later but I'm comfortable just leaving SLES 15 and 16 in there for that test coverage.

I also ended up fixing a bug in our integration host setup where we'd provision three nodes instead of one. That ought to result in many fewer instance provisions per scenario. I also had to make a few small tweaks in how we detected whether or not SELinux is enabled, as the prior implementation did not work for SLES 16.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-12-22 14:17:51 -07:00
Vault Automation
59b23f628f
use 'stable' instead of .go-version for the security scanner (#11374) (#11463)
* use 'stable' instead of .go-version for the security scanner

if we don't do this, the security scanner might not run because it's
using a different version of Go than what we have on whatever release
branch this is running on.

* update branches the scanner runs on

Co-authored-by: Josh Black <raskchanky@gmail.com>
2025-12-19 15:45:41 -08:00
Vault Automation
d25f12d943
pipeline: pin actions to latest versions (#11453) (#11458)
None of these appear to have any changes in behavior we ought to be
concerned with.

- actions/cache: https://github.com/actions/cache/releases/tag/v5.0.1
  Upgrade to Node 24

- actions/upload-artifact: https://github.com/actions/upload-artifact/releases/tag/v6.0.0
  Upgrade to Node 24

- actions/checkout: https://github.com/actions/checkout/releases/tag/v6.0.1
  Bug fix for persisted-credentials changes in 6

- actions/setup-node: https://github.com/actions/setup-node/releases/tag/v6.1.0
  Updates internal actions and removes always-auth config

- actions/download-artifact: https://github.com/actions/download-artifact/releases/tag/v7.0.0
  Upgrade to Node 24

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-12-18 13:19:23 -07:00
Vault Automation
d5c5a3f1a8
mend: reintroduce mend scanner but request amd64 runners and update pinned actions (#11386) (#11387)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-12-16 18:36:22 +00:00
Vault Automation
cebee05e90
lint: don't check out the repository twice (#11360) (#11376)
Fix an incompatibility where we check out the repository with
checkout@v6 and then attempt to check it out again at checkout@v5 in the
set-product-version action.

* update enos directory to trigger lint

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-12-15 16:45:27 -07:00
Vault Automation
f7accefc40
VAULT-38917: adding verify prod release binaries in release procedure yaml (#10937) (#11200)
* adding verify prod release binaries in release procedure yaml

* adding verify prod release binaries in release procedure yaml

* fixing lint

* fixing lint

* fixing lint

* fixing lint

* fixing lint

* fixing lint

* adding list binary versions

* adding list binary

* adding list binary

* adding unit tests

* adding comments to tests and scripts

* adding comments to tests and scripts

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* fixing conflicts

* testing pipeline

* update verification logic

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* adding slack notification

* adding slack notification

* adding slack notification

* adding slack notification

* adding slack notification

* adding slack notification

* adding slack notification

* adding slack notification

* adding slack notification

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* addressing comment

Co-authored-by: Tin Vo <tintvo08@gmail.com>
2025-12-15 13:53:00 -08:00
Vault Automation
f7c646ceff
reference aws-account-id instead of fetching it again (#11330) (#11352)
Co-authored-by: Josh Black <raskchanky@gmail.com>
2025-12-15 11:37:30 -08:00
Vault Automation
50c9fd55e5
Workaround backport for docker 29 ce main (#11177)
Co-authored-by: LT Carbonell <lt.carbonell@hashicorp.com>
2025-12-12 19:13:57 +00:00
Vault Automation
782f19d644
actions: add fallback ondemand runners types (#11142) (#11149)
One feature of ondemand self-hosted runners is that we don't contend
with other repositories for self-hosted runners. The penalty for using
ondemand is that there are no hot runner pools, so provisioning time
is usually around 30 second but in worst can hit the two minutes mark.
These numbers rely on immediately capacity in the default region
(us-west-2). Every once in a while we see runner provisioning times for
ondemand CI runners go into the tens of minutes, presumably due to
capacity issues. Instead of waiting around for a runner that will
fulfill our single instance type, we'll add a few fallback types we can
attempt if we hit a capacity snag on our preferred machine.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-12-04 16:37:07 +00:00
Vault Automation
8172cf232f
actions: pin to latest actions (#11057) (#11069)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-12-03 18:15:05 +00:00
Vault Automation
14e7e827a8
actions: remove ent go.mod handling (#10655) (#10668)
Co-authored-by: John-Michael Faircloth <fairclothjm@users.noreply.github.com>
2025-11-10 13:17:52 -05:00
Vault Automation
4b24481e2d
ci(slack): remove trailing character and normalize emoji (#10583) (#10594)
This was started to remove a trailing " that would show up when UI tests
failed. Since I was here I normalized our emoji to use `flashing-light`
instead of `rotating_light` because the former is rendered better in the
new Slack instance.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-11-05 18:32:50 +00:00
Vault Automation
da6122ce5f
Backport actions(setup-enos): update action-setup-enos to pull in enos 0.0.34 into ce/main (#10572)
* actions(setup-enos): update action-setup-enos to pull in enos 0.0.34 (#10561)

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-11-04 15:22:59 -07:00
Vault Automation
89347f9705
install sqlc before building vcm (#10232) (#10531)
* install sqlc before building vcm

* make a meaningless change to trigger CI

* turn off the go.work file

* remove test comment

Co-authored-by: Josh Black <raskchanky@gmail.com>
2025-11-03 23:04:35 +00:00
Vault Automation
66dad8d0fa
actions(slack): quote yaml strings that start with ':' (#10477) (#10485)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-29 14:47:33 -07:00
Vault Automation
2c95f73ca7
[VAULT-40166] go: check go.mod drift on changes to ce/branches
When a pull request is created against a CE branch and it has changed any files in the `gotoolchain` group we'll automatically trigger the diff for every Go module file in the repo against the equivalent in the corresponding enterprise branch. If there's a delta in like configuration it will automatically fail the `build/ce-checks` job. It will also write a complete explanation of the diff to the step output and also to the `build/ce-checks` job step summary.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-28 13:26:46 -06:00
Vault Automation
e6c710aef4
actions: pin to latest actions (#10407) (#10417)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-27 17:46:04 -06:00
Vault Automation
0c6c13dd38
license: update headers to IBM Corp. (#10229) (#10233)
* license: update headers to IBM Corp.
* `make proto`
* update offset because source file changed

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-21 15:20:20 -06:00
Vault Automation
4ccdc69cad
[VAULT-40033] Migrate Slack notifications to ibm-hashicorp workspace (#10205) (#10207)
Migrate all slack notifications to the `ibm-hashicorp` workspace. This
required creating three new `incoming-webhook` configurations which are
capable of posting into three different Slack channels, depending on the
workflow.

As they all use the `incoming-webhook` event, many of our integrations
had to be migrated from `chat.postMessage` and those changes are
reflected here.

Of note, there are lots of changes to the `release-procedure-ent`
workflow as it has by far the most uses of the Slack integrations. In
some cases it was to appease `actionlint` issues, in others I made small
idiomatic tweaks. I translated all of the payload messages to YAML
instead of JSON, which fits better into our existing workflows and also
because most of the payload messages were invalid JSON all together.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-20 09:48:01 -06:00
Violet Hynes
afeb2e0985
Manual backport for PR 10106 (#10123) 2025-10-14 18:04:41 +00:00
Vault Automation
18d0d939a3
pin actions workflows to latest versions (#10035) (#10053)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-10 18:17:42 +00:00
Vault Automation
fed6e94d4c
actions(doormat): yank doormat action and use configure-aws everywhere (#9999) (#10000)
Our service users now have compatible use-case's that allow us to use
the service user credentials everywhere. Drop `action-doormat` so that
our workflows execute correctly in the `hashicorp/vault` context.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-08 15:34:53 -06:00
Vault Automation
334683e5c9
[VAULT-39890] actions(copy-pr): enforce license/cla before triggering copy workflow (#9795) (#9919)
* [VAULT-39890] pipeline(github): add list commit-statuses command
* [VAULT-39890] pipeline(github): add check commit-status command
* [VAULT-39890] actions(copy-pr): enforce license/cla before triggering copy workflow

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-07 16:15:14 +00:00
Vault Automation
650efb32f6
SECVULN-22299: Transition AWS Auth to use the Doormat GitHub Action (#9768) (#9877)
* SECVULN-22299: Use Doormat GitHub Action in CI

* remove step id

* remove step id

* grab aws account id in separate step

* add oidc perms

* add perms for other workflows

* remove usages of aws login creds

* add conditions for CE vs ent

* fix lint

* test perms

* add perms

* fix metadata

* update role arn

* use ci role arn

* print secret

* try again

* try workaround

* update all arns

* remove echo step

* cleanup

* cleanup

* address feedback

* re-add perms

* use service account

* fix conflict

* address feedback

* add read permission

* use write-all

* expose role arn

Co-authored-by: Charles Nwokotubo <charles.nwokotubo@hashicorp.com>
2025-10-06 16:06:44 +00:00
Vault Automation
b3f6bbd78d
CI: fix plugin-update.yaml PR create base branch (#9726) (#9731)
Co-authored-by: John-Michael Faircloth <fairclothjm@users.noreply.github.com>
2025-09-30 11:32:48 -05:00
Vault Automation
7e2f411859
actions(install-tools): include os and arch in cache key (#9691) (#9698)
* actions(install-tools): include os and arch in cache key

When caching and/or restoring our tools we should include the os and
arch in the key to ensure that we don't accidentally download the wrong
tools on different runners.

We also update the nightlies to specifically cache arm64 before running
the tests.

* actionlint: add arm self-hosted runner keys

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-26 18:12:56 +00:00
Vault Automation
94b4d7ca17
actions: use self-hosted runners in hashicorp/vault-enterprise (#9664) (#9683)
* actions: use self-hosted runners in hashicorp/vault

While it is recommended that we use self-hosted runners for every
workflow in private and internal accounts, this change was primarily
motivated by different runner types using different cache paths. By
using the same runner type everywhere we can avoid double caches of the
internal Vault tools.

* disable the terraform wrapper in ci-bootstrap to handle updated action

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-26 10:12:43 -06:00
Vault Automation
a7708ac305
CI: fix plugin-update base branch (#9669) (#9682)
Co-authored-by: John-Michael Faircloth <fairclothjm@users.noreply.github.com>
2025-09-26 09:58:04 -06:00
Vault Automation
7aa60ff337
CI: add base-branch input to plugin-update.yaml (#9644) (#9647)
Co-authored-by: John-Michael Faircloth <fairclothjm@users.noreply.github.com>
2025-09-25 15:45:13 -06:00
Vault Automation
853cbe1ac9
[VAULT-39671] tools: use github cache for all tools (#9622) (#9634)
* [VAULT-39671] tools: use github cache for external tools

We currently have some ~13 tools that we need available both locally for
development and in CI for building, linting, and formatting, and testing Vault.
Each branch that we maintain often uses the same set of tools but often pinned
to different versions.

For development, we have a `make tools` target that will execute the
`tools/tool.sh` installation script for the various tools at the correct pin.
This works well enough but is cumbersome if you’re working across many branches
that have divergent versions.

For CI the problem is speed and repetition. For each build job (~10) and Go test
job (16-52) we have to install most of the same tools for each job. As we have
extremely limited Github Actions cache we can’t afford to cache the entire vault
go build cache, so if we were to build them from source each time we incur a
penalty of downloading all of the modules and building each tool from source.
This yields about an extra 2 minutes per job to install all of the tools. We’ve
worked around this problem by writing composite actions that download pre-built
binaries of the same tools instead of building them from source. That usually
takes a few seconds. The downside of that approach is rate limiting, which
Github has become much more aggressive in enforcing.

That leads us to where we are before this work:
  - For builds in the compatibility docker container: the tools are built from
    source and cached as separate builder image layer. (usually fast as we get
    cache hits, slow on cache misses)
  - For builds that compile directly on the runner: the tools are installed on
    each job runner by composite github actions (fast, uses API requests, prone
    to throttling)
  - For tests, they use the same composite actions to install the tools on each
    job. (fast, uses API requests, prone to throttling)

This also leads to inconsistencies since there are two sources of truth: the
composite actions have their own version pin outside of those in `tools.sh`.
This has led to drift.

We previously tried to save some API requests and move all builds into
the container. That almost works but docker's build conatiner had a hard
time with some esoteric builds. We could special case it but it's a bandaid at
best.

A prior version of this work (VAULT-39654) investigated using `go tool`, but
there were some showstopper issues with that workflow that make it a non-starter
for us. Instead, we’ll attempt to use more actions cache to resolve the
throttling. This will allow us to have a single source of truth for tools, their
pins, and afford us the same speed on cache hits as we had previously without
downloading the tools from github releases thousands of times per day.

We add a new composite github action for installing our tools.
  - On cache misses it builds the tools and installs them into a cacheable path.
  - On cache hits it restore the cacheable path.
  - It adds the tools to the GITHUB_PATH to ensure runner based jobs can find
    them.
  - For Docker builds it mounts the tools at `/opt/tools/bin` which is
    part of the PATH in the container.
  - It uses a cache key of the SHA of the tools directory along with the
    working directory SHA which is required to deal with actions/cache
    issues.

This results in:
  - A single source of truth for tools and their pins
  - A single cache for tools that can be re-used between all CI and build jobs
  - No more Github API calls for tooling. *_Rate limiting will be a thing of
    the past._*

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-25 14:26:02 -07:00
Vault Automation
08db156cdb
actions(cache): update to v4.3.0 (#9626) (#9629)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-25 17:11:56 +00:00
Vault Automation
43c52cce1c
Update PR template (#9511) (#9583)
Co-authored-by: John-Michael Faircloth <fairclothjm@users.noreply.github.com>
2025-09-24 15:07:14 -05:00
Vault Automation
5d9b28301a
Fix plugin update github action truthiness check (#8814) (#8818)
Co-authored-by: John-Michael Faircloth <fairclothjm@users.noreply.github.com>
2025-09-23 11:20:21 -06:00
Vault Automation
0340681792
CI: add link to plugin tag in changelog entry (#9352) (#9360)
Co-authored-by: John-Michael Faircloth <fairclothjm@users.noreply.github.com>
2025-09-23 11:17:13 -06:00
Vault Automation
3dace284b9
pipeline(changed-files): add 'github' changed file group (#9512) (#9543)
Add a new `github` changed file group that includes everything in the
`.github` directory. Further refine the `pipeline` group to only
include scripts, workflows, and actions files in `.github`. We also move
the `CODEOWNERS` file into `.github/` to simplify `github` grouping.

As `build` logic responds to changes to the `pipeline` group this will
result in no longer building and testing everything for simple
changes in `github` that don't affect the pipeline.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-22 19:38:10 +00:00
Vault Automation
cccc6f9e4c
Backport [VAULT-39160] actions(hcp): add support for testing custom images on HCP into ce/main (#9433)
[VAULT-39160] actions(hcp): add support for testing custom images on HCP (#9345)

Add support for running the `cloud` scenario with a custom image in the
int HCP environment. We support two new tags that trigger new
functionality. If the `hcp/build-image` tag is present on a PR at the
time of `build`, we'll automatically trigger a custom build for the int
environment. If the `hcp/test` tag is present, we'll trigger a custom
build and run the `cloud` scenario with the resulting image.

* Fix a bug in our custom build pattern to handle prerelease versions.
* pipeline(hcp): add `--github-output` support to `show image` and
  `wait image` commands.
* enos(hcp/create_vault_cluster): use a unique identifier for HVN
  and vault clusters.
* actions(enos-cloud): add workflow to execute the `cloud` enos
  scenario.
* actions(build): add support for triggering a custom build and running
  the `enos-cloud` scenario.
* add more debug logging and query without a status
* add shim build-hcp-image for CE workflows

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-19 09:00:55 -07:00
Vault Automation
09b48c60b1
Revert "move all builds into docker container (#9264)" (#9426) (#9440)
This reverts commit a55e884517a7c1f25e097a52e1555d4f81137068.

Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-18 18:04:41 +00:00
Vault Automation
8debe72733
VAULT-39598: Fixing Enos Dev Scenario KMIP Error (#9375) (#9396)
* testing kmip enos dev fix

* updating kmip

* updating kmip

* updating kmip

* updating kmip

* updating description

Co-authored-by: Tin Vo <tintvo08@gmail.com>
2025-09-17 11:57:29 -07:00
Vault Automation
67b3e53325
move all builds into docker container (#9264) (#9384)
* move all builds into docker container

* pipe inputs.cgo-enabled into the right place

Co-authored-by: Josh Black <raskchanky@gmail.com>
2025-09-16 22:26:06 +00:00
Vault Automation
9e30dac947
updated vault ci access key name (#9238) (#9281)
Co-authored-by: kelly <69541941+kporter101@users.noreply.github.com>
2025-09-11 17:07:56 -04:00
Vault Automation
bbb95b62e0
actions: update pins (#9272) (#9273)
Update our pins to the latest version. Essentially all of these are
related actions needing to run on Node 24. Both our self-hosted and the
Github hosted runners that we use are all on a new enough version of
actions/runner that it shouldn't be a problem.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-11 18:14:00 +00:00
Vault Automation
a73eca5759
Backport license: add support for publishing artifacts to IBM PAO into ce/main (#9208)
* license: add support for publishing artifacts to IBM PAO (#8366)

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: brian shore <bshore@hashicorp.com>
Co-authored-by: Ethel Evans <ethel.evans@hashicorp.com>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-11 11:25:15 -06:00
Vault Automation
9eb24c2eb2
updated aws key id and secret (#9136) (#9202)
Co-authored-by: kelly <69541941+kporter101@users.noreply.github.com>
2025-09-10 12:31:00 -04:00
Vault Automation
c57faf2236
VAULT-38463: Disable ENOS LDAP test (#9059) (#9172)
* VAULT-38463: Fix ldap failure for smoke test

* VAULT-38463: Fix ldap failure for smoke test

Co-authored-by: Tin Vo <tintvo08@gmail.com>
2025-09-08 10:15:26 -07:00
Vault Automation
1636e247b2
retry the build-push-action once if it fails (#9011) (#9119)
* retry the build-push-action once if it fails

* just copy/paste instead of using yaml anchors

Co-authored-by: Josh Black <raskchanky@gmail.com>
2025-09-04 22:21:04 +00:00
Vault Automation
5909d3f4b7
actions(gofumpt): pin to gofumpt v0.8.0 (#9069) (#9075)
As part of this we also update the pin of gotestsum to 1.12.3 to allow
for building it with Go 1.25.

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-09-03 16:26:30 +00:00
Vault Automation
e47c5b5e39
UI: hackweek: add copilot instructions to ui repo (#8680) (#8728)
* add copilot instructions to repository

use copilot resources example repo (https://github.com/hashicorp/copilot-resources/tree/main)

* address PR comments (https://github.com/hashicorp/vault/pull/31361)

Co-authored-by: Shannon Roberts (Beagin) <beagins@users.noreply.github.com>
2025-09-02 14:29:45 -07:00
Vault Automation
3c459f7dca
[VAULT-39267] actions(slack): migrate to v2 action (#8964) (#8990)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-08-29 10:33:51 -04:00
Vault Automation
8d2cb89704
VAULT-38463: Addressing ldap pipeline failure (#8817) (#8911)
* VAULT-38463: Addressing ldap pipeline failure

* testing ldap tests

* testing ldap tests

* debugging ldap issue

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* testing pipeline

* debugging ldap failure

* debugging ldap failure

* debugging pipeline

* adding dependency for verify secrets

* removing extra code

* undo changes

* undo changes

Co-authored-by: Tin Vo <tintvo08@gmail.com>
2025-08-26 12:46:36 -07:00
Vault Automation
1d3b51b914
[VAULT-39208]: actions: update action pins (#8864) (#8865)
Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-08-22 22:37:38 +00:00