iSulad/src/cmd/isulad/commands.h
lifeng 9453c52364 iSulad: update Mulan v1 to Mulan v2
Signed-off-by: lifeng <lifeng68@huawei.com>
2020-04-27 09:43:55 +08:00

111 lines
7.6 KiB
C

/******************************************************************************
* Copyright (c) Huawei Technologies Co., Ltd. 2017-2019. All rights reserved.
* iSulad licensed under the Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
* PURPOSE.
* See the Mulan PSL v2 for more details.
* Author: lifeng
* Create: 2017-11-22
* Description: provide container commands definition
******************************************************************************/
#ifndef __ISULAD_COMMAND_H
#define __ISULAD_COMMAND_H
#include "arguments.h"
void print_common_help();
void print_version();
// Default help command if implementation doesn't prvide one
int commmand_default_help(const char * const program_name, int argc, char **argv);
int command_isulad_valid_socket(command_option_t *option, const char *arg);
int parse_args(struct service_arguments *args, int argc, const char **argv);
int check_args(struct service_arguments *args);
int update_hosts(struct service_arguments *args);
int update_default_ulimit(struct service_arguments *args);
#define ISULAD_OPTIONS(cmdargs) \
{ CMD_OPT_TYPE_CALLBACK, false, "host", 'H', &(cmdargs)->hosts, \
"The socket name used to create gRPC server", command_valid_socket_append_array }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "pidfile", 'p', &(cmdargs)->json_confs->pidfile, \
"Save pid into this file", NULL }, \
{ CMD_OPT_TYPE_BOOL, false, "help", 0, &(cmdargs)->help, "Show help", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "hook-spec", 0, &(cmdargs)->json_confs->hook_spec, \
"Default hook spec file applied to all containers", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "graph", 'g', &(cmdargs)->json_confs->graph, \
"Root directory of the iSulad runtime", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "state", 'S', &(cmdargs)->json_confs->state, \
"Root directory for execution state files", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "start-timeout", 0, &(cmdargs)->json_confs->start_timeout, \
"timeout duration for waiting on a container to start before it is killed", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "engine", 'e', &(cmdargs)->json_confs->engine, "Select backend engine", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "log-level", 'l', &(cmdargs)->json_confs->log_level, \
"Set log level, the levels can be: FATAL ALERT CRIT ERROR WARN NOTICE INFO DEBUG TRACE", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "log-driver", 0, &(cmdargs)->json_confs->log_driver, \
"Set daemon log driver, such as: file", NULL }, \
{ CMD_OPT_TYPE_CALLBACK, false, "log-opt", 0, (cmdargs), \
"Set daemon log driver options, such as: log-path=/tmp/logs/ to set directory where to store daemon logs", \
server_callback_log_opt }, \
{ CMD_OPT_TYPE_BOOL, false, "version", 'V', &(cmdargs)->version, "Print the version", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "group", 'G', &(cmdargs)->json_confs->group, \
"Group for the unix socket(default is isulad)", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "storage-driver", 0, &(cmdargs)->json_confs->storage_driver, \
"Storage driver to use(default overlay2)", NULL }, \
{ CMD_OPT_TYPE_CALLBACK, false, "storage-opt", 's', &(cmdargs)->json_confs->storage_opts, \
"Storage driver options", command_append_array }, \
{ CMD_OPT_TYPE_CALLBACK, false, "registry-mirrors", 0, &(cmdargs)->json_confs->registry_mirrors, \
"Registry to be prepended when pulling unqualified images, can be specified multiple times", \
command_append_array }, \
{ CMD_OPT_TYPE_CALLBACK, false, "insecure-registry", 0, &(cmdargs)->json_confs->insecure_registries, \
"Disable TLS verification for the given registry", command_append_array }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "native.umask", 0, &(cmdargs)->json_confs->native_umask, \
"Default file mode creation mask (umask) for containers", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "cgroup-parent", 0, &(cmdargs)->json_confs->cgroup_parent, \
"Set parent cgroup for all containers", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "pod-sandbox-image", 0, &(cmdargs)->json_confs->pod_sandbox_image, \
"The image whose network/ipc namespaces containers in each pod will use. " \
"(default \"pause-${machine}:3.0\")", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "image-opt-timeout", 0, &(cmdargs)->json_confs->image_opt_timeout, \
"Max timeout(default 5m) for image operation", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "image_server_sock_addr", 0, &(cmdargs)->json_confs->image_server_sock_addr, \
"Set isula image remote server socket address, Default: unix:///var/run/isulad/isula_image.sock", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "network-plugin", 0, &(cmdargs)->json_confs->network_plugin, \
"Set network plugin, default is null, suppport null and cni", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "cni-bin-dir", 0, &(cmdargs)->json_confs->cni_bin_dir, \
"The full path of the directory in which to search for CNI plugin binaries. Default: /opt/cni/bin", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "cni-conf-dir", 0, &(cmdargs)->json_confs->cni_conf_dir, \
"The full path of the directory in which to search for CNI config files. Default: /etc/cni/net.d", NULL }, \
{ CMD_OPT_TYPE_BOOL, false, "image-layer-check", 0, &(cmdargs)->json_confs->image_layer_check, \
"Check layer intergrity when needed", NULL}, \
{ CMD_OPT_TYPE_BOOL, false, "insecure-skip-verify-enforce", 0, \
&(cmdargs)->json_confs->insecure_skip_verify_enforce, \
"Force to skip the insecure verify(default false)", NULL}, \
{ CMD_OPT_TYPE_BOOL, false, "use-decrypted-key", 0, (cmdargs)->json_confs->use_decrypted_key, \
"Use decrypted private key by default(default true)", NULL}, \
{ CMD_OPT_TYPE_STRING_DUP, false, "authorization-plugin", 0, &(cmdargs)->json_confs->authorization_plugin, \
"Use authorization plugin", NULL}, \
{ CMD_OPT_TYPE_BOOL, false, "tls", 0, &(cmdargs)->json_confs->tls, \
"Use TLS; implied by --tlsverify", NULL}, \
{ CMD_OPT_TYPE_BOOL, false, "tlsverify", 0, &(cmdargs)->json_confs->tls_verify, \
"Use TLS and verify the remote", NULL}, \
{ CMD_OPT_TYPE_STRING_DUP, false, "tlscacert", 0, &(cmdargs)->json_confs->tls_config->ca_file, \
"Trust certs signed only by this CA (default \"/root/.iSulad/ca.pem\")", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "tlscert", 0, &(cmdargs)->json_confs->tls_config->cert_file, \
"Path to TLS certificate file (default \"/root/.iSulad/cert.pem\")", NULL }, \
{ CMD_OPT_TYPE_STRING_DUP, false, "tlskey", 0, &(cmdargs)->json_confs->tls_config->key_file, \
"Path to TLS key file (default \"/root/.iSulad/key.pem\")", NULL }, \
{ CMD_OPT_TYPE_CALLBACK, false, "default-ulimit", 0, &(cmdargs)->default_ulimit, \
"Default ulimits for containers (default [])", command_default_ulimit_append }, \
{ CMD_OPT_TYPE_CALLBACK, false, "websocket-server-listening-port", 0, \
&(cmdargs)->json_confs->websocket_server_listening_port, \
"CRI websocket streaming service listening port (default 10350)", command_convert_uint }, \
{ CMD_OPT_TYPE_BOOL, false, "selinux-enabled", 0, &(cmdargs)->json_confs->selinux_enabled, \
"Enable selinux support", NULL}
#endif /* __COMMAND_H */