Skip to content

Releases: hashicorp/hcdiag

v0.5.5

30 Sep 15:03
Compare
Choose a tag to compare

IMPROVEMENTS:

  • core: Upgrade to go 1.22.7. [GH-360]

v0.5.4

30 Jul 20:18
Compare
Choose a tag to compare

IMPROVEMENTS:

  • core: Upgrade to go 1.21.12. [GH-355]

v0.5.3

06 Mar 22:23
Compare
Choose a tag to compare

IMPROVEMENTS:

  • core: Upgrade to go 1.21.7. [GH-351]

v0.5.3-rc0

06 Mar 18:08
Compare
Choose a tag to compare
v0.5.3-rc0 Pre-release
Pre-release
run go mod tidy

v0.5.2

01 Nov 19:55
Compare
Choose a tag to compare

IMPROVEMENTS:

  • core: Upgrade to go 1.21.3. [GH-346]

v0.5.1

31 May 16:21
Compare
Choose a tag to compare

IMPROVEMENTS:

  • TFE: Change replicated support bundle generation command to avoid the necessity for an app ID variable to be provided. [GH-327]

v0.5.0

01 Feb 20:15
Compare
Choose a tag to compare

SECURITY FIXES:

  • security: bump goutils version to fix security issue" [GH-230]
  • security: update text package (GO-2022-1059), along with other dependencies [GH-250]
  • security: upgrade all dependencies, including the (vulnerable) crypto package" [GH-231]

BREAKING CHANGES:

  • Op: Change the response type from any to map[string]any. Results for every runner are now stored under a key. This change enables Ops to return other ops, keyed by ID, and will allow runners to reference the ops from previous runners' results. [GH-226]
  • output: lowercase standard output filenames: Results.json -> results.json and Manifest.json -> manifest.json [GH-261]

FEATURES:

  • Runners now take timeouts, and these may be set via configuration.
  • Configurable debug runners allow full customization without relying on Command or Shell runners.
  • Consul updates include cli command consul operator raft list-peers and the API endpoint /v1/agent/members.
  • Products now execute default runners in parallele, via a Do runner. Products with many file copies and network requests should see significant improvements.
  • Runners that are skipped or time out are now reported appropriately in the end-of-run report.
  • Sequencing runners (Do and Seq) are now available. Do is used to execute runners in parallel, while Seq runs them in guaranteed order.
  • Vault now includes additional runners for troubleshooting, from the following API endpoints: sys/audit, sys/version-history?list=true, sys/license/status, sys/replication-status.

IMPROVEMENTS:

  • agent: Enable context propagation from agent down through to products, as enablement for runner timeouts/cancellation support. [GH-263]
  • agent: Extract summary report display from agent, and move into the command package. [GH-241]
  • cli: A CLI library framework (mitchellh/cli) has been implemented in hcdiag, so that its user interface is now more consistent with other HashiCorp products. [GH-222]
  • cli: A local diagnostics collection can be triggered using the run subcommand. [GH-222]
  • cli: Add a message at the end of the run to more clearly indicate where the output bundle can be located on the user's system. [GH-241]
  • cli: The application version can now by found using the version subcommand in addition to the --version flag. This is more consistent with other HashiCorp products. [GH-222]
  • consul: add runners for 'consul operator raft list-peers' and /v1/agent/members [GH-248]
  • docs: Add example usage details for new Consul, Vault, and Nomad debug runners. [GH-293]
  • docs: Add project contribution guidelines to the repository, in CONTRIBUTING.md. [GH-214]
  • docs: Restructured readme into several doc files, improved new issue template, and added install and file-splitting docs. [GH-225]
  • docs: add custom config examples, faq content [GH-233]
  • go: Do not use CGO when building hcdiag binaries, so that C libraries won't be required on target machines. [GH-308]
  • improvement: Add "skip" status counts to the summary output at the end of a run" [GH-229]
  • manifest: manifest.json now includes environment metadata, including the command entered to run hcdiag, the username of the user who ran it, and the hostname where it was run. [GH-301]
  • op: Add op statuses "Canceled" and "Timeout" to support the addition of runner cancellation/timeout. [GH-259]
  • op: add op.WalkStatuses(), which recursively walks a tree of result ops to accumulate statuscounts. [GH-245]
  • redact: fix the redact.ID string so that it reads correctly in results.json [GH-266]
  • runner/host: EtcHosts can now timeout with a default of ten seconds. [GH-278]
  • runner: Add ConsulDebug runner to wrap Consul's debug command. [GH-271]
  • runner: Add NomadDebug runner to wrap Nomad's debug command. [GH-272]
  • runner: Add a TFE command to collect the list of active nodes [GH-247]
  • runner: Add more TFE commands for data collection [GH-227]
  • runner: Add new Runner implementation. Do takes a slice of Runners and executes all of them concurrently. [GH-226]
  • runner: Add new Runner implementation: DoSync takes a slice of Runners and executes them in linear order. If the status is not Success, subsequent Runners do not execute. DoSync enables dependent Runner sets. [GH-226]
  • runner: Migrate Filecopy-related functions into runner [GH-219]
  • runner: Shell now takes an optional Timeout value in Go duration form so that long-running executions can be gracefully stopped. [GH-277]
  • runner: add VaultDebug runner to wrap Vault's debug command. [GH-265]
  • runner: change "NewGetter" to "NewGet" for our HTTP GET runner. [GH-267]
  • runner: commander now checks to see if a command exists before attempting to run it [GH-228]
  • runners: Rename DoSync to Seq. [GH-299]
  • runners: The Command runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-270]
  • runners: The Copy runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-292]
  • runners: The Docker log runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-281]
  • runners: The HTTP / GET runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-274]
  • runners: The Journald log runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-284]
  • runners: The default runners within products now run concurrently instead of serially. [GH-255]
  • runners: The host FSTab runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-298]
  • runners: The host IPTables runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-288]
  • runners: The host disk runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-286]
  • runners: The host get runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-285]
  • runners: The host info runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-289]
  • runners: The host network runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-291]
  • runners: The host os runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-295]
  • runners: The host process runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-296]
  • runners: The host procfiles runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-287]
  • runners: The seq runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-299]
  • runners: Update Command runner instantiation to use configuration objects, in order to simplify future feature additions. [GH-269]
  • runners: Update HTTP runner instantiation to use configuration objects, in order to simplify future feature additions. [GH-273]
  • runners: rename runners to drop 'er' endings. [GH-257]
  • update dependencies [GH-256]
  • vault: Vault now includes additional runners for troubleshoot...
Read more

v0.5.0-rc2

31 Jan 15:18
Compare
Choose a tag to compare
v0.5.0-rc2 Pre-release
Pre-release

IMPROVEMENTS:

  • go: Do not use CGO when building hcdiag binaries, so that C libraries won't be required on target machines. [GH-308]

v0.5.0-rc1

27 Jan 21:11
Compare
Choose a tag to compare
v0.5.0-rc1 Pre-release
Pre-release

SECURITY FIXES:

  • security: bump goutils version to fix security issue" [GH-230]
  • security: update text package (GO-2022-1059), along with other dependencies [GH-250]
  • security: upgrade all dependencies, including the (vulnerable) crypto package" [GH-231]

BREAKING CHANGES:

  • Op: Change the response type from any to map[string]any. Results for every runner are now stored under a key. This change enables Ops to return other ops, keyed by ID, and will allow runners to reference the ops from previous runners' results. [GH-226]
  • output: lowercase standard output filenames: Results.json -> results.json and Manifest.json -> manifest.json [GH-261]

FEATURES:

  • Runners now take timeouts, and these may be set via configuration.
  • Configurable debug runners allow full customization without relying on Command or Shell runners.
  • Consul updates include cli command consul operator raft list-peers and the API endpoint /v1/agent/members.
  • Products now execute default runners in parallele, via a Do runner. Products with many file copies and network requests should see significant improvements.
  • Runners that are skipped or time out are now reported appropriately in the end-of-run report.
  • Sequencing runners (Do and Seq) are now available. Do is used to execute runners in parallel, while Seq runs them in guaranteed order.
  • Vault now includes additional runners for troubleshooting, from the following API endpoints: sys/audit, sys/version-history?list=true, sys/license/status, sys/replication-status.

IMPROVEMENTS:

  • agent: Enable context propagation from agent down through to products, as enablement for runner timeouts/cancellation support. [GH-263]
  • agent: Extract summary report display from agent, and move into the command package. [GH-241]
  • cli: A CLI library framework (mitchellh/cli) has been implemented in hcdiag, so that its user interface is now more consistent with other HashiCorp products. [GH-222]
  • cli: A local diagnostics collection can be triggered using the run subcommand. [GH-222]
  • cli: Add a message at the end of the run to more clearly indicate where the output bundle can be located on the user's system. [GH-241]
  • cli: The application version can now by found using the version subcommand in addition to the --version flag. This is more consistent with other HashiCorp products. [GH-222]
  • consul: add runners for 'consul operator raft list-peers' and /v1/agent/members [GH-248]
  • docs: Add example usage details for new Consul, Vault, and Nomad debug runners. [GH-293]
  • docs: Add project contribution guidelines to the repository, in CONTRIBUTING.md. [GH-214]
  • docs: Restructured readme into several doc files, improved new issue template, and added install and file-splitting docs. [GH-225]
  • docs: add custom config examples, faq content [GH-233]
  • improvement: Add "skip" status counts to the summary output at the end of a run" [GH-229]
  • manifest: manifest.json now includes environment metadata, including the command entered to run hcdiag, the username of the user who ran it, and the hostname where it was run. [GH-301]
  • op: Add op statuses "Canceled" and "Timeout" to support the addition of runner cancellation/timeout. [GH-259]
  • op: add op.WalkStatuses(), which recursively walks a tree of result ops to accumulate statuscounts. [GH-245]
  • redact: fix the redact.ID string so that it reads correctly in results.json [GH-266]
  • runner/host: EtcHosts can now timeout with a default of ten seconds. [GH-278]
  • runner: Add ConsulDebug runner to wrap Consul's debug command. [GH-271]
  • runner: Add NomadDebug runner to wrap Nomad's debug command. [GH-272]
  • runner: Add a TFE command to collect the list of active nodes [GH-247]
  • runner: Add more TFE commands for data collection [GH-227]
  • runner: Add new Runner implementation. Do takes a slice of Runners and executes all of them concurrently. [GH-226]
  • runner: Add new Runner implementation: DoSync takes a slice of Runners and executes them in linear order. If the status is not Success, subsequent Runners do not execute. DoSync enables dependent Runner sets. [GH-226]
  • runner: Migrate Filecopy-related functions into runner [GH-219]
  • runner: Shell now takes an optional Timeout value in Go duration form so that long-running executions can be gracefully stopped. [GH-277]
  • runner: add VaultDebug runner to wrap Vault's debug command. [GH-265]
  • runner: change "NewGetter" to "NewGet" for our HTTP GET runner. [GH-267]
  • runner: commander now checks to see if a command exists before attempting to run it [GH-228]
  • runners: Rename DoSync to Seq. [GH-299]
  • runners: The Command runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-270]
  • runners: The Copy runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-292]
  • runners: The Docker log runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-281]
  • runners: The HTTP / GET runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-274]
  • runners: The Journald log runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-284]
  • runners: The default runners within products now run concurrently instead of serially. [GH-255]
  • runners: The host FSTab runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-298]
  • runners: The host IPTables runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-288]
  • runners: The host disk runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-286]
  • runners: The host get runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-285]
  • runners: The host info runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-289]
  • runners: The host network runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-291]
  • runners: The host os runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-295]
  • runners: The host process runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-296]
  • runners: The host procfiles runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-287]
  • runners: The seq runner now takes an optional Timeout value, so that long-running executions can be gracefully stopped. [GH-299]
  • runners: Update Command runner instantiation to use configuration objects, in order to simplify future feature additions. [GH-269]
  • runners: Update HTTP runner instantiation to use configuration objects, in order to simplify future feature additions. [GH-273]
  • runners: rename runners to drop 'er' endings. [GH-257]
  • update dependencies [GH-256]
  • vault: Vault now includes additional runners for troubleshooting, from the following API endpoints: sys/audit, sys/version-history?list=true, sys/license/status, sys/replication-status. [[GH-302](https://github.com/hashicorp/hcdi...
Read more

v0.4.0

26 Aug 16:48
Compare
Choose a tag to compare

BREAKING CHANGES:

  • cli: The default CLI behavior when no product flags are passed in is now to auto-detect installed products and check each one.
    Previously, the behavior was to run only host diagnostics. If you want to still get just host diagnostics, use the flag
    autodetect=false. [GH-152]
  • cli: The previously-deprecated command line flag -all has now been removed. Similar behavior has been implemented with
    product auto-detection, in which all installed HashiCorp products are automatically checked by simply executing hcdiag
    with no flags. [GH-153]
  • runner: The "runner" object in Results.json has been renamed to "params". It is now omitted if the Runner doesn't take params. [GH-150]

IMPROVEMENTS:

  • HCL: Add docker-log and journald-log runners to HCL. [GH-166]
  • README: Replaced references to Seekers with Runners. [GH-154]
  • README: Various improvements to configuration docs. [GH-154]
  • agent: Add agent redactions. [GH-183]
  • agent: Reduce duplication via a type union customRunners and type-specific HCLConfig to Runner map functions. [GH-151]
  • agent: Refactor agent.Setup() by migrating HCL runner setup into each product's New function. [GH-161]
  • core: Upgrade to go 1.18.3. [GH-151]
  • docs: Begin including changelog details into the repo for each pull request. [GH-145]
  • hcl: Add JSON tagging to every hcl field, omitting empty blocks and collections. [GH-204]
  • hcl: Add custom (HCL) agent redactions. [GH-183]
  • hcl: Add redact blocks to product, host, and runners in HCL. [GH-169]
  • hcl: Extract HCL package to prepare for additional HCL configuration options. [GH-159]
  • hcl: Migrate customRunners creation to the HCL package to enable adding more runners to HCL. [GH-159]
  • log/journald: check if journald present on system; otherwise skip [GH-167]
  • network: Do not collect Network Interface hardware addresses. [GH-207]
  • op: Add "skip" status for things that were intentionally skipped. [GH-167]
  • op: Rename seeker to Op. [GH-147]
  • op: Store Runners on Products and change Runners interface to return an Op. [GH-149]
  • product: Add product redactions and pass redactions into runners. [GH-183]
  • redact: Add ApplyMany function. [GH-173]
  • redact: Add redact package and Redact type that allows a regex to be applied to a reader and written to a writer. [GH-171]
  • redact: Add redact.JSON() [GH-177]
  • redact: Add redact.String() and redact.Bytes(). [GH-174]
  • redact: Add redaction flow. [GH-183]
  • redact: Add unit tests to document regular expression capture groups being used in redaction replacement strings. [GH-197]
  • redact: Implement default Terraform Enterprise redactions. [GH-207]
  • redact: Improve testing around redaction of strings and byte slices. [GH-198]
  • redact: Redact email addresses by default. [GH-207]
  • redact: Remove Apply function. [GH-195]
  • runner/host: Enable redaction on host.Disk, host.Info, host.Network, and host.Process runners. [GH-192]
  • runner: Add TFE commands for data collection [GH-186]
  • runner: DockerNotFoundError should result in skipped runner, not error. [GH-201]
  • runner: Redact JSON and string results in Command.Run() [GH-177]
  • runner: Redact results in shell and http runners. [GH-174]
  • runner: The Processes runner now gives more detailed process information: process name, PID, and PPID. [GH-160]
  • runner: The Seeker type has been reworked into the immutable Op struct, and Runners return an Op rather than being stored on a seeker. This should make contributing Runners significantly easier, and simplifies reporting. [GH-150]
  • runner: add redactions pass-through for higher-order host runners. [GH-189]
  • security: bump golang.org/x/sys due to GO-2022-0493 [GH-210]
  • stop using the deprecated io/ioutil package [GH-190]
  • upgrade to 22.04, install gcc and use go 1.18 in vagrant VM [GH-168]
  • util: copyfiles now accepts redactions and scans files line by line to apply many redactions at once. [GH-180]
  • util: migrate copyfiles_test.go to test tables. [GH-185]

BUG FIXES:

  • cli: Error and exit when the first arg to hcdiag is in subcommand form, rather than silently accepting invalid input. [GH-155]
  • hcl: Do not serialize hcl.Redact.Match to json. Ensures matchers are not leaked in Manifest.json. [GH-203]
  • hcl: Ensure redact "literal", which is not implemented yet, doesn't pass HCL validation. [GH-204]
  • runner: Fixed a redaction and reporting issue where HTTPer incorrectly flattened and redacted JSON responses as strings. [GH-215]