--- title: pilot-discovery description: Istio Pilot. generator: pkg-collateral-docs number_of_entries: 5 ---

Istio Pilot provides fleet-wide traffic management capabilities in the Istio Service Mesh.

Flags | Description
--- | ---
`--ctrlz_address <string>` | The IP Address to listen on for the ControlZ introspection facility. Use '*' to indicate all addresses. (default `127.0.0.1`)
`--ctrlz_port <uint16>` | The IP port to use for the ControlZ introspection facility (default `9876`)
`--keepaliveInterval <duration>` | The time interval if no activity on the connection it pings the peer to see if the transport is alive (default `30s`)
`--keepaliveTimeout <duration>` | After having pinged for keepalive check, the client/server waits for a duration of keepaliveTimeout and if no activity is seen even after that the connection is closed. (default `10s`)
`--log_as_json` | Whether 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 [ads, default, mcp, 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 [ads, default, mcp, 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 [ads, default, mcp, 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]`)

## pilot-discovery discovery

Start Istio proxy discovery service.

    pilot-discovery discovery [flags]

Flags | Shorthand | Description
--- | --- | ---
`--appNamespace <string>` | `-a` | Restrict the applications namespace the controller manages; if not set, controller watches all namespaces (default ``)
`--caCertFile <string>` |  | The location of the certificate file for the root certificate authority (default `/etc/certs/root-cert.pem`)
`--certFile <string>` |  | The location of the certificate file for mutual TLS (default `/etc/certs/cert-chain.pem`)
`--clusterRegistriesNamespace <string>` |  | Namespace for ConfigMap which stores clusters configs (default ``)
`--configDir <string>` |  | Directory to watch for updates to config yaml files. If specified, the files will be used as the source of config, rather than a CRD client. (default ``)
`--consulserverInterval <duration>` |  | Interval (in seconds) for polling the Consul service registry (default `2s`)
`--consulserverURL <string>` |  | URL for the Consul server (default ``)
`--ctrlz_address <string>` |  | The IP Address to listen on for the ControlZ introspection facility. Use '*' to indicate all addresses. (default `127.0.0.1`)
`--ctrlz_port <uint16>` |  | The IP port to use for the ControlZ introspection facility (default `9876`)
`--disable-install-crds` |  | Disable discovery service from verifying the existence of CRDs at startup and then installing if not detected. It is recommended to be disable for highly available setups.
`--discoveryCache` |  | Enable caching discovery service responses
`--domain <string>` |  | DNS domain suffix (default `cluster.local`)
`--grpcAddr <string>` |  | Discovery service grpc address (default `:15010`)
`--httpAddr <string>` |  | Discovery service HTTP address (default `:8080`)
`--keepaliveInterval <duration>` |  | The time interval if no activity on the connection it pings the peer to see if the transport is alive (default `30s`)
`--keepaliveTimeout <duration>` |  | After having pinged for keepalive check, the client/server waits for a duration of keepaliveTimeout and if no activity is seen even after that the connection is closed. (default `10s`)
`--keyFile <string>` |  | The location of the key file for mutual TLS (default `/etc/certs/key.pem`)
`--kubeconfig <string>` |  | Use a Kubernetes configuration file instead of in-cluster configuration (default ``)
`--log_as_json` |  | Whether 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 [ads, default, mcp, 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 [ads, default, mcp, 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 [ads, default, mcp, 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]`)
`--mcpMaxMsgSize <int>` |  | Max message size received by MCP's grpc client (default `4194304`)
`--meshConfig <string>` |  | File name for Istio mesh configuration. If not specified, a default mesh will be used. (default `/etc/istio/config/mesh`)
`--monitoringAddr <string>` |  | HTTP address to use for the exposing pilot self-monitoring information (default `:9093`)
`--namespace <string>` | `-n` | Select a namespace where the controller resides. If not set, uses ${POD_NAMESPACE} environment variable (default ``)
`--networksConfig <string>` |  | File name for Istio mesh networks configuration. If not specified, a default mesh networks will be used. (default `/etc/istio/config/meshNetworks`)
`--plugins <stringSlice>` |  | comma separated list of networking plugins to enable (default `[authn,authz,health,mixer]`)
`--profile` |  | Enable profiling via web interface host:port/debug/pprof
`--registries <stringSlice>` |  | Comma separated list of platform service registries to read from (choose one or more from {Kubernetes, Consul, MCP, Mock}) (default `[Kubernetes]`)
`--resync <duration>` |  | Controller resync interval (default `1m0s`)
`--secureGrpcAddr <string>` |  | Discovery service grpc address, with https (default `:15012`)
`--trust-domain <string>` |  | The domain serves to identify the system with spiffe (default ``)

## pilot-discovery request

Makes an HTTP request to Pilot metrics/debug endpoint

    pilot-discovery request <method> <path> [<body>] [flags]

Flags | Description
--- | ---
`--ctrlz_address <string>` | The IP Address to listen on for the ControlZ introspection facility. Use '*' to indicate all addresses. (default `127.0.0.1`)
`--ctrlz_port <uint16>` | The IP port to use for the ControlZ introspection facility (default `9876`)
`--keepaliveInterval <duration>` | The time interval if no activity on the connection it pings the peer to see if the transport is alive (default `30s`)
`--keepaliveTimeout <duration>` | After having pinged for keepalive check, the client/server waits for a duration of keepaliveTimeout and if no activity is seen even after that the connection is closed. (default `10s`)
`--log_as_json` | Whether 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 [ads, default, mcp, 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 [ads, default, mcp, 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 [ads, default, mcp, 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]`)

## pilot-discovery version

Prints out build version information

    pilot-discovery version [flags]

Flags | Shorthand | Description
--- | --- | ---
`--ctrlz_address <string>` |  | The IP Address to listen on for the ControlZ introspection facility. Use '*' to indicate all addresses. (default `127.0.0.1`)
`--ctrlz_port <uint16>` |  | The IP port to use for the ControlZ introspection facility (default `9876`)
`--keepaliveInterval <duration>` |  | The time interval if no activity on the connection it pings the peer to see if the transport is alive (default `30s`)
`--keepaliveTimeout <duration>` |  | After having pinged for keepalive check, the client/server waits for a duration of keepaliveTimeout and if no activity is seen even after that the connection is closed. (default `10s`)
`--log_as_json` |  | Whether 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 [ads, default, mcp, 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 [ads, default, mcp, 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 [ads, default, mcp, 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>` | `-o` | One of 'yaml' or 'json'. (default ``)
`--short` | `-s` | Displays a short form of the version information