Archit Sharma
24c6278e5d
add http collector timeouts; fixes #1064 ( #1310 )
...
* feat(collector): add http method timeouts (#1064 )
Signed-off-by: Archit Sharma <archit@replicated.com >
* feat(collector) add schema updates for the http timeout (#1064 )
Signed-off-by: Archit Sharma <archit@replicated.com >
* feat(collector): refactor HTTP method calls (#1064 )
Signed-off-by: Archit Sharma <archit@replicated.com >
* feat(collector): add tests for HTTP type collector (#1064 )
Signed-off-by: Archit Sharma <archit@replicated.com >
---------
Signed-off-by: Archit Sharma <archit@replicated.com >
2023-09-01 19:08:22 +05:30
Evans Mungai
ff03bfa9cd
chore: make spec loaders internal APIs ( #1313 )
...
* chore: make specs an internal package
* Some minor improvements
* Use LoadClusterSpecs in support bundle implementation
* Remove change accidentally committed
* Use LoadFromCLIArgs in preflight CLI implementation
* Update comment
* Fix edge case where the label selector is an empty string
* Fix failing test
2023-08-30 14:02:30 +01:00
Dexter Yan
b7d5a9876c
feat(collector): add helm collector ( #1309 )
2023-08-28 11:51:57 +12:00
Evans Mungai
96c482a1f5
fix: complete mssql analyser implementation ( #1290 )
...
* fix: complete mssql analyser implementation
* Add mssql analyser tests and mssql collector logs
* Close mssql db after collecting data
2023-08-25 10:38:39 +01:00
Dexter Yan
d730be0fae
feat(redact): use a scan regex for default redact rule of lines to improve cpu usage and reduce time cost ( #1291 )
2023-08-25 15:11:04 +12:00
Dexter Yan
04f69b3f8c
fix(json_compare): solve unorderd slice deep equal ( #1300 )
...
* fix(json_compare): sort slice
* fix(json_compare): improve
* fix(json_compare): remove duplicated tests
---------
Co-authored-by: Evans Mungai <evans@replicated.com >
2023-08-24 11:48:33 +01:00
Dexter Yan
17cbc16e05
feat(support-bundler): add leases, configmaps, service accounts and volume attachments for cluster resources collector ( #1266 )
2023-08-14 18:14:38 +12:00
Dexter Yan
5bb4358f7a
Fix(support-bundle): improve copy from host collector performance by checking daemonset pod FailedMount event and retry ( #1281 )
2023-08-09 22:32:14 +12:00
Pavan Sokke Nagaraj
39314ef200
chore: export error ErrInsufficientPermissionsToRun and func ShowTextResultsStructured ( #1297 )
...
* chore: move ErrInsufficientPermissions to collect
* chore: export func ShowTextResultsStructured
* chore: rename to ErrInsufficientPermissionsToRun
2023-08-08 14:17:15 -04:00
Evans Mungai
f3777bef69
feat: Add Strict flag to LoadSpecs API ( #1279 )
...
* feat: Add Strict flag to LoadSpecs API
Strict flag which can be used to toggle between true
(raising errors if a document is invalid)
and false (ignoring invalid documents, perhaps logging a warning).
* Granular error handling multidocs in secrets and configmaps
* Fix failing test
2023-07-21 10:08:16 +01:00
Dan Jones
8237ac991c
fix: fixes #1270 ( #1271 )
...
* fix: fixes #1270
2023-07-20 13:08:31 +12:00
Evans Mungai
73201c0304
feat: Add regex host analyser ( #1267 )
...
* feat: Add regular expressions host anaylser
This anaylser is the same as the in-cluster text anaylser. You pass in
search expressions to find values in files collected in a bundle
* additional test assertion to check analyser warn
2023-07-18 07:18:53 +12:00
Dexter Yan
531edf42e2
feat(support-bundle): add host certificate collector and analyzer ( #1132 )
2023-07-17 17:05:05 +12:00
Dexter Yan
f69ae77bc3
feat(analyzer): add detailed message for unhealthy pod ( #1261 )
...
* feat(analyzer): add detailed message for unhealthy pod
2023-07-17 08:01:40 +12:00
David Morgan
b02d12ff1e
JSONPath support for json compare analyzer ( #1244 )
...
This adds JSONPath support to the json compare analyzer using
k8s.io/client-go/util/jsonpath implementation.
To preserve backwards compatibility a new attribute, `JsonPath, is added
to the compare analyzer as opposed to changing how `Path` works. Only
one should be set, but preference is given to `Path`, again to maintain
backwards compatibility.
As a convience for users, if the result of running the JSONPath
expression returns a single value, that value is unwrapped from its
enclosing array and used as the comparison with `Value`. This isn't
strictly compatible with how JSONPath works (all results are wrapped in
an array), but it's easier for end users who are expecting a single
result from their JSONPath expression.
2023-07-10 13:02:00 -04:00
Martin Hrabovcin
24822b7f95
fix(collector): cluster-resources PV filename pattern ( #1262 )
2023-07-10 12:53:56 -04:00
Dexter Yan
784918e7ee
feat(preflight): adding warning message when validating the content of preflight and host preflight spec ( #1250 )
2023-07-06 16:10:16 +12:00
Dexter Yan
f0efbf658a
fix(message): solve the terminal UI issue of truncating the message if it is long ( #1242 )
2023-06-28 11:06:15 +12:00
ada mancini
58c428347e
get cluster-resources even if negotiating RBAC fails ( #1243 )
...
* log errors negotiating and set ignoreRBAC when authorizer webhooks would fail
2023-06-27 15:07:08 +12:00
Xav Paice
2c6b1869e2
feat: add test for HostPreflight spec read ( #1227 )
2023-06-22 14:56:19 +01:00
Andrew Lavery
557a1381a9
explicitly test TCPConnectAnalyze unconditional fallthrough behavior ( #1226 )
2023-06-16 15:01:41 +12:00
Dexter Yan
fefe118943
feat(collector): checking existing service account before create running pod ( #1222 )
2023-06-15 15:39:18 +12:00
Dexter Yan
5b1e48258f
fix(collector): solving pod stuck in terminating with CNI issue ( #1196 )
...
* feat(collector): add force delete for pods when they're done with in a collector
2023-06-15 13:59:59 +12:00
ada mancini
03c53cabd6
make ConfigMap collector namespace-optional ( #1212 )
...
* try to load default namespace from kubectl current context
* use ns from kubectl context when no ns is given in the spec
* remove test prints
* Update pkg/collect/configmap.go
Co-authored-by: Diamon Wiggins <38189728+diamonwiggins@users.noreply.github.com >
---------
Co-authored-by: Diamon Wiggins <38189728+diamonwiggins@users.noreply.github.com >
2023-06-13 13:12:17 -04:00
David Rohnow
a5628874b0
Add code to collect cluster endpoint data with cluster-resources collector ( #1219 )
...
added code to collect cluster endpoint data to cluster-resources collector
2023-06-13 16:33:52 +12:00
Ahmed Mousa
620fa75eb5
feat: add k8s custom metrics collector ( #1174 )
...
Collector that collects custom k8s metrics from custom.metrics.k8s.io/v1beta1/ and saves them in the bundle under the /metrics directory
2023-06-09 10:26:03 +01:00
David Rohnow
60d5b686cc
Add Daemonset collection to cluster_resources ( #1213 )
...
* added daemonset collection to cluster_resources
* squash commit to remove commit that was submitted by root
2023-06-08 16:05:54 -07:00
Dexter Yan
f9dbccd354
feat(support-bundle): add support labels for troubleshoot.io and troubleshoot.sh ( #1203 )
2023-06-08 16:05:35 +01:00
Evans Mungai
08a1075d82
chore: remove unnecessary logrus dependency ( #1214 )
...
The troubleshoot project uses klog logging library. There is room for
only one library unfortunately. Sorry logrus :)
2023-06-08 10:43:08 -04:00
danj-replicated
0d1e23651a
Add ability for Cluster resources analyzer to do number and size comparison ( #1210 )
...
* make CR analyzer compare ints and sizes
* schemas
* typo
* more comments
* tests for cluster resources analyzer doing number/size comparisons
* switch from humanize to k8s size parsing
* schemas
---------
Co-authored-by: Nathan Sullivan <nathans@replicated.com >
2023-06-08 07:51:11 -04:00
Evans Mungai
401dfe2c57
feat: add loader APIs to load specs from raw troubleshoot spec ( #1202 )
...
* feat: add loader APIs to load specs from a list of yaml docs
The change introduces a loader package that will contain loader
public APIs. The aim of these APIs will be to, given any source of
troubleshoot specs, the loaders will fetch the specs and parse out
all troubleshoot objects that can be extracted.
* Some refactoring
* Some more changes
* More changes caught when testing vendor portal
* Add tests and rename Troubleshoot kinds struct
* Additional test
* Handle ConfigMap and Secrets with multiple specs in them
* Fix failing test
* Revert multidoc split implementation
* Fix merge conflict
* Change LoadFromXXX functions to a single LoadSpecs function
2023-06-06 16:48:29 -04:00
Xav Paice
a3b7975690
Update the preflight secret label to troubleshoot.sh/kind ( #1204 )
...
Partial-fix: #1070
Changes the default label for preflights to troubleshoot.sh/kind: preflight
2023-06-06 07:19:49 +12:00
Dexter Yan
2b8e3fb6bb
fix(collector): removed unused name in certificates collector ( #1200 )
2023-06-01 09:46:34 +01:00
Diamon Wiggins
3b61b3025e
Add regex to clusterResources analyzer ( #1189 )
...
* similar to the textAnalyze analyzer, adds support to evaluate the value at the specified yamlPath with regex or regexGroups
* fixes a typo in the shorthand name used for searching for cluster resource PVC objects
2023-05-30 17:53:03 -04:00
Dexter Yan
830e357b48
fix(analyzer): fix clusterResource analyzer always uses the first object found ( #1185 )
...
* fix(analyzer): fix clusterResource analyzer always uses the first object found
2023-05-29 17:26:37 +12:00
Dexter Yan
acb1099bda
feat(analyzer): add certificate analyzer ( #1128 )
...
* feat(analyzer): add cert analyzer
* feat(analyzer): add certificates tests
2023-05-29 16:40:10 +12:00
Diamon Wiggins
091c4dc134
Capture runPod status and events before deleting the pod ( #1172 )
...
* adding savepoddetails function to capture runpod describe output
* update output paths for static-hi.log
---------
Co-authored-by: Evans Mungai <evans@replicated.com >
2023-05-29 10:37:27 +12:00
Evans Mungai
1939f5464d
fix (support-bundle): Ensure specs are merged correctly ( #1181 )
...
When the support-bundle cli is used with --load-cluster-specs,
not all discovered specs are merged into the spec used to collect
data.
Fixes : #1179
2023-05-26 13:43:57 +01:00
Martin Hrabovcin
51f626b994
fix(collector): cluster resource file names ( #1165 )
...
* fix(collector): use correct path for custom resources
* fix(collector): cluster role resource names
2023-05-23 10:11:45 +01:00
Martin Hrabovcin
e22c7d7eca
feat(collector): add priority class resources ( #1159 )
...
* feat(collector): add priority classes resources
* chore: use priorityclasses filename
2023-05-18 12:21:06 +01:00
Ethan Mosbaugh
af4cc8a08a
fix: simplify logs collector by removing goroutine which had a concurrency bug ( #1155 )
...
* fix: logs collector timeout prevent concurrent map iteration and map write
* remove goroutine
* log pod logs timeout
2023-05-18 07:43:47 +01:00
Nathan Sullivan
6de79afc35
Search stdin for secrets with preflight specs ( #1153 )
...
* we can now read preflight specs out of secrets, either from stdin or file input
* moved spec read logic out into its own function so it can be unit
tested easier
* added more comprehensive unit testing on the different ways we can read in specs
2023-05-16 11:44:54 +10:00
Nathan Sullivan
3548b46cfc
support multiple exit codes based on what went wrong/right ( #1135 )
...
0 = all passed, 3 = at least one failure, 4 = no failures but at least 1 warn
1 as a catch all (generic errors), 2 for invalid input/specs etc
ref https://github.com/replicatedhq/troubleshoot/issues/1131
docs https://github.com/replicatedhq/troubleshoot.sh/pull/489
2023-05-10 09:33:13 +10:00
Dexter Yan
2484b3b1eb
feat(certificate): support array of certificates from configmaps and secrets ( #1119 )
...
feat(certificate): support array of certificates from configmaps and secrets
2023-04-26 12:07:32 +12:00
Ethan Mosbaugh
ae0cbc7044
fix(hostpreflight): tcploadbalancer analyzer should use first outcome ( #1130 )
2023-04-19 12:58:31 -07:00
Ethan Mosbaugh
6493064e45
Revert "feat: Add partition type info to block device collector" ( #1121 )
...
Revert "feat: Add partition type info to block device collector (#1063 )"
This reverts commit 6eb9c7096f .
2023-04-18 13:25:45 +12:00
danj-replicated
f692635054
Add stdin and multidoc support to preflight. ( #1114 )
...
* add - url keyword for stdin
* add basic multidoc support
* filter on preflight kind
* add e2e test for stdin
2023-04-14 11:21:45 +12:00
David Rohnow
64d5330ae5
certificate collector ( #1112 )
...
* adding pkg/collect/certificates.go and pkg/collect/certificates_test.go files
* adding collector.go and collector_shared.go files
* ran make schemas
* update zz_generated.deepcopy.go
Co-authored-by: Dexter Yan <yanshaocong@gmail.com >
Co-authored-by: Chris Sanders <sanders.chris@gmail.com >
Co-authored-by: Xav Paice <xav@replicated.com >
2023-04-12 14:34:02 +12:00
Ethan Mosbaugh
b020c76977
fix: HostPreflight tcpConnect analyzer should use first matching outcome ( #1115 )
2023-04-11 15:22:05 -04:00
Diamon Wiggins
9a457f7f72
fix/clusterPodStatuses: only process when conditional if specified ( #1088 )
...
* only process when conditional if specified
* adding tests for cluster pod status analyzer
* use klog instead of fmt for logging
* add additional tests for warn and more operators
---------
Co-authored-by: Camila Macedo <7708031+camilamacedo86@users.noreply.github.com >
2023-04-06 09:17:33 +01:00