istio_ca

Istio Certificate Authority (CA).

istio_ca [flags]
FlagsDescription
--append-dns-namesAppend DNS names to the certificates for webhook services.
--cert-chain <string>Path to the certificate chain file. (default ``)
--citadel-storage-namespace <string>Namespace where the Citadel pod is running. Will not be used if explicit file or other storage mechanism is specified. (default `istio-system`)
--ctrlz_address <string>The IP Address to listen on for the ControlZ introspection facility. Use '*' to indicate all addresses. (default `localhost`)
--ctrlz_port <uint16>The IP port to use for the ControlZ introspection facility (default `9876`)
--custom-dns-names <string>The list of account.namespace:customdns names, separated by comma. (default ``)
--enable-profilingEnabling profiling when monitoring Citadel.
--experimental-dual-useEnable dual-use mode. Generates certificates with a CommonName identical to the SAN.
--explicit-opt-inSpecifies whether Citadel requires explicit opt-in for creating secrets. If set, only namespaces labeled with 'istio-managed=enabled' will have secrets created. This feature is only available in key and certificates delivered through secret volume mount.
--grpc-host-identities <string>The list of hostnames for istio ca server, separated by comma. (default `istio-ca,istio-citadel`)
--grpc-port <int>The port number for Citadel GRPC server. If unspecified, Citadel will not serve GRPC requests. (default `8060`)
--key-size <int>Size of generated private key. (default `2048`)
--kube-config <string>Specifies path to kubeconfig file. This must be specified when not running inside a Kubernetes pod. (default ``)
--listened-namespaces <string>Select the namespaces for the Citadel to listen to, separated by comma. If unspecified, Citadel tries to use the ${NAMESPACE} environment variable. If neither is set, Citadel listens to all namespaces. (default ``)
--liveness-probe-interval <duration>Interval of updating file for the liveness probe. (default `0s`)
--liveness-probe-path <string>Path to the file for the liveness probe. (default ``)
--log_as_jsonWhether to format output as JSON or in plain console-friendly format
--log_caller <string>Comma-separated list of scopes for which to include caller information, scopes can be any of [all, default, model, rbac] (default ``)
--log_output_level <string>Comma-separated minimum per-scope logging level of messages to output, in the form of <scope>:<level>,<scope>:<level>,... where scope can be one of [all, default, model, rbac] and level can be one of [debug, info, warn, error, fatal, none] (default `default:info`)
--log_rotate <string>The path for the optional rotating log file (default ``)
--log_rotate_max_age <int>The maximum age in days of a log file beyond which the file is rotated (0 indicates no limit) (default `30`)
--log_rotate_max_backups <int>The maximum number of log file backups to keep before older files are deleted (0 indicates no limit) (default `1000`)
--log_rotate_max_size <int>The maximum size in megabytes of a log file beyond which the file is rotated (default `104857600`)
--log_stacktrace_level <string>Comma-separated minimum per-scope logging level at which stack traces are captured, in the form of <scope>:<level>,<scope:level>,... where scope can be one of [all, default, model, rbac] and level can be one of [debug, info, warn, error, fatal, none] (default `default:none`)
--log_target <stringArray>The set of paths where to output the log. This can be any path as well as the special values stdout and stderr (default `[stdout]`)
--max-workload-cert-ttl <duration>The max TTL of issued workload certificates. (default `2160h0m0s`)
--monitoring-port <int>The port number for monitoring Citadel. If unspecified, Citadel will disable monitoring. (default `15014`)
--org <string>Organization for the certificate. (default ``)
--pkcs8-keysWhether to generate PKCS#8 private keys.
--probe-check-interval <duration>Interval of checking the liveness of the CA. (default `30s`)
--read-signing-cert-onlyWhen set, Citadel only reads the self-signed signing key and cert from Kubernetes secret without generating one (if not exist). This flag avoids racing condition between multiple Citadels generating self-signed key and cert. Please make sure one and only one Citadel instance has this flag set to false.
--requested-ca-cert-ttl <duration>The requested TTL for the CA certificate. (default `8760h0m0s`)
--root-cert <string>Path to the root certificate file. (default ``)
--self-signed-caIndicates whether to use auto-generated self-signed CA certificate. When set to true, the '--signing-cert' and '--signing-key' options are ignored.
--self-signed-ca-cert-ttl <duration>The TTL of self-signed CA root certificate. (default `87600h0m0s`)
--server-onlyWhen set, Citadel only serves as a server without writing the Kubernetes secrets.
--sign-ca-certsWhether Citadel signs certificates for other CAs.
--signing-cert <string>Path to the CA signing certificate file. (default ``)
--signing-key <string>Path to the CA signing key file. (default ``)
--trust-domain <string>The domain serves to identify the system with SPIFFE. (default ``)
--upstream-ca-address <string>The IP:port address of the upstream CA. When set, the CA will rely on the upstream Citadel to provision its own certificate. (default ``)
--workload-cert-grace-period-ratio <float32>The workload certificate rotation grace period, as a ratio of the workload certificate TTL. (default `0.5`)
--workload-cert-min-grace-period <duration>The minimum workload certificate rotation grace period. (default `10m0s`)
--workload-cert-ttl <duration>The TTL of issued workload certificates. (default `2160h0m0s`)

istio_ca probe

Check the liveness or readiness of a locally-running server

istio_ca probe [flags]
FlagsDescription
--ctrlz_address <string>The IP Address to listen on for the ControlZ introspection facility. Use '*' to indicate all addresses. (default `localhost`)
--ctrlz_port <uint16>The IP port to use for the ControlZ introspection facility (default `9876`)
--interval <duration>Duration used for checking the target file's last modified time. (default `0s`)
--log_as_jsonWhether to format output as JSON or in plain console-friendly format
--log_caller <string>Comma-separated list of scopes for which to include caller information, scopes can be any of [all, default, model, rbac] (default ``)
--log_output_level <string>Comma-separated minimum per-scope logging level of messages to output, in the form of <scope>:<level>,<scope>:<level>,... where scope can be one of [all, default, model, rbac] and level can be one of [debug, info, warn, error, fatal, none] (default `default:info`)
--log_rotate <string>The path for the optional rotating log file (default ``)
--log_rotate_max_age <int>The maximum age in days of a log file beyond which the file is rotated (0 indicates no limit) (default `30`)
--log_rotate_max_backups <int>The maximum number of log file backups to keep before older files are deleted (0 indicates no limit) (default `1000`)
--log_rotate_max_size <int>The maximum size in megabytes of a log file beyond which the file is rotated (default `104857600`)
--log_stacktrace_level <string>Comma-separated minimum per-scope logging level at which stack traces are captured, in the form of <scope>:<level>,<scope:level>,... where scope can be one of [all, default, model, rbac] and level can be one of [debug, info, warn, error, fatal, none] (default `default:none`)
--log_target <stringArray>The set of paths where to output the log. This can be any path as well as the special values stdout and stderr (default `[stdout]`)
--probe-path <string>Path of the file for checking the availability. (default ``)

istio_ca version

Prints out build version information

istio_ca version [flags]
FlagsShorthandDescription
--ctrlz_address <string>The IP Address to listen on for the ControlZ introspection facility. Use '*' to indicate all addresses. (default `localhost`)
--ctrlz_port <uint16>The IP port to use for the ControlZ introspection facility (default `9876`)
--log_as_jsonWhether to format output as JSON or in plain console-friendly format
--log_caller <string>Comma-separated list of scopes for which to include caller information, scopes can be any of [all, default, model, rbac] (default ``)
--log_output_level <string>Comma-separated minimum per-scope logging level of messages to output, in the form of <scope>:<level>,<scope>:<level>,... where scope can be one of [all, default, model, rbac] and level can be one of [debug, info, warn, error, fatal, none] (default `default:info`)
--log_rotate <string>The path for the optional rotating log file (default ``)
--log_rotate_max_age <int>The maximum age in days of a log file beyond which the file is rotated (0 indicates no limit) (default `30`)
--log_rotate_max_backups <int>The maximum number of log file backups to keep before older files are deleted (0 indicates no limit) (default `1000`)
--log_rotate_max_size <int>The maximum size in megabytes of a log file beyond which the file is rotated (default `104857600`)
--log_stacktrace_level <string>Comma-separated minimum per-scope logging level at which stack traces are captured, in the form of <scope>:<level>,<scope:level>,... where scope can be one of [all, default, model, rbac] and level can be one of [debug, info, warn, error, fatal, none] (default `default:none`)
--log_target <stringArray>The set of paths where to output the log. This can be any path as well as the special values stdout and stderr (default `[stdout]`)
--output <string>-oOne of 'yaml' or 'json'. (default ``)
--short-sDisplays a short form of the version information

Environment variables

These environment variables affect the behavior of the istio_ca command.
Variable NameTypeDefault ValueDescription
ISTIO_GPRC_MAXSTREAMSInteger100000
NAMESPACEString
PILOT_CERT_DIRString
PILOT_DEBOUNCE_AFTERTime Duration100ms
PILOT_DEBOUNCE_MAXTime Duration10s
PILOT_DEBUG_ADSZ_CONFIGBooleanfalse
PILOT_DISABLE_EDS_ISOLATIONString
PILOT_DISABLE_XDS_MARSHALING_TO_ANYString
PILOT_ENABLE_FALLTHROUGH_ROUTEBooleantrueEnableFallthroughRoute provides an option to add a final wildcard match for routes. When ALLOW_ANY traffic policy is used, a Passthrough cluster is used. When REGISTRY_ONLY traffic policy is used, a 502 error is returned.
PILOT_ENABLE_LOCALITY_LOAD_BALANCINGString
PILOT_ENABLE_MYSQL_FILTERBooleanfalseEnableMysqlFilter enables injection of `envoy.filters.network.mysql_proxy` in the filter chain.
PILOT_ENABLE_REDIS_FILTERBooleanfalseEnableRedisFilter enables injection of `envoy.filters.network.redis_proxy` in the filter chain.
PILOT_ENABLE_WAIT_CACHE_SYNCString
PILOT_HTTP10Booleanfalse
PILOT_INITIAL_FETCH_TIMEOUTTime Duration0sSpecifies the initial_fetch_timeout for config. If this time is reached without a response to the config requested by Envoy, the Envoy will move on with the init phase. This prevents envoy from getting stuck waiting on config during startup.
PILOT_PUSH_BURSTInteger100
PILOT_PUSH_THROTTLEInteger10
PILOT_SIDECAR_USE_REMOTE_ADDRESSBooleanfalseUseRemoteAddress sets useRemoteAddress to true for side car outbound listeners.
PILOT_TRACE_SAMPLINGFloating-Point100
TERMINATION_DRAIN_DURATION_SECONDSString
V2_REFRESHTime Duration0s

Annotations

These resource annotations are used by the istio_ca command.
Annotation NameDescription
policy.istio.io/checkDetermines the policy for behavior when unable to connect to Mixer. If not set, FAIL_CLOSE is set, rejecting requests.
policy.istio.io/checkBaseRetryWaitTimeBase time to wait between retries, will be adjusted by backoff and jitter. In duration format. If not set, this will be 80ms.
policy.istio.io/checkMaxRetryWaitTimeMaximum time to wait between retries to Mixer. In duration format. If not set, this will be 1000ms.
policy.istio.io/checkRetriesThe maximum number of retries on transport errors to Mixer. If not set, this will be 0, indicating no retries.

Exported metrics

Metric NameTypeDescription