Commit graph

128 commits

Author SHA1 Message Date
Vault Automation
852ac403bb
Root Credential Rotation Workflows (#11647) (#11996)
* Verify vault can generate dynamic credentials and rotate root password

* Added new line at end of the script file

* Remove extra space in sh script

* Remove extra space in sh script

* Created modular structure and other fixes

* linting issues

* lint issues

* Linting issue in verify-secrets.sh

* Linting issue in verify-secrets.sh

* Linting issues in verify-secrets.sh and verify-rotation.sh

* Linting issues

* Linting issues

* Linting issues

* Reverted the changes made to ldap-configs.sh and ldap-verify-configs

* Fix missing newline at end of ldap-verify-configs

Add a newline at the end of the ldap-verify-configs script.

* test ldap changes

* test ldap changes

* reverted the configuration for testing ldap [ci skip]

* reverted the configuration for testing ldap [ci skip]

* Refactoring

* Update ldap.tf

* Update ldap.tf [ci skip]

* Update ldap.tf

* Adding Password policy in ldap secret engine config

* Root credential rotation workflows

* linting issues

* Update test-run-enos-scenario-matrix.yml to check ldap changes

* Update test-run-enos-scenario-matrix.yml reverted

* conflicts resolved

* changes

* Update test-run-enos-scenario-matrix.yml to test ldap changes

* Update test-run-enos-scenario-matrix.yml reverted

* added functions

* linting issues

* linting issues

* linting issues

* Update test-run-enos-scenario-matrix.yml to tst ldap

* Update test-run-enos-scenario-matrix.yml reverted

* review changes

* Update test-run-enos-scenario-matrix.yml to test ldap

* lint issue

* reverted Update test-run-enos-scenario-matrix.yml

* refactor

* Update test-run-enos-scenario-matrix.yml test ldap

* Update verify-rotation.sh

* Update verify-rotation.sh

* Update test-run-enos-scenario-matrix.yml reverted

---------

Co-authored-by: pranaya092000 <pranaya.p@hashicorp.com>
Co-authored-by: Pranaya <Pranaya.P@ibm.com>
Co-authored-by: Luis (LT) Carbonell <lt.carbonell@hashicorp.com>
2026-01-27 13:17:18 +05:30
Vault Automation
5a54a1bb41
LDAP Check out Check in System test Cases Part-1 (#11792) (#11986)
* LDAP Check out Check in System test Cases Part-1

* Test run on pipeline

* Test run on pipeline

* Linter error fix

* Fix linter issue

* Linter error fix

* lint issue

* lint issue

* lint issue

* lint issue

* lint issue

* lint issues

* bug fix

* lint fix

* Run test on pipeline

* Remove file enos.vars.hcl from repository

* Revert "Remove file enos.vars.hcl from repository"

This reverts commit bec9bcd5e1d8b07a662756c2385ca90e035fc125.

* Restore enos.vars.hcl to repository

* CI build failure fix

* CI bug fix

* CI bug fix

* CI bug fix

* CI bug fix

* CI bug fix

* Replace string based error detection with exit code

* Changing pipeline run variable to false

---------

Co-authored-by: KajalKusum <kajal.kusum@hashicorp.com>
Co-authored-by: Kajal Kusum <kajal.kusum@ibm.com>
Co-authored-by: Luis (LT) Carbonell <lt.carbonell@hashicorp.com>
2026-01-27 12:31:51 +05:30
Vault Automation
6841981524
Root Credential Configuration Workflows (#11606) (#11991)
* Verify vault can generate dynamic credentials and rotate root password

* Added new line at end of the script file

* Remove extra space in sh script

* Remove extra space in sh script

* Created modular structure and other fixes

* linting issues

* lint issues

* Linting issue in verify-secrets.sh

* Linting issue in verify-secrets.sh

* Linting issues in verify-secrets.sh and verify-rotation.sh

* Linting issues

* Linting issues

* Linting issues

* Reverted the changes made to ldap-configs.sh and ldap-verify-configs

* Fix missing newline at end of ldap-verify-configs

Add a newline at the end of the ldap-verify-configs script.

* test ldap changes

* test ldap changes

* reverted the configuration for testing ldap [ci skip]

* reverted the configuration for testing ldap [ci skip]

* Refactoring

* Update ldap.tf

* Update ldap.tf [ci skip]

* Update ldap.tf

* Adding Password policy in ldap secret engine config

* Update test-run-enos-scenario-matrix.yml with ldap changes

* Reverted Update test-run-enos-scenario-matrix.yml for testing ldap changes

* conflict changes [ci skip]

* Update test-run-enos-scenario-matrix.yml for ldap testing

* Reverted Update test-run-enos-scenario-matrix.yml

* ldap chnged to MOUNT

* Update test-run-enos-scenario-matrix.yml to test ldap changes

* Update test-run-enos-scenario-matrix.yml reverted

* updated review comments

* updated review comments

* Update test-run-enos-scenario-matrix.yml to test ldap

* Update test-run-enos-scenario-matrix.yml reverted

* Update verify-secrets.sh

---------

Co-authored-by: pranaya092000 <pranaya.p@hashicorp.com>
Co-authored-by: Pranaya <Pranaya.P@ibm.com>
Co-authored-by: Luis (LT) Carbonell <lt.carbonell@hashicorp.com>
2026-01-27 04:48:50 +00:00
Vault Automation
812498cfc6
VAULT-41778 Added enos tests for LDAP auth. (#11773) (#11827)
* VAULT-41778 Fixing linting issues

* Fixing linting issues

* Fixing lint issues

* Fixing lint issues

* Fixing review comments

* Fixing lint issues

* Fix review comments

* Fix review comments

* Fix lint issues

* Fix lint issues

* Fix failing tests

* Fix lint issues

* Fixing failed tests

* Fix lint issues

* Fix lint issues

* Reverted ENOS_VAR_verify_ldap_secrets_engine variable to false

---------

Co-authored-by: rohit-ganthade-hashicorp <rohit.ganthade@hashicorp.com>
Co-authored-by: Rohit Ganthade <rohit.ganthade@gmail.com>
Co-authored-by: Luis (LT) Carbonell <lt.carbonell@hashicorp.com>
2026-01-20 08:16:46 -05:00
Vault Automation
0e0abf8f4e
Root credential rollback workflow (#11616) (#11785)
* Add LDAP secrets engine verification with rollback functionality

- Added LDAP secrets engine read verification module
- Implemented secrets-rollback.sh script for LDAP credential rotation testing
- Updated enos configuration files for LDAP testing support
- Added vault.zip distribution file for testing

* Optimize LDAP rollback script - improve readability and reduce redundancy

* demonstated 3 case of rollback under various situations and maintain system consistancy

* modified ldap.tf file with changes needed for secret-rollback script file

* Fix LDAP secrets engine: remove unused credential_ttl_buffer variable

* Fix shell script formatting for shfmt compliance

* Refactor LDAP secrets rollback script for clarity

* Add LDAP verification configuration to ldap.tf

Added local variable for LDAP login data and configured resource for verifying Vault LDAP configurations.

* Comment out vault_revision in enos.vars.hcl

* Remove unused generate_ldif function from secrets-rollback script

* Make sleep delays configurable in secrets-rollback script

* Add LDAP secrets rollback verification scripts and update ldap.tf configuration

* Update LDAP secrets rollback test scripts

* Update LDAP secrets engine read module

* Fix formatting in ldap.tf - correct indentation

* Change LDAP secrets engine verification to true

* Refactor LDAP rollback script for clarity

Updated script to improve clarity and consistency checks after LDAP root rotation failures.

* Add copyright and license information to script

* Fix formatting in secrets-rollback-transactional.sh

* Change LDAP secrets engine verification to false(reverting to old state)

Tried running root rotation  rollback cases with ldap set true

---------

Co-authored-by: sukanya-prakash <sukanya.p@hashicorp.com>
Co-authored-by: Sukanya P <sukanyap@Sukanyas-MacBook-Pro.local>
Co-authored-by: Sukanya P <sukanyap@mac.n3d-in.ibm.com>
2026-01-16 09:01:56 -05:00
Vault Automation
8a3aa76513
VAULT-41086 Verify vault can generate dynamic credentials and rotate root password. (#11344) (#11681)
* Verify vault can generate dynamic credentials and rotate root password

* Added new line at end of the script file

* Remove extra space in sh script

* Remove extra space in sh script

* Created modular structure and other fixes

* linting issues

* lint issues

* Linting issue in verify-secrets.sh

* Linting issue in verify-secrets.sh

* Linting issues in verify-secrets.sh and verify-rotation.sh

* Linting issues

* Linting issues

* Linting issues

* Reverted the changes made to ldap-configs.sh and ldap-verify-configs

* Fix missing newline at end of ldap-verify-configs

Add a newline at the end of the ldap-verify-configs script.

* test ldap changes

* test ldap changes

* reverted the configuration for testing ldap [ci skip]

* reverted the configuration for testing ldap [ci skip]

* Refactoring

* Update ldap.tf

* Update ldap.tf [ci skip]

* Update ldap.tf

* Update test-run-enos-scenario-matrix.yml to test ldap changes

* reverted Update test-run-enos-scenario-matrix.yml to test ldap changes

---------

Co-authored-by: pranaya092000 <pranaya.p@hashicorp.com>
Co-authored-by: Pranaya <Pranaya.P@ibm.com>
2026-01-09 21:32:54 +00:00
Vault Automation
12e793039a
[UI] - migrate to pnpm for JS package management (#11651) (#11661)
* move from yarn to pnpm for package management

* remove lodash.template patch override

* remove .yarn folder

* update GHA to use pnpm

* add @babel/plugin-proposal-decorators

* remove .yarnrc.yml

* add lock file to copywrite ignore

* add @codemirror/view as a dep for its types

* use more strict setting about peerDeps

* address some peerDep issues with ember-power-select and ember-basic-dropdown

* enable TS compilation for the kubernetes engine

* enable TS compilation in kv engine

* ignore workspace file

* use new headless mode in CI

* update enos CI scenarios

* add qs and express resolutions

* run 'pnpm up glob' and 'pnpm up js-yaml' to upgrade those packages

* run 'pnpm up preact' because posthog-js had a vulnerable install. see https://github.com/advisories/GHSA-36hm-qxxp-pg3

* add work around for browser timeout errors in test

* update other references of yarn to pnpm

Co-authored-by: Matthew Irish <39469+meirish@users.noreply.github.com>
2026-01-09 11:45:14 -06:00
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
47a7482e42
Update missed variable name (#10653) (#10675)
Co-authored-by: Luis (LT) Carbonell <lt.carbonell@hashicorp.com>
2025-11-06 21:52:27 +00:00
Vault Automation
40a70edc03
Add docker based backend to the cloud scenario (#9751) (#10626)
* Add docker based backed

* new line

* Add validation

* Add cloud_docker_vault_cluster

* Unify cloud scenario outputs

* Use min_vault_version consistently across both modules

* random network name for docker

* Add local build for docker

* Use environment instead of backend

* make use of existing modules for docker and k8s

* connect the peers

* formatting

* copyright

* Remove old duplicated code

* use enos local exec

* get version locally

* Dont use local time

* adjust bin path for docker

* use root dockerfile

* get dockerfile to work

* Build docker image from correct binary location

* Fix it... maybe

* Add docker admin token

* whitespace

* formatting and comment cleanup

* formatting

* undo

* Apply suggestion from @ryancragun



* Move build to make

* Default to local

* Revert k8s changes

* Add admint token

* Clean map

* whitespace

* whitespace

* Pull out k8 changes and vault_cluster_raft

* Some cleaning changes

* whitespace

* Naming cleanup

---------

Co-authored-by: Luis (LT) Carbonell <lt.carbonell@hashicorp.com>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-11-06 11:59:40 -07:00
Vault Automation
dbe3e0e5b5
Update perf replication checking script (#10134) (#10500)
* change what performance replication checker script is checking

* fix lint errors

* enable consul backends for ent build samples

* fix up samples

* fix linting

* update release samples

* fix linting again

* output to stderr

Co-authored-by: Josh Black <raskchanky@gmail.com>
2025-11-03 10:49:34 -08: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
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
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
bbb6f1ea24
VAULT-39355: Fixing Enos Dev Scenario Tests (#9162) (#9177)
* VAULT-39355: Fixing Enos Dev Scenario Tests

* setting default for integration_host_state

* fixing lint

Co-authored-by: Tin Vo <tintvo08@gmail.com>
2025-09-08 13:39:10 -07:00
Vault Automation
8009bb93dd
[VAULT-39157] enos(cloud): add basic vault cloud scenario (#8828) (#8847)
* [VAULT-39157] enos(cloud): add basic vault cloud scenario

Add the skeleton of a Vault Cloud scenario whereby we create an HCP
network, Vault Cloud cluster, and admin token.

In subsequent PR's we'll wire up building images, waiting on builds, and
ultimately fully testing the resulting image.



* copywrite: add headers



---------

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-08-22 16:33:16 +00:00
Ryan Cragun
7af25674b4
VAULT-38884, VAULT-38885: enos(rhel): bump 9.5 to 9.6 and add 10.0 (#31500)
Bump RHEL to 9.6 and remove a test that requires a fixture that was
never merged.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-08-15 10:33:55 -06:00
Tin Vo
d5f65e7a16
VAULT-38463: Fix Enos LDAP issue for dev tests (#31407)
Co-authored-by: Tony Wittinger <anwittin@users.noreply.github.com>
2025-08-15 10:28:19 -06:00
Luis (LT) Carbonell
bfa0c41c6d
(enos) generalize container startup script (#31483) 2025-08-14 14:06:05 +00:00
Ryan Cragun
b76a28a1e0
[VAULT-38883] enos: remove Ubuntu 20.04 from the test matrix (#31482)
Ubunut 20.04 is EOL. Per our support and package policies we no longer
need to develop or test for that platform.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-08-12 15:51:30 -06:00
Luis (LT) Carbonell
897938b0a1
(enos) require unseal failure test before re-adding raft nodes in enos workflow (#31446) 2025-08-07 16:48:56 +00:00
Charles Nwokotubo
0187338dd8
[Enos] VAULT-30196: SSH Secrets Engine (#29534) 2025-08-06 19:22:06 -04:00
Luis (LT) Carbonell
4036485739
(enos) Add KMIP Enos Test Suite (#31378)
* (enos) Add KMIP Enos Test Suite

* skip KMIP for CE runs

* reads...

* cleanup variables

* fix
2025-07-29 14:13:28 -04:00
kelly
f0201408b4
VAULT-31185 & 31186/use identity token auth for Artifactory in Vault CE & Ent (#31255)
* removed artifactory_username

* updated artifactory token

* ran enos fmt

* ran terraform fmt

* debugging/ testing - pinned enos version, added null username

* byyyyy
2025-07-28 12:16:25 -04:00
Tin Vo
857e66b3e2
VAULT-35602: Adding Enos OpenLDAP test (#30801)
* VAULT-35602: adding Enos LDAP Tests

* adding godaddy tests

* updating external integration target module name
2025-07-23 13:11:12 -07:00
Luis (LT) Carbonell
c3ee0a26ff
(enos) Update Vault Radar version (#31267) 2025-07-14 11:29:30 -04:00
Josh Black
5e90024b26
Add Enos benchmark scenario (#30675)
* Add Enos benchmark scenario

* add docs on how to run the scenario

* update description again

* see if this works better if we return an empty map

* hopefully disabling telemetry doesn't crash everything now

* yet another try at making telemetry configurable

* swap consul nodes over to be the same as the vault ones

* adjust up IOPs and add a note about it to the docs

* fix missing variables in the ec2 shim

* randomly pick an az for k6 and metrics instances

* enos(benchmark): futher modularize and make target infra cloud agnostic

The initial goal of this was to resolve an issue where sometimes the
one-or-more target instances would attempt to be provisioned in an
avaliability zone that doesn't support it. The target_ec2_instances
module already supports assigning based on instance offerings so I
wanted to use it for all instances. It also has a side effect of
provisioning instances in parallel to speed up overall scenario time.

I ended up futher modularizing the `benchmark` module into several
sub-modules that perform a single task well, and rely on provisioning in
the root module. This will allow us to utilize the module in other
clouds more easily should we desire to do that in the future.

Signed-off-by: Ryan Cragun <me@ryan.ec>

* add copywrite headers

Signed-off-by: Ryan Cragun <me@ryan.ec>

* address some feedback and limit disk iops to 16k by default

Signed-off-by: Ryan Cragun <me@ryan.ec>

---------

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-06-20 09:40:21 -07:00
Ryan Cragun
76df6560e2
enos(auth/ldap): update ldap auth config on random node in cluster (#30813)
Fix a potential race where we might attempt to update the auth before
we've initially configured it. Also, rather than update it on all nodes
we now choose a node in the cluster at random.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-06-02 14:45:52 -06:00
Tin Vo
d7bb0adfe0
VAULT-35642: Adding comments for Enos premade aws role and policy (#30731)
* adding comments for premade aws role and policy

* fixing comments
2025-05-23 12:40:00 -07:00
Tin Vo
58a4353d2c
adding kv policy writers to depends on (#30726) 2025-05-22 11:45:53 -07:00
Luis (LT) Carbonell
403720c1fd
Add non-leader test for enos (#30657)
* Add non-leader test for enos

* Make clearer comments
2025-05-22 11:25:19 -04:00
Luis (LT) Carbonell
ed52371b10
Upgrade FIPS 1402 -> 1403 (#30576)
* Upgrade FIPS 1402 -> 1403

* Clean up

* changelog
2025-05-12 15:01:30 -05:00
Ryan Cragun
025448109d
enos(rhel): remove references to 9.4 again (#30410)
Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-04-26 01:07:32 +00:00
Ryan Cragun
debca85240
enos(rhel): remove references to 9.4 (#30407)
Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-04-25 18:08:04 -06:00
Ryan Cragun
f61bd3230c
enos(artifactory): unify dev and test scenario artifactory metadata into new module (#29891)
* enos(artifactory): unify dev and test scenario artifactory metadata into new module

There was previously a lot of shared logic between
`build_artifactory_artifact` and `build_artifactory_package` as it
regards to building an artifact name. When it comes down to it, both
modules are very similar and their only major difference is searching
for any artifact (released or not) by either a combination of
`revision`, `edition`, `version`, and `type` vs. searching for a
released artifact with a combination of `version`, `edition`, and
`type`.

Rather than bolt on new `s390x` and `fips1403` artifact metadata to
both, I factored their metadata for package names and such into a
unified and shared `artifact/metadata` module that is now called by
both.

This was tricky as dev and test scenarios currently differ in what
we pass in as the `vault_version`, but we hope to remove that
difference soon. We also add metadata support for the forthcoming
FIPS 140-3.

This commit was tested extensively, along with other test scenarios
in support for `s390x but will be useful immediately for FIPS 140-3
so I've extracted it out.

Signed-off-by: Ryan Cragun <me@ryan.ec>

* Fix artifactory metadata before merge

The initial pass of the artifactory metadata was largely untested and
extracted from a different branch. After testing, this commit fixes a
few issues with the metadata module.

In order to test this I also had to fix an issue where AWS secrets
engine testing became a requirement but is impossible unless you exectue
against a blessed AWS account that has required roles. Instead, we now
make those verification opt-in via a new variable.

We also make some improvements to the pki-verify-certificates script so
that it works reliably against all our supported distros.

We also update our dynamic configuration to use the updated versions in
samples.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-04-25 14:55:26 -06:00
Amir Aslamov
10495d77f3
Fix the exposure of sensitive data from inside logs by dropping the entered value inside schema validation function (#30388)
* drop the actual value of the secret entered by the user from printing inside field validation

* add changelog

* upgrade vault radar version to 0.24.0

* feedback

* remove changelog
2025-04-25 15:20:29 -04:00
Tin Vo
4c36d90281
VAULT-30187: Create Enos AWS Engine tests (#29566)
* Testing Enos AWS Engine tests

* Testing Enos AWS Engine tests

* Testing Enos AWS Engine tests

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine test

* testing enos aws engine

* testing enos aws engine

* updating test for enterprise

* updating test for enterprise

* updating test for enterprise

* removing testing output

* removing testing output

* removing testing github action

* fixing lint

* removing sensitive flag

* including sensitive flag due to terraform errors

* removing testing action workflow
2025-04-21 10:30:43 -07:00
Guy J Grigsby
08c5a52b02
disable_mlock must now be explicitly included in config (#29974)
* require explicit value for disable_mlock

* set disable_mlock back to true for all docker tests

* fix build error

* update test config files

* change explicit mlock check to apply to integrated storage only.

* formatting and typo fixes

* added test for raft

* remove erroneous test

* remove unecessary doc line

* remove unecessary var

* pr suggestions

* test compile fix

* add mlock config value to enos tests

* enos lint

* update enos tests to pass disable_mlock value

* move mlock error to runtime to check for env var

* fixed mlock config detection logic

* call out mlock on/off tradeoffs to docs

* rewording production hardening section on mlock for clarity

* update error message when missing disable_mlock value to help customers with the previous default

* fix config doc error and update production-hardening doc to align with existing recommendations.

* remove extra check for mlock config value

* fix docker recovery test

* Update changelog/29974.txt

Explicitly call out that Vault will not start without disable_mlock included in the config.

Co-authored-by: Kuba Wieczorek <kuba.wieczorek@hashicorp.com>

* more docker test experimentation.

* passing disable_mlock into test cluster

* add VAULT_DISABLE_MLOCK envvar to docker tests and pass through the value

* add missing envvar for docker env test

* upate additional docker test disable_mlock values

* Apply suggestions from code review

Use active voice.

Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com>

---------

Co-authored-by: Kuba Wieczorek <kuba.wieczorek@hashicorp.com>
Co-authored-by: Sarah Chavis <62406755+schavis@users.noreply.github.com>
2025-04-17 15:35:40 +02:00
Tin Vo
3f65999d2b
VAULT-35305: fixing enos pki verification (#30223)
* testing enos pki verification

* testing enos pki verification

* fixing enos pki verification test

* fixing enos pki verification test
2025-04-09 16:30:45 -07:00
Tin Vo
76b8cbbf04
fixing enos pki verification issue (#30218) 2025-04-09 13:48:15 -07:00
miagilepner
3011c4328f
VAULT-33008: Enos tests for removed raft nodes (#29214)
* add test

* add as module

* more debugging of scenario

* fixes

* smoke test working

* autopilot test working

* revert local autopilot changes, cleanup comments and raft remove peer changes

* enos fmt

* modules fmt

* add vault_install_dir

* skip removal correctly for consul

* lint

* pr fixes

* passed run

* pr comments

* change step name everywhere

* fix

* check correct field

* remove cluster_name
2025-04-08 10:53:00 +02:00
Ryan Cragun
77e48e837e
enos(cloud-init): fix synchronize-repos (#30013)
`$?` in bash is wonky. When you evaluate an expression in an `if`
statement the `$?` variable is only set the actual value in blocks
scoped in the statement. Therefore, since we rely on it in
synchronize-repos we have to evaluate the rest of the function in a
scope of that statement.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-03-24 16:02:24 -06:00
Ryan Cragun
32f74c1016
enos(install_packages): handle cloud-init exit code 2 and subshells (#29979)
In the `synchronize-repos.sh` script we use `cloud-init status --wait`
to ensure that `cloud-init` is not running when we attempt to sync the
repositories. This is all fine and good except that modern versions of
`cloud-init` can exit with 2 if they encounter an error but recover.
Since we're running the script with `-e` and don't gate the exit with an
expression, the script will fail rather than recover.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2025-03-20 15:32:40 -06:00
Charles Nwokotubo
4cff78b728
[enos] SECVULN-18910: Enforce IMDSv2 on AWS instances (#29964)
* [enos] SECVULN-18910: Enforce IMDSv2 on AWS instances

* lint fix
2025-03-19 21:28:57 +00:00
Charles Nwokotubo
5a85639928
SECVULN-18432: Default to Encrypted Root Volumes (#29911) 2025-03-12 17:16:25 -04:00
Tin Vo
ac3bb7b2d4
VAULT-32188: Enos test for PKI certificates (#29007)
* updating pki test

* updating pki test

* updating pki test

* updating pki script

* resolving conflicts

* adding pki cert verifications

* resolving conflicts

* updating test

* removing comments

* addressing bash formatting

* updating test

* adding description

* fixing lint error

* fixing lint error

* fixing lint issue

* removing unneeded scenario

* resolving conflicts

* debugging pipeline error

* fixing pipeline tests'

* fixing pipeline tests'

* testing smoke test

* fixing pipeline error

* debugging pipeline error

* debugging pipeline error

* debugging pipeline error

* debugging agent test ci failure

* fixing ci errors

* uncomment token

* updating script

* updating hosts

* fixing lint

* fixing lint

* fixing lint

* adding revoked certificate

* undo kv.tf change

* updating cert issuing

* updating issuing certs to include issuer

* updating pki cert verification

* addressing comments

* fixing lint

* fixing lint

* fixing lint

* fixing lint

* updating verify_secrets_engine_read module

* fixing lint

* fixing lint

* fixing lint

* debugging lint

* testing pipeline

* adding verify variables for autopilot

* adding pki read variable for autopilot

* updating vault engine read variables

* addressing comments

* fixing lint

* update test for enterprise

* update pki tests to adapt to enterprise
2025-01-23 11:30:20 -08:00
Tin Vo
d5a7ac2680
adding logic to handle cloud-init error code 2 (#28598)
* adding logic to print failures and retry if there is an cloud-init error

* adding logic to print failures and retry if there is an cloud-init error

* fixing timeout error

* fixing timeout error

* fixing timeout error

* fixing timeout error

* fixing timeout error

* updating retry to 2

* updating cloud init status logic

* updating cloud init status logic

* addressing comments

* addressing comments

* fixing error from sync scriot
2024-11-22 12:06:32 -08:00
Ryan Cragun
3b31b3e939
VAULT-32206: verify audit log and systemd journal secret integrity (#28932)
Verify vault secret integrity in unauthenticated I/O streams (audit log, STDOUT/STDERR via the systemd journal) by scanning the text with Vault Radar. We search for both known and unknown secrets by using an index of KVV2 values and also by radar's built-in heuristics for credentials, secrets, and keys.

The verification has been added to many scenarios where a slight time increase is allowed, as we now have to install Vault Radar and scan the text. In practice this adds less than 10 seconds to the overall duration of a scenario.

In the in-place upgrade scenario we explicitly exclude this verification when upgrading from a version that we know will fail the check. We also make the verification opt-in so as to not require a Vault Radar license to run Enos scenarios, though it will always be enabled in CI.

As part of this we also update our enos workflow to utilize secret values from our self-hosted Vault when executing in the vault-enterprise repo context.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2024-11-22 11:14:01 -07:00
Ryan Cragun
c8e6169d5d
VAULT-31402: Add verification for all container images (#28605)
* VAULT-31402: Add verification for all container images

Add verification for all container images that are generated as part of
the build. Before this change we only ever tested a limited subset of
"default" containers based on Alpine Linux that we publish via the
Docker hub and AWS ECR.

Now we support testing all Alpine and UBI based container images. We
also verify the repository and tag information embedded in each by
deploying them and verifying the repo and tag metadata match our
expectations.

This does change the k8s scenario interface quite a bit. We now take in
an archive image and set image/repo/tag information based on the
scenario variants.

To enable this I also needed to add `tar` to the UBI base image. It was
already available in the Alpine image and is used to copy utilities to
the image when deploying and configuring the cluster via Enos.

Since some images contain multiple tags we also add samples for each
image and randomly select which variant to test on a given PR.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2024-10-07 10:16:22 -06:00
Ryan Cragun
c8c51b1b9d
VAULT-30819: verify DR secondary leader before unsealing followers (#28459)
* VAULT-30819: verify DR secondary leader before unsealing followers

After we've enabled DR replication on the secondary leader the existing
cluster followers will be resealed with the primary clusters encryption
keys. We have to unseal the followers to make them available. To ensure
that we absolutely take every precaution before attempting to unseal the
followers we now verify that the secondary leader is the cluster leader,
has a valid merkle tree, and is streaming wals from the primary cluster
before we attempt to unseal the secondary followers.

Signed-off-by: Ryan Cragun <me@ryan.ec>
2024-09-24 09:13:40 -06:00