Add missing man pages and bash completions for kpod
We need to start off with man pages and bash completion support for kpod. Also fix Makefile to install kpod by default Signed-off-by: Dan Walsh <dwalsh@redhat.com>
This commit is contained in:
parent
529bebbe68
commit
e61c672aa7
5 changed files with 193 additions and 7 deletions
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -5,7 +5,9 @@ conmon/conmon
|
||||||
conmon/conmon.o
|
conmon/conmon.o
|
||||||
pause/pause
|
pause/pause
|
||||||
pause/pause.o
|
pause/pause.o
|
||||||
/docs/*.[58]
|
/docs/*.[158]
|
||||||
/docs/*.[58].gz
|
/docs/*.[158].gz
|
||||||
vendor/src/github.com/kubernetes-incubator/cri-o
|
vendor/src/github.com/kubernetes-incubator/cri-o
|
||||||
ocid.conf
|
ocid.conf
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
|
|
24
Makefile
24
Makefile
|
@ -17,6 +17,7 @@ ETCDIR_OCID ?= ${ETCDIR}/ocid
|
||||||
GO_MD2MAN ?= $(shell which go-md2man)
|
GO_MD2MAN ?= $(shell which go-md2man)
|
||||||
export GOPATH := ${CURDIR}/vendor
|
export GOPATH := ${CURDIR}/vendor
|
||||||
BUILDTAGS := selinux seccomp
|
BUILDTAGS := selinux seccomp
|
||||||
|
BASHINSTALLDIR=${PREFIX}/share/bash-completion/completions
|
||||||
|
|
||||||
all: binaries ocid.conf docs
|
all: binaries ocid.conf docs
|
||||||
|
|
||||||
|
@ -63,7 +64,7 @@ clean:
|
||||||
rm -f ocic ocid
|
rm -f ocic ocid
|
||||||
rm -f kpod
|
rm -f kpod
|
||||||
rm -f ${OCID_LINK}
|
rm -f ${OCID_LINK}
|
||||||
rm -f docs/*.5 docs/*.8
|
rm -f docs/*.1 docs/*.5 docs/*.8
|
||||||
find . -name \*~ -delete
|
find . -name \*~ -delete
|
||||||
find . -name \#\* -delete
|
find . -name \#\* -delete
|
||||||
make -C conmon clean
|
make -C conmon clean
|
||||||
|
@ -86,7 +87,7 @@ binaries: ocid ocic kpod conmon pause
|
||||||
MANPAGES_MD := $(wildcard docs/*.md)
|
MANPAGES_MD := $(wildcard docs/*.md)
|
||||||
MANPAGES := $(MANPAGES_MD:%.md=%)
|
MANPAGES := $(MANPAGES_MD:%.md=%)
|
||||||
|
|
||||||
docs/%.8: docs/%.8.md
|
docs/%.1: docs/%.1.md
|
||||||
@which go-md2man > /dev/null 2>/dev/null || (echo "ERROR: go-md2man not found. Consider 'make install.tools' target" && false)
|
@which go-md2man > /dev/null 2>/dev/null || (echo "ERROR: go-md2man not found. Consider 'make install.tools' target" && false)
|
||||||
$(GO_MD2MAN) -in $< -out $@.tmp && touch $@.tmp && mv $@.tmp $@
|
$(GO_MD2MAN) -in $< -out $@.tmp && touch $@.tmp && mv $@.tmp $@
|
||||||
|
|
||||||
|
@ -94,31 +95,44 @@ docs/%.5: docs/%.5.md
|
||||||
@which go-md2man > /dev/null 2>/dev/null || (echo "ERROR: go-md2man not found. Consider 'make install.tools' target" && false)
|
@which go-md2man > /dev/null 2>/dev/null || (echo "ERROR: go-md2man not found. Consider 'make install.tools' target" && false)
|
||||||
$(GO_MD2MAN) -in $< -out $@.tmp && touch $@.tmp && mv $@.tmp $@
|
$(GO_MD2MAN) -in $< -out $@.tmp && touch $@.tmp && mv $@.tmp $@
|
||||||
|
|
||||||
|
docs/%.8: docs/%.8.md
|
||||||
|
@which go-md2man > /dev/null 2>/dev/null || (echo "ERROR: go-md2man not found. Consider 'make install.tools' target" && false)
|
||||||
|
$(GO_MD2MAN) -in $< -out $@.tmp && touch $@.tmp && mv $@.tmp $@
|
||||||
|
|
||||||
docs: $(MANPAGES)
|
docs: $(MANPAGES)
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
install -D -m 755 kpod $(BINDIR)/kpod
|
||||||
install -D -m 755 ocid $(BINDIR)/ocid
|
install -D -m 755 ocid $(BINDIR)/ocid
|
||||||
install -D -m 755 ocic $(BINDIR)/ocic
|
install -D -m 755 ocic $(BINDIR)/ocic
|
||||||
install -D -m 755 conmon/conmon $(LIBEXECDIR)/ocid/conmon
|
install -D -m 755 conmon/conmon $(LIBEXECDIR)/ocid/conmon
|
||||||
install -D -m 755 pause/pause $(LIBEXECDIR)/ocid/pause
|
install -D -m 755 pause/pause $(LIBEXECDIR)/ocid/pause
|
||||||
install -d -m 755 $(MANDIR)/man{8,5}
|
install -d -m 755 $(MANDIR)/man{1,4,8}
|
||||||
install -m 644 $(filter %.8,$(MANPAGES)) -t $(MANDIR)/man8
|
install -m 644 $(filter %.1,$(MANPAGES)) -t $(MANDIR)/man1
|
||||||
install -m 644 $(filter %.5,$(MANPAGES)) -t $(MANDIR)/man5
|
install -m 644 $(filter %.5,$(MANPAGES)) -t $(MANDIR)/man5
|
||||||
|
install -m 644 $(filter %.8,$(MANPAGES)) -t $(MANDIR)/man8
|
||||||
install -D -m 644 ocid.conf $(ETCDIR_OCID)/ocid.conf
|
install -D -m 644 ocid.conf $(ETCDIR_OCID)/ocid.conf
|
||||||
install -D -m 644 seccomp.json $(ETCDIR_OCID)/seccomp.json
|
install -D -m 644 seccomp.json $(ETCDIR_OCID)/seccomp.json
|
||||||
|
|
||||||
|
install.completions:
|
||||||
|
install -d -m 755 ${BASHINSTALLDIR}
|
||||||
|
install -m 644 -D completions/bash/kpod ${BASHINSTALLDIR}
|
||||||
|
|
||||||
install.systemd:
|
install.systemd:
|
||||||
install -D -m 644 contrib/systemd/ocid.service $(PREFIX)/lib/systemd/system/ocid.service
|
install -D -m 644 contrib/systemd/ocid.service $(PREFIX)/lib/systemd/system/ocid.service
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
rm -f $(BINDIR)/{ocid,ocic}
|
rm -f $(BINDIR)/{ocid,ocic}
|
||||||
rm -f $(LIBEXECDIR)/ocid/{conmon,pause}
|
rm -f $(LIBEXECDIR)/ocid/{conmon,pause}
|
||||||
for i in $(filter %.8,$(MANPAGES)); do \
|
for i in $(filter %.1,$(MANPAGES)); do \
|
||||||
rm -f $(MANDIR)/man8/$$(basename $${i}); \
|
rm -f $(MANDIR)/man8/$$(basename $${i}); \
|
||||||
done
|
done
|
||||||
for i in $(filter %.5,$(MANPAGES)); do \
|
for i in $(filter %.5,$(MANPAGES)); do \
|
||||||
rm -f $(MANDIR)/man5/$$(basename $${i}); \
|
rm -f $(MANDIR)/man5/$$(basename $${i}); \
|
||||||
done
|
done
|
||||||
|
for i in $(filter %.8,$(MANPAGES)); do \
|
||||||
|
rm -f $(MANDIR)/man8/$$(basename $${i}); \
|
||||||
|
done
|
||||||
|
|
||||||
.PHONY: .gitvalidation
|
.PHONY: .gitvalidation
|
||||||
# When this is running in travis, it will only check the travis commit range
|
# When this is running in travis, it will only check the travis commit range
|
||||||
|
|
89
completions/bash/kpod
Normal file
89
completions/bash/kpod
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
: ${PROG:=$(basename ${BASH_SOURCE})}
|
||||||
|
|
||||||
|
_complete_() {
|
||||||
|
local options_with_args=$1
|
||||||
|
local boolean_options="$2 -h --help"
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
$options_with_args)
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$cur" in
|
||||||
|
-*)
|
||||||
|
COMPREPLY=( $( compgen -W "$boolean_options $options_with_args" -- "$cur" ) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_kpod_launch() {
|
||||||
|
local options_with_args="
|
||||||
|
"
|
||||||
|
local boolean_options="
|
||||||
|
"
|
||||||
|
_complete_ "$options_with_args" "$boolean_options"
|
||||||
|
}
|
||||||
|
|
||||||
|
_kpod_kpod() {
|
||||||
|
local options_with_args="
|
||||||
|
"
|
||||||
|
local boolean_options="
|
||||||
|
--version -v
|
||||||
|
--help -h
|
||||||
|
"
|
||||||
|
commands="
|
||||||
|
launch
|
||||||
|
"
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
$main_options_with_args_glob )
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$cur" in
|
||||||
|
-*)
|
||||||
|
COMPREPLY=( $( compgen -W "$boolean_options $options_with_args" -- "$cur" ) )
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
COMPREPLY=( $( compgen -W "${commands[*]} help" -- "$cur" ) )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
_cli_bash_autocomplete() {
|
||||||
|
local cur opts base
|
||||||
|
|
||||||
|
COMPREPLY=()
|
||||||
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
COMPREPLY=()
|
||||||
|
local cur prev words cword
|
||||||
|
|
||||||
|
_get_comp_words_by_ref -n : cur prev words cword
|
||||||
|
|
||||||
|
local command=${PROG} cpos=0
|
||||||
|
local counter=1
|
||||||
|
counter=1
|
||||||
|
while [ $counter -lt $cword ]; do
|
||||||
|
case "!${words[$counter]}" in
|
||||||
|
*)
|
||||||
|
command=$(echo "${words[$counter]}" | sed 's/-/_/g')
|
||||||
|
cpos=$counter
|
||||||
|
(( cpos++ ))
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
(( counter++ ))
|
||||||
|
done
|
||||||
|
|
||||||
|
local completions_func=_kpod_${command}
|
||||||
|
declare -F $completions_func >/dev/null && $completions_func
|
||||||
|
|
||||||
|
eval "$previous_extglob_setting"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
complete -F _cli_bash_autocomplete $PROG
|
42
docs/kpod-launch.1.md
Normal file
42
docs/kpod-launch.1.md
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
% kpod(8) # kpod-launch - Simple management tool for pods and images
|
||||||
|
% Dan Walsh
|
||||||
|
% SEPTEMBER 2016
|
||||||
|
# NAME
|
||||||
|
kpod-launch - Launch a new pod
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**kpod launch**
|
||||||
|
[**--help**|**-h**]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
Launch a container process in a new pod. **kpod launch** starts a process with
|
||||||
|
its own file system, its own networking, and its own isolated process tree.
|
||||||
|
The IMAGE which starts the process may define defaults related to the process
|
||||||
|
that will be launch in the pod, the networking to expose, and more, but
|
||||||
|
**kpod launch** gives final control to the operator or administrator who
|
||||||
|
starts the pod from the image. For that reason **kpod launch** has more
|
||||||
|
options than any other kpod commands.
|
||||||
|
|
||||||
|
If the IMAGE is not already loaded then **kpod launch** will pull the IMAGE, and
|
||||||
|
all image dependencies, from the repository in the same way launching **kpod
|
||||||
|
pull** IMAGE, before it starts the container from that image.
|
||||||
|
|
||||||
|
**kpod [GLOBAL OPTIONS]**
|
||||||
|
|
||||||
|
**kpod [GLOBAL OPTIONS] launch [OPTIONS]**
|
||||||
|
|
||||||
|
# GLOBAL OPTIONS
|
||||||
|
|
||||||
|
**--help, -h**
|
||||||
|
Print usage statement
|
||||||
|
|
||||||
|
# COMMANDS
|
||||||
|
|
||||||
|
## launch
|
||||||
|
Launch a pod
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
kpod(1), ocid(8), ocid.conf(5)
|
||||||
|
|
||||||
|
# HISTORY
|
||||||
|
Dec 2016, Originally compiled by Dan Walsh <dwalsh@redhat.com>
|
39
docs/kpod.1.md
Normal file
39
docs/kpod.1.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
% kpod(8) # kpod - Simple management tool for pods and images
|
||||||
|
% Dan Walsh
|
||||||
|
% SEPTEMBER 2016
|
||||||
|
# NAME
|
||||||
|
kpod
|
||||||
|
|
||||||
|
# SYNOPSIS
|
||||||
|
**kpod**
|
||||||
|
[**--help**|**-h**]
|
||||||
|
|
||||||
|
# DESCRIPTION
|
||||||
|
kpod is a simple client only tool to help with debugging issues when daemons
|
||||||
|
such as CRI runtime and the kubelet are not responding or failing. A shared API
|
||||||
|
layer could be created to share code between the daemon and kpod. kpod does not
|
||||||
|
require any daemon running. kpod utilizes the same underlying components that
|
||||||
|
ocid uses i.e. containers/image, container/storage, oci-runtime-tool/generate,
|
||||||
|
runc or any other OCI compatible runtime. kpod shares state with ocid and so
|
||||||
|
has the capability to debug pods/images created by ocid.
|
||||||
|
|
||||||
|
**kpod [GLOBAL OPTIONS]**
|
||||||
|
|
||||||
|
# GLOBAL OPTIONS
|
||||||
|
|
||||||
|
**--help, -h**
|
||||||
|
Print usage statement
|
||||||
|
|
||||||
|
**--version, -v**
|
||||||
|
Print the version
|
||||||
|
|
||||||
|
# COMMANDS
|
||||||
|
|
||||||
|
## launch
|
||||||
|
Launch a pod
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
ocid(8), ocid.conf(5)
|
||||||
|
|
||||||
|
# HISTORY
|
||||||
|
Dec 2016, Originally compiled by Dan Walsh <dwalsh@redhat.com>
|
Loading…
Reference in a new issue