A cert-manager CSI driver for requesting Athenz certificates from cert-manager on behalf of the mounting Pod.
Usage:
csi-driver-athenz [flags]
App flags:
--csi-driver-name string The name of the CSI driver, as installed in Kubernetes (default "csi.cert-manager.athenz.io")
--kube-api-burst int Maximum burst for throttling requests to the Kubernetes API server (0 keeps the client-go default of 10).
--kube-api-qps float32 Maximum queries-per-second to the Kubernetes API server (0 keeps the client-go default of 5).
-v, --log-level string Log level (1-5). (default "1")
Driver flags:
--data-root string Path to the in-memory data directory used to store data.
--endpoint string Path to the unix socket used to listen for gRPC requests.
--node-id string Name of the node the driver is running on.
Cert-manager flags:
--certificate-request-duration duration The duration that created CertificateRequests will use. (default 1h0m0s)
--extra-certificate-request-annotations stringToString Comma-separated list of extra annotations to add to certificate requests e.g '--extra-certificate-request-annotations=hello=world,test=annotation' (default [])
--issuer-group string Group of the issuer that CertificateRequests will be created for. (default "athenz-issuer.athenz.io")
--issuer-kind string Kind of the issuer that CertificateRequests will be created for. (default "ClusterIssuer")
--issuer-name string Name of the issuer that CertificateRequests will be created for. (default "athenz-ca")
--trust-domain string The trust domain that will be requested for on created CertificateRequests. (default "cluster.local")
Volume flags:
--enable-keystore Enable provisioning of PKCS12 and JKS keystores alongside the PEM identity files. When false (default), no keystores are written and the --file-name-keystore / --file-name-jks / --keystore-password / --keystore-alias flags have no effect.
--file-name-ca string The file name that the certificate's private key will be written to within the pod's volume directory. (default "ca.crt")
--file-name-certificate string The file name that signed certificates will be written to within the pod's volume directory. (default "tls.crt")
--file-name-jks string The file name of the JKS keystore written into the pod's volume. Requires --enable-keystore. Set to an empty string to skip JKS keystore generation while still writing the PKCS12 keystore. (default "service.jks")
--file-name-key string The file name that the certificate's private key will be written to within the pod's volume directory. (default "tls.key")
--file-name-keystore openssl pkcs12 -export -noiter -nomaciter The file name of the PKCS12 keystore written into the pod's volume. Requires --enable-keystore. The keystore contains the private key and leaf certificate using the legacy PKCS12 encoding to mirror the on-disk format produced by openssl pkcs12 -export -noiter -nomaciter. Set to an empty string to skip PKCS12 keystore generation while still writing the JKS keystore. (default "service.pkcs12")
--keystore-alias string Alias used for the private key entry inside the JKS keystore. Requires --enable-keystore. (default "service")
--keystore-password-file changeit File path whose contents are used as the password to encrypt the PKCS12 and JKS keystores. Ignored when the KEYSTORE_PASSWORD environment variable is set (env wins). When both are unset, the well-known Java default changeit is used. The password is never accepted as a plain CLI flag, to avoid exposing it via `ps`. Requires --enable-keystore.
--source-ca-bundle string File path that is read by the driver which will be written to all managed volumes to the file location inside volumes defined in --file-name-ca. If undefined, no CA file is written to volumes.
--volume-write-mode atomic-dir How certificate data is written into the pod's volume. atomic-dir (default) is the upstream csi-lib writer, which replaces the files via a new timestamped directory on every write; consumers that watch a file with raw inotify (istio-agent gateways with file-mounted certificates, for example) lose their watch on every renewal and keep serving the stale certificate. `in-place` rewrites the existing files instead, keeping their inodes so such watches survive renewals. Note that `in-place` rewrites are not atomic against concurrent readers: a reader that catches the window between the write and the truncate must re-read on the next inotify event, as istio-agent does. (default "atomic-dir")
Athenz flags:
--ca-cert-file string Athenz CA certificate file path.
--cert-country-name string Country name in the service identity certificate. (default "US")
--cert-org-name string Organization name in the service identity certificate. (default "Athenz")
--cloud-provider string Cloud provider where the driver is running.
--cloud-region string Cloud region where the driver is running.
--dns-domains string DNS domains to be added in the service identity certificate. Multiple domains can be specified by separating them with commas.
--provider-prefix string Provider prefix for the backend provider in ZTS which is responsible for verifying and issuing the identity.
--zts string URL of the ZTS server.
Kubernetes flags:
--as string Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--as-uid string UID to impersonate for the operation.
--as-user-extra stringArray User extras to impersonate for the operation, this flag can be repeated to specify multiple values for the same key.
--cache-dir string Default cache directory (default "/tmp/.kube/cache")
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--context string The name of the kubeconfig context to use
--disable-compression If true, opt-out of response compression for all requests to the server
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to the kubeconfig file to use for CLI requests.
-n, --namespace string If present, the namespace scope for this CLI request
--proxy-url string Proxy URL to use for requests to the API server
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
-s, --server string The address and port of the Kubernetes API server
--tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
Options (51)
| Option | Description | Source |
|---|---|---|
--csi-driver-name string | The name of the CSI driver, as installed in Kubernetes (default "csi.cert-manager.athenz.io") | help |
--kube-api-burst int | Maximum burst for throttling requests to the Kubernetes API server (0 keeps the client-go default of 10). | help |
--kube-api-qps float32 | Maximum queries-per-second to the Kubernetes API server (0 keeps the client-go default of 5). | help |
-v, --log-level string | Log level (1-5). | help |
--data-root string | Path to the in-memory data directory used to store data. | help |
--endpoint string | Path to the unix socket used to listen for gRPC requests. | help |
--node-id string | Name of the node the driver is running on. | help |
--certificate-request-duration duration | The duration that created CertificateRequests will use. | help |
--extra-certificate-request-annotations stringToString | Comma-separated list of extra annotations to add to certificate requests e.g '--extra-certificate-request-annotations=hello=world,test=annotation' (default []) | help |
--issuer-group string | Group of the issuer that CertificateRequests will be created for. | help |
--issuer-kind string | Kind of the issuer that CertificateRequests will be created for. | help |
--issuer-name string | Name of the issuer that CertificateRequests will be created for. | help |
--trust-domain string | The trust domain that will be requested for on created CertificateRequests. | help |
--enable-keystore | Enable provisioning of PKCS12 and JKS keystores alongside the PEM identity files. | help |
--file-name-ca string | The file name that the certificate's private key will be written to within the pod's volume directory. | help |
--file-name-certificate string | The file name that signed certificates will be written to within the pod's volume directory. | help |
--file-name-jks string | The file name of the JKS keystore written into the pod's volume. | help |
--file-name-key string | The file name that the certificate's private key will be written to within the pod's volume directory. | help |
--file-name-keystore openssl | The file name of the PKCS12 keystore written into the pod's volume. | help |
--keystore-alias string | Alias used for the private key entry inside the JKS keystore. | help |
--keystore-password-file changeit | File path whose contents are used as the password to encrypt the PKCS12 and JKS keystores. | help |
--source-ca-bundle string | File path that is read by the driver which will be written to all managed volumes to the file location inside volumes defined in --file-name-ca. | help |
--volume-write-mode atomic-dir | How certificate data is written into the pod's volume. | help |
--ca-cert-file string | Athenz CA certificate file path. | help |
--cert-country-name string | Country name in the service identity certificate. | help |
--cert-org-name string | Organization name in the service identity certificate. | help |
--cloud-provider string | Cloud provider where the driver is running. | help |
--cloud-region string | Cloud region where the driver is running. | help |
--dns-domains string | DNS domains to be added in the service identity certificate. | help |
--provider-prefix string | Provider prefix for the backend provider in ZTS which is responsible for verifying and issuing the identity. | help |
--zts string | URL of the ZTS server. | help |
--as string | Username to impersonate for the operation. | help |
--as-group stringArray | Group to impersonate for the operation, this flag can be repeated to specify multiple groups. | help |
--as-uid string | UID to impersonate for the operation. | help |
--as-user-extra stringArray | User extras to impersonate for the operation, this flag can be repeated to specify multiple values for the same key. | help |
--cache-dir string | Default cache directory (default "/tmp/.kube/cache") | help |
--certificate-authority string | Path to a cert file for the certificate authority | help |
--client-certificate string | Path to a client certificate file for TLS | help |
--client-key string | Path to a client key file for TLS | help |
--cluster string | The name of the kubeconfig cluster to use | help |
--context string | The name of the kubeconfig context to use | help |
--disable-compression | If true, opt-out of response compression for all requests to the server | help |
--insecure-skip-tls-verify | If true, the server's certificate will not be checked for validity. | help |
--kubeconfig string | Path to the kubeconfig file to use for CLI requests. | help |
-n, --namespace string | If present, the namespace scope for this CLI request | help |
--proxy-url string | Proxy URL to use for requests to the API server | help |
--request-timeout string | The length of time to wait before giving up on a single server request. | help |
-s, --server string | The address and port of the Kubernetes API server | help |
--tls-server-name string | Server name to use for server certificate validation. | help |
--token string | Bearer token for authentication to the API server | help |
--user string | The name of the kubeconfig user to use | help |