Copy Files and Directories from Hosts
The copyFromHost collector copies files and directories from all hosts in the cluster.
copyFromHost collector can be used to copy files or an entire directory from hosts and include the contents in the collected data.
This collector will collect files from all hosts in the cluster.
This collector can be included multiple times to copy different files or directories.
In addition to the shared collector properties, the
copyFromHost collector accepts the following parameters:
The namespace where the DaemonSet will be created. If not specified, it will assume the "current" namespace that the kubectl context is set to.
The path to store the collected files.
This is optional, and if not provided will default to
The image to use for the pods controlled by this DaemonSet.
This image should be accessible to the nodes in the cluster.
tar must be available in the image.
Location of the files on the host systems.
By default the archive will not be extracted. Set to
true to extract.
A duration that will be honored when collecting files. Timer starts after all pods in the DaemonSet become ready. If not specified, no timeout will be used.
A valid, string representation of the policy to use when pulling the image. If not specified, this will be set to IfNotPresent.
Troubleshoot offers two possibilities to use ImagePullSecrets, either using the name of a pre-existing secret in the cluster or dynamically creating a temporary secret to extract the image and destroy it after the collector is done.
The ImagePullSecret field accepts the following parameters:
If a pre-existing ImagePullSecret is used:
If an ImagePullSecret will be created for the collector to pull the image:
A string indicating that the secret is of type "kubernetes.io/dockerconfigjson".
imagePullSecret: name: my-temporary-secret data: .dockerconfigjson: ewoJICJhdXRocyI6IHsKCQksHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvIjoge30KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy4xMiAoZGFyd2luKSIKCX0sCgkiY3JlZHNTdG9yZSI6ICJkZXNrdG9wIiwKCSJleHBlcmltZW50YWwiOiAiZGlzYWJsZWQiLAoJInN0YWNrT3JjaGVzdHJhdG9yIjogInN3YXJtIgp9 type: kubernetes.io/dockerconfigjson
Further information about config.json file and dockerconfigjson secrets may be found here.
See the examples below for use cases.
apiVersion: troubleshoot.sh/v1beta2 kind: SupportBundle metadata: name: sample spec: collectors: - copyFromHost: collectorName: "copy os-release" image: busybox:1 hostPath: "/etc/os-release" imagePullPolicy: IfNotPresent imagePullSecret: name: my-temporary-secret data: .dockerconfigjson: ewoJICJhdXRocyI6IHsKzCQksHR0cHM6Ly9pbmRleC5kb2NrZXIuaW8vdjEvIjoge30KCX0sCgkiSHR0cEhlYWRlcnMiOiB7CgkJIlVzZXItQWdlbnQiOiAiRG9ja2VyLUNsaWVudC8xOS4wMy4xMiAoZGFyd2luKSIKCX0sCgkiY3JlZHNTdG9yZSI6ICJkZXNrdG9wIiwKCSJleHBlcmltZW50YWwiOiAiZGlzYWJsZWQiLAoJInN0YWNrT3JjaGVzdHJhdG9yIjogInN3YXJtIgp9 type: kubernetes.io/dockerconfigjson
When this collector is executed, it will include the following files in a support bundle:
This will contain tar archives of the directory or file from all nodes.