Key | Default | Type | Description
--- | --- | --- | ---
##### external-resource.<resource_name>.kubernetes.config-key | (none) | String | If configured, Flink will add "resources.limits.<config-key>" and "resources.requests.<config-key>" to the main container of TaskExecutor and set the value to the value of external-resource.<resource_name>.amount.
##### kubernetes.artifacts.local-upload-enabled | false | Boolean | Enables uploading 'local://' schemed artifacts to DFS before the application cluster deployment.
##### kubernetes.artifacts.local-upload-overwrite | false | Boolean | If enabled, overwrites any existing artifact on the remote target. Disabled by default.
##### kubernetes.artifacts.local-upload-target | (none) | String | The target remote DFS directory to upload local artifacts.
##### kubernetes.client.io-pool.size | 4 | Integer | The size of the IO executor pool used by the Kubernetes client to execute blocking IO operations (e.g. start/stop TaskManager pods, update leader related ConfigMaps, etc.). Increasing the pool size allows to run more IO operations concurrently.
##### kubernetes.client.user-agent | "flink" | String | The user agent to be used for contacting with Kubernetes APIServer.
##### kubernetes.cluster-id | (none) | String | The cluster-id, which should be no more than 45 characters, is used for identifying a unique Flink cluster. The id must only contain lowercase alphanumeric characters and "-". The required format is `[a-z]([-a-z0-9]*[a-z0-9])`. If not set, the client will automatically generate it with a random ID.
##### kubernetes.config.file | (none) | String | The kubernetes config file will be used to create the client. The default is located at ~/.kube/config
##### kubernetes.container.image.pull-policy | IfNotPresent | Enum | The Kubernetes container image pull policy. The default policy is IfNotPresent to avoid putting pressure to image repository. Possible values: "IfNotPresent" "Always" "Never"
##### kubernetes.container.image.pull-secrets | (none) | List<String> | A semicolon-separated list of the Kubernetes secrets used to access private image registries.
##### kubernetes.container.image.ref | The default value depends on the actually running version. In general it looks like "flink:<FLINK_VERSION>-scala_<SCALA_VERSION>" | String | Image to use for Flink containers. The specified image must be based upon the same Apache Flink and Scala versions as used by the application. Visit here for the official docker images provided by the Flink project. The Flink project also publishes docker images to apache/flink DockerHub repository.
##### kubernetes.context | (none) | String | The desired context from your Kubernetes config file used to configure the Kubernetes client for interacting with the cluster. This could be helpful if one has multiple contexts configured and wants to administrate different Flink clusters on different Kubernetes clusters/contexts.
##### kubernetes.decorator.hadoop-conf-mount.enabled | true | Boolean | Whether to enable Hadoop configuration mount decorator. This must be set to false when Hadoop config is mounted outside of Flink. A typical use-case is when one uses Flink Kubernetes Operator.
##### kubernetes.decorator.kerberos-mount.enabled | true | Boolean | Whether to enable Kerberos mount decorator. This must be set to false when Kerberos config and keytab is mounted outside of Flink. A typical use-case is when one uses Flink Kubernetes Operator.
##### kubernetes.entry.path | "/docker-entrypoint.sh" | String | The entrypoint script of kubernetes in the image. It will be used as command for jobmanager and taskmanager container.
##### kubernetes.env.secretKeyRef | (none) | List<Map> | The user-specified secrets to set env variables in Flink container. The value should be in the form of `env:FOO_ENV,secret:foo_secret,key:foo_key;env:BAR_ENV,secret:bar_secret,key:bar_key`.
##### kubernetes.flink.conf.dir | "/opt/flink/conf" | String | The flink conf directory that will be mounted in pod. The config.yaml, log4j.properties, logback.xml in this path will be overwritten from config map.
##### kubernetes.flink.log.dir | (none) | String | The directory that logs of jobmanager and taskmanager be saved in the pod. The default value is $FLINK_HOME/log.
##### kubernetes.hadoop.conf.config-map.name | (none) | String | Specify the name of an existing ConfigMap that contains custom Hadoop configuration to be mounted on the JobManager(s) and TaskManagers.
##### kubernetes.hostnetwork.enabled | false | Boolean | Whether to enable HostNetwork mode. The HostNetwork allows the pod could use the node network namespace instead of the individual pod network namespace. Please note that the JobManager service account should have the permission to update Kubernetes service.
##### kubernetes.internal-service.annotations | (none) | Map | The user-specified annotations that are set to the internal Service. The value should be in the form of a1:v1,a2:v2
##### kubernetes.internal-service.labels | (none) | Map | The user-specified labels that are set to the internal Service. The value should be in the form of a1:v1,a2:v2
##### kubernetes.jobmanager.annotations | (none) | Map | The user-specified annotations that are set to the JobManager pod. The value could be in the form of a1:v1,a2:v2
##### kubernetes.jobmanager.cpu.amount | 1.0 | Double | The number of cpu used by job manager
##### kubernetes.jobmanager.cpu.limit-factor | 1.0 | Double | The limit factor of cpu used by job manager. The resources limit cpu will be set to cpu * limit-factor.
##### kubernetes.jobmanager.entrypoint.args | (none) | String | Extra arguments used when starting the job manager.
##### kubernetes.jobmanager.labels | (none) | Map | The labels to be set for JobManager pod. Specified as key:value pairs separated by commas. For example, version:alphav1,deploy:test.
##### kubernetes.jobmanager.memory.limit-factor | 1.0 | Double | The limit factor of memory used by job manager. The resources limit memory will be set to memory * limit-factor.
##### kubernetes.jobmanager.node-selector | (none) | Map | The node selector to be set for JobManager pod. Specified as key:value pairs separated by commas. For example, environment:production,disk:ssd.
##### kubernetes.jobmanager.owner.reference | (none) | List<Map> | The user-specified Owner References to be set to the JobManager Deployment. When all the owner resources are deleted, the JobManager Deployment will be deleted automatically, which also deletes all the resources created by this Flink cluster. The value should be formatted as a semicolon-separated list of owner references, where each owner reference is a comma-separated list of `key:value` pairs. E.g., apiVersion:v1,blockOwnerDeletion:true,controller:true,kind:FlinkApplication,name:flink-app-name,uid:flink-app-uid;apiVersion:v1,kind:Deployment,name:deploy-name,uid:deploy-uid
##### kubernetes.jobmanager.replicas | 1 | Integer | Specify how many JobManager pods will be started simultaneously. Configure the value to greater than 1 to start standby JobManagers. It will help to achieve faster recovery. Notice that high availability should be enabled when starting standby JobManagers.
##### kubernetes.jobmanager.service-account | "default" | String | Service account that is used by jobmanager within kubernetes cluster. The job manager uses this service account when requesting taskmanager pods from the API server. If not explicitly configured, config option 'kubernetes.service-account' will be used.
##### kubernetes.jobmanager.tolerations | (none) | List<Map> | The user-specified tolerations to be set to the JobManager pod. The value should be in the form of key:key1,operator:Equal,value:value1,effect:NoSchedule;key:key2,operator:Exists,effect:NoExecute,tolerationSeconds:6000
##### kubernetes.namespace | "default" | String | The namespace that will be used for running the jobmanager and taskmanager pods.
##### kubernetes.persistent-volume-claim-read-only | false | Boolean | Whether to mount PersistentVolumeClaims (PVCs) as read-only. When set to true, all PVCs configured via 'kubernetes.persistent-volume-claims' will be mounted as read-only. This is useful for shared data that should not be modified by Flink, such as reference datasets or pre-trained models. Note: This setting applies globally to all configured PVCs.
##### kubernetes.persistent-volume-claims | (none) | Map | The user-specified PersistentVolumeClaims (PVCs) that will be mounted into Flink containers. The value should be in the form of `pvc-name:/mount/path`. Multiple PVCs can be specified, for example: `checkpoint-pvc:/opt/flink/checkpoints,data-pvc:/opt/flink/data`. The PVCs must exist in the same namespace as the Flink cluster before deployment. For HA setups with multiple JobManagers or TaskManagers accessing the same storage, use PVCs with ReadWriteMany (RWX) or ReadOnlyMany (ROX) access modes.
##### kubernetes.pod-template-file.default | (none) | String | Specify a local file that contains the pod template definition. It will be used to initialize the jobmanager and taskmanager pod. The main container should be defined with name 'flink-main-container'. Notice that this can be overwritten by config options 'kubernetes.pod-template-file.jobmanager' and 'kubernetes.pod-template-file.taskmanager' for jobmanager and taskmanager respectively.
##### kubernetes.pod-template-file.jobmanager | (none) | String | Specify a local file that contains the jobmanager pod template definition. It will be used to initialize the jobmanager pod. The main container should be defined with name 'flink-main-container'. If not explicitly configured, config option 'kubernetes.pod-template-file.default' will be used.
##### kubernetes.pod-template-file.taskmanager | (none) | String | Specify a local file that contains the taskmanager pod template definition. It will be used to initialize the taskmanager pod. The main container should be defined with name 'flink-main-container'. If not explicitly configured, config option 'kubernetes.pod-template-file.default' will be used.
##### kubernetes.rest-service.annotations | (none) | Map | The user-specified annotations that are set to the rest Service. The value should be in the form of a1:v1,a2:v2
##### kubernetes.rest-service.exposed.node-port-address-type | InternalIP | Enum | The user-specified address type that is used for filtering node IPs when constructing a node port connection string. This option is only considered when 'kubernetes.rest-service.exposed.type' is set to 'NodePort'. Possible values: "InternalIP" "ExternalIP"
##### kubernetes.rest-service.exposed.type | ClusterIP | Enum | The exposed type of the rest service. The exposed rest service could be used to access the Flink’s Web UI and REST endpoint. Possible values: "ClusterIP" "NodePort" "LoadBalancer" "Headless_ClusterIP"
##### kubernetes.rest-service.labels | (none) | Map | The user-specified labels that are set to the rest Service. The value should be in the form of a1:v1,a2:v2
##### kubernetes.secrets | (none) | Map | The user-specified secrets that will be mounted into Flink container. The value should be in the form of `foo:/opt/secrets-foo,bar:/opt/secrets-bar`.
##### kubernetes.service-account | "default" | String | Service account that is used by jobmanager and taskmanager within kubernetes cluster. Notice that this can be overwritten by config options 'kubernetes.jobmanager.service-account' and 'kubernetes.taskmanager.service-account' for jobmanager and taskmanager respectively.
##### kubernetes.taskmanager.annotations | (none) | Map | The user-specified annotations that are set to the TaskManager pod. The value could be in the form of a1:v1,a2:v2
##### kubernetes.taskmanager.cpu.amount | -1.0 | Double | The number of cpu used by task manager. By default, the cpu is set to the number of slots per TaskManager
##### kubernetes.taskmanager.cpu.limit-factor | 1.0 | Double | The limit factor of cpu used by task manager. The resources limit cpu will be set to cpu * limit-factor.
##### kubernetes.taskmanager.entrypoint.args | (none) | String | Extra arguments used when starting the task manager.
##### kubernetes.taskmanager.labels | (none) | Map | The labels to be set for TaskManager pods. Specified as key:value pairs separated by commas. For example, version:alphav1,deploy:test.
##### kubernetes.taskmanager.memory.limit-factor | 1.0 | Double | The limit factor of memory used by task manager. The resources limit memory will be set to memory * limit-factor.
##### kubernetes.taskmanager.node-selector | (none) | Map | The node selector to be set for TaskManager pods. Specified as key:value pairs separated by commas. For example, environment:production,disk:ssd.
##### kubernetes.taskmanager.service-account | "default" | String | Service account that is used by taskmanager within kubernetes cluster. The task manager uses this service account when watching config maps on the API server to retrieve leader address of jobmanager and resourcemanager. If not explicitly configured, config option 'kubernetes.service-account' will be used.
##### kubernetes.taskmanager.tolerations | (none) | List<Map> | The user-specified tolerations to be set to the TaskManager pod. The value should be in the form of key:key1,operator:Equal,value:value1,effect:NoSchedule;key:key2,operator:Exists,effect:NoExecute,tolerationSeconds:6000
##### kubernetes.transactional-operation.initial-retry-delay | 50 ms | Duration | Defines the initial duration of Kubernetes transactional operation retries after fail
##### kubernetes.transactional-operation.max-retries | 15 | Integer | Defines the number of Kubernetes transactional operation retries before the client gives up. For example, `FlinkKubeClient#checkAndUpdateConfigMap`.
##### kubernetes.transactional-operation.max-retry-delay | 1 min | Duration | Defines the max duration of Kubernetes transactional operation retries after fail