Releases: hashicorp/hcdiag
Releases · hashicorp/hcdiag
v0.5.5
v0.5.4
v0.5.3
v0.5.3-rc0
run go mod tidy
v0.5.2
v0.5.1
v0.5.0
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...
v0.5.0-rc2
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
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...
v0.4.0
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 executinghcdiag
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]