Function: tramp-kubernetes--completion-function
tramp-kubernetes--completion-function is an autoloaded and
byte-compiled function defined in tramp-container.el.gz.
Signature
(tramp-kubernetes--completion-function METHOD)
Documentation
List Kubernetes pods available for connection.
This function is used by tramp-set-completion-function, please
see its function help for a description of the format.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp-container.el.gz
;;;###tramp-autoload
(defun tramp-kubernetes--completion-function (method)
"List Kubernetes pods available for connection.
This function is used by `tramp-set-completion-function', please
see its function help for a description of the format."
(tramp-skeleton-completion-function method
(when-let* ((raw-list
(shell-command-to-string
(concat
program " "
(tramp-kubernetes--context-namespace vec)
" get pods --no-headers"
;; We separate pods by "|". Inside a pod, its name
;; is separated from the containers by ":".
;; Containers are separated by ",".
" -o jsonpath='{range .items[*]}{\"|\"}{.metadata.name}"
"{\":\"}{range .spec.containers[*]}{.name}{\",\"}"
"{end}{end}'")))
(lines (split-string raw-list "|" 'omit)))
(let (names)
(dolist (line lines)
(setq line (split-string line ":" 'omit))
;; Pod name.
(push (car line) names)
;; Container names.
(dolist (elt (split-string (cadr line) "," 'omit))
(push (concat elt "." (car line)) names)))
(mapcar (lambda (name) (list nil name)) (delq nil names))))))