cdk8s-plus-25
Version:
cdk8s+ is a software development framework that provides high level abstractions for authoring Kubernetes applications. cdk8s-plus-25 synthesizes Kubernetes manifests for Kubernetes 1.25.0
1,763 lines (1,060 loc) • 667 kB
Markdown
# API Reference <a name="API Reference"></a>
## Constructs <a name="Constructs"></a>
### AbstractPod <a name="cdk8s_plus_25.AbstractPod"></a>
- *Implements:* [`cdk8s_plus_25.IPodSelector`](#cdk8s_plus_25.IPodSelector), [`cdk8s_plus_25.INetworkPolicyPeer`](#cdk8s_plus_25.INetworkPolicyPeer), [`cdk8s_plus_25.ISubject`](#cdk8s_plus_25.ISubject)
#### Initializers <a name="cdk8s_plus_25.AbstractPod.Initializer"></a>
```python
import cdk8s_plus_25
cdk8s_plus_25.AbstractPod(
scope: Construct,
id: str,
metadata: ApiObjectMetadata = None,
automount_service_account_token: bool = None,
containers: typing.List[ContainerProps] = None,
dns: PodDnsProps = None,
docker_registry_auth: ISecret = None,
host_aliases: typing.List[HostAlias] = None,
host_network: bool = None,
init_containers: typing.List[ContainerProps] = None,
isolate: bool = None,
restart_policy: RestartPolicy = None,
security_context: PodSecurityContextProps = None,
service_account: IServiceAccount = None,
termination_grace_period: Duration = None,
volumes: typing.List[Volume] = None
)
```
##### `scope`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.parameter.id"></a>
- *Type:* `str`
---
##### `metadata`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.metadata"></a>
- *Type:* [`cdk8s.ApiObjectMetadata`](#cdk8s.ApiObjectMetadata)
Metadata that all persisted resources must have, which includes all objects users must create.
---
##### `automount_service_account_token`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.automount_service_account_token"></a>
- *Type:* `bool`
- *Default:* false
Indicates whether a service account token should be automatically mounted.
> https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
---
##### `containers`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.containers"></a>
- *Type:* typing.List[[`cdk8s_plus_25.ContainerProps`](#cdk8s_plus_25.ContainerProps)]
- *Default:* No containers. Note that a pod spec must include at least one container.
List of containers belonging to the pod.
Containers cannot currently be
added or removed. There must be at least one container in a Pod.
You can add additionnal containers using `podSpec.addContainer()`
---
##### `dns`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.dns"></a>
- *Type:* [`cdk8s_plus_25.PodDnsProps`](#cdk8s_plus_25.PodDnsProps)
- *Default:* policy: DnsPolicy.CLUSTER_FIRST
hostnameAsFQDN: false
DNS settings for the pod.
> https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
---
##### `docker_registry_auth`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.docker_registry_auth"></a>
- *Type:* [`cdk8s_plus_25.ISecret`](#cdk8s_plus_25.ISecret)
- *Default:* No auth. Images are assumed to be publicly available.
A secret containing docker credentials for authenticating to a registry.
---
##### `host_aliases`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.host_aliases"></a>
- *Type:* typing.List[[`cdk8s_plus_25.HostAlias`](#cdk8s_plus_25.HostAlias)]
HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.
---
##### `host_network`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.host_network"></a>
- *Type:* `bool`
- *Default:* false
Host network for the pod.
---
##### `init_containers`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.init_containers"></a>
- *Type:* typing.List[[`cdk8s_plus_25.ContainerProps`](#cdk8s_plus_25.ContainerProps)]
- *Default:* No init containers.
List of initialization containers belonging to the pod.
Init containers are executed in order prior to containers being started.
If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy.
The name for an init container or normal container must be unique among all containers.
Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.
The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit
for each resource type, and then using the max of of that value or the sum of the normal containers.
Limits are applied to init containers in a similar fashion.
Init containers cannot currently be added ,removed or updated.
> https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
---
##### `isolate`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.isolate"></a>
- *Type:* `bool`
- *Default:* false
Isolates the pod.
This will prevent any ingress or egress connections to / from this pod.
You can however allow explicit connections post instantiation by using the `.connections` property.
---
##### `restart_policy`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.restart_policy"></a>
- *Type:* [`cdk8s_plus_25.RestartPolicy`](#cdk8s_plus_25.RestartPolicy)
- *Default:* RestartPolicy.ALWAYS
Restart policy for all containers within the pod.
> https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
---
##### `security_context`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.security_context"></a>
- *Type:* [`cdk8s_plus_25.PodSecurityContextProps`](#cdk8s_plus_25.PodSecurityContextProps)
- *Default:* fsGroupChangePolicy: FsGroupChangePolicy.FsGroupChangePolicy.ALWAYS
ensureNonRoot: true
SecurityContext holds pod-level security attributes and common container settings.
---
##### `service_account`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.service_account"></a>
- *Type:* [`cdk8s_plus_25.IServiceAccount`](#cdk8s_plus_25.IServiceAccount)
- *Default:* No service account.
A service account provides an identity for processes that run in a Pod.
When you (a human) access the cluster (for example, using kubectl), you are
authenticated by the apiserver as a particular User Account (currently this
is usually admin, unless your cluster administrator has customized your
cluster). Processes in containers inside pods can also contact the
apiserver. When they do, they are authenticated as a particular Service
Account (for example, default).
> https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
---
##### `termination_grace_period`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.termination_grace_period"></a>
- *Type:* [`cdk8s.Duration`](#cdk8s.Duration)
- *Default:* Duration.seconds(30)
Grace period until the pod is terminated.
---
##### `volumes`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPodProps.parameter.volumes"></a>
- *Type:* typing.List[[`cdk8s_plus_25.Volume`](#cdk8s_plus_25.Volume)]
- *Default:* No volumes.
List of volumes that can be mounted by containers belonging to the pod.
You can also add volumes later using `podSpec.addVolume()`
> https://kubernetes.io/docs/concepts/storage/volumes
---
#### Methods <a name="Methods"></a>
##### `add_container` <a name="cdk8s_plus_25.AbstractPod.add_container"></a>
```python
def add_container(
args: typing.List[str] = None,
command: typing.List[str] = None,
env_from: typing.List[EnvFrom] = None,
env_variables: typing.Mapping[EnvValue] = None,
image_pull_policy: ImagePullPolicy = None,
lifecycle: ContainerLifecycle = None,
liveness: Probe = None,
name: str = None,
port: typing.Union[int, float] = None,
port_number: typing.Union[int, float] = None,
ports: typing.List[ContainerPort] = None,
readiness: Probe = None,
resources: ContainerResources = None,
security_context: ContainerSecurityContextProps = None,
startup: Probe = None,
volume_mounts: typing.List[VolumeMount] = None,
working_dir: str = None,
image: str
)
```
###### `args`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.args"></a>
- *Type:* typing.List[`str`]
- *Default:* []
Arguments to the entrypoint. The docker image's CMD is used if `command` is not provided.
Variable references $(VAR_NAME) are expanded using the container's
environment. If a variable cannot be resolved, the reference in the input
string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
regardless of whether the variable exists or not.
Cannot be updated.
> https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
---
###### `command`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.command"></a>
- *Type:* typing.List[`str`]
- *Default:* The docker image's ENTRYPOINT.
Entrypoint array.
Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment.
If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME).
Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
---
###### `env_from`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.env_from"></a>
- *Type:* typing.List[[`cdk8s_plus_25.EnvFrom`](#cdk8s_plus_25.EnvFrom)]
- *Default:* No sources.
List of sources to populate environment variables in the container.
When a key exists in multiple sources, the value associated with
the last source will take precedence. Values defined by the `envVariables` property
with a duplicate key will take precedence.
---
###### `env_variables`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.env_variables"></a>
- *Type:* typing.Mapping[[`cdk8s_plus_25.EnvValue`](#cdk8s_plus_25.EnvValue)]
- *Default:* No environment variables.
Environment variables to set in the container.
---
###### `image_pull_policy`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.image_pull_policy"></a>
- *Type:* [`cdk8s_plus_25.ImagePullPolicy`](#cdk8s_plus_25.ImagePullPolicy)
- *Default:* ImagePullPolicy.ALWAYS
Image pull policy for this container.
---
###### `lifecycle`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.lifecycle"></a>
- *Type:* [`cdk8s_plus_25.ContainerLifecycle`](#cdk8s_plus_25.ContainerLifecycle)
Describes actions that the management system should take in response to container lifecycle events.
---
###### `liveness`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.liveness"></a>
- *Type:* [`cdk8s_plus_25.Probe`](#cdk8s_plus_25.Probe)
- *Default:* no liveness probe is defined
Periodic probe of container liveness.
Container will be restarted if the probe fails.
---
###### `name`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.name"></a>
- *Type:* `str`
- *Default:* 'main'
Name of the container specified as a DNS_LABEL.
Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.
---
###### ~~`port`~~<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.port"></a>
- *Deprecated:* - use `portNumber`.
- *Type:* `typing.Union[int, float]`
---
###### `port_number`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.port_number"></a>
- *Type:* `typing.Union[int, float]`
- *Default:* Only the ports mentiond in the `ports` property are exposed.
Number of port to expose on the pod's IP address.
This must be a valid port number, 0 < x < 65536.
This is a convinience property if all you need a single TCP numbered port.
In case more advanced configuartion is required, use the `ports` property.
This port is added to the list of ports mentioned in the `ports` property.
---
###### `ports`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.ports"></a>
- *Type:* typing.List[[`cdk8s_plus_25.ContainerPort`](#cdk8s_plus_25.ContainerPort)]
- *Default:* Only the port mentioned in the `portNumber` property is exposed.
List of ports to expose from this container.
---
###### `readiness`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.readiness"></a>
- *Type:* [`cdk8s_plus_25.Probe`](#cdk8s_plus_25.Probe)
- *Default:* no readiness probe is defined
Determines when the container is ready to serve traffic.
---
###### `resources`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.resources"></a>
- *Type:* [`cdk8s_plus_25.ContainerResources`](#cdk8s_plus_25.ContainerResources)
- *Default:* cpu:
request: 1000 millis
limit: 1500 millis
memory:
request: 512 mebibytes
limit: 2048 mebibytes
Compute resources (CPU and memory requests and limits) required by the container.
> https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
---
###### `security_context`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.security_context"></a>
- *Type:* [`cdk8s_plus_25.ContainerSecurityContextProps`](#cdk8s_plus_25.ContainerSecurityContextProps)
- *Default:* ensureNonRoot: true
privileged: false
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
user: 25000
group: 26000
SecurityContext defines the security options the container should be run with.
If set, the fields override equivalent fields of the pod's security context.
> https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
---
###### `startup`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.startup"></a>
- *Type:* [`cdk8s_plus_25.Probe`](#cdk8s_plus_25.Probe)
- *Default:* If a port is provided, then knocks on that port
to determine when the container is ready for readiness and
liveness probe checks.
Otherwise, no startup probe is defined.
StartupProbe indicates that the Pod has successfully initialized.
If specified, no other probes are executed until this completes successfully
---
###### `volume_mounts`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.volume_mounts"></a>
- *Type:* typing.List[[`cdk8s_plus_25.VolumeMount`](#cdk8s_plus_25.VolumeMount)]
Pod volumes to mount into the container's filesystem.
Cannot be updated.
---
###### `working_dir`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.working_dir"></a>
- *Type:* `str`
- *Default:* The container runtime's default.
Container's working directory.
If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.
---
###### `image`<sup>Required</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.image"></a>
- *Type:* `str`
Docker image name.
---
##### `add_host_alias` <a name="cdk8s_plus_25.AbstractPod.add_host_alias"></a>
```python
def add_host_alias(
hostnames: typing.List[str],
ip: str
)
```
###### `hostnames`<sup>Required</sup> <a name="cdk8s_plus_25.HostAlias.parameter.hostnames"></a>
- *Type:* typing.List[`str`]
Hostnames for the chosen IP address.
---
###### `ip`<sup>Required</sup> <a name="cdk8s_plus_25.HostAlias.parameter.ip"></a>
- *Type:* `str`
IP address of the host file entry.
---
##### `add_init_container` <a name="cdk8s_plus_25.AbstractPod.add_init_container"></a>
```python
def add_init_container(
args: typing.List[str] = None,
command: typing.List[str] = None,
env_from: typing.List[EnvFrom] = None,
env_variables: typing.Mapping[EnvValue] = None,
image_pull_policy: ImagePullPolicy = None,
lifecycle: ContainerLifecycle = None,
liveness: Probe = None,
name: str = None,
port: typing.Union[int, float] = None,
port_number: typing.Union[int, float] = None,
ports: typing.List[ContainerPort] = None,
readiness: Probe = None,
resources: ContainerResources = None,
security_context: ContainerSecurityContextProps = None,
startup: Probe = None,
volume_mounts: typing.List[VolumeMount] = None,
working_dir: str = None,
image: str
)
```
###### `args`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.args"></a>
- *Type:* typing.List[`str`]
- *Default:* []
Arguments to the entrypoint. The docker image's CMD is used if `command` is not provided.
Variable references $(VAR_NAME) are expanded using the container's
environment. If a variable cannot be resolved, the reference in the input
string will be unchanged. The $(VAR_NAME) syntax can be escaped with a
double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
regardless of whether the variable exists or not.
Cannot be updated.
> https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
---
###### `command`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.command"></a>
- *Type:* typing.List[`str`]
- *Default:* The docker image's ENTRYPOINT.
Entrypoint array.
Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment.
If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME).
Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
---
###### `env_from`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.env_from"></a>
- *Type:* typing.List[[`cdk8s_plus_25.EnvFrom`](#cdk8s_plus_25.EnvFrom)]
- *Default:* No sources.
List of sources to populate environment variables in the container.
When a key exists in multiple sources, the value associated with
the last source will take precedence. Values defined by the `envVariables` property
with a duplicate key will take precedence.
---
###### `env_variables`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.env_variables"></a>
- *Type:* typing.Mapping[[`cdk8s_plus_25.EnvValue`](#cdk8s_plus_25.EnvValue)]
- *Default:* No environment variables.
Environment variables to set in the container.
---
###### `image_pull_policy`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.image_pull_policy"></a>
- *Type:* [`cdk8s_plus_25.ImagePullPolicy`](#cdk8s_plus_25.ImagePullPolicy)
- *Default:* ImagePullPolicy.ALWAYS
Image pull policy for this container.
---
###### `lifecycle`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.lifecycle"></a>
- *Type:* [`cdk8s_plus_25.ContainerLifecycle`](#cdk8s_plus_25.ContainerLifecycle)
Describes actions that the management system should take in response to container lifecycle events.
---
###### `liveness`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.liveness"></a>
- *Type:* [`cdk8s_plus_25.Probe`](#cdk8s_plus_25.Probe)
- *Default:* no liveness probe is defined
Periodic probe of container liveness.
Container will be restarted if the probe fails.
---
###### `name`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.name"></a>
- *Type:* `str`
- *Default:* 'main'
Name of the container specified as a DNS_LABEL.
Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.
---
###### ~~`port`~~<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.port"></a>
- *Deprecated:* - use `portNumber`.
- *Type:* `typing.Union[int, float]`
---
###### `port_number`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.port_number"></a>
- *Type:* `typing.Union[int, float]`
- *Default:* Only the ports mentiond in the `ports` property are exposed.
Number of port to expose on the pod's IP address.
This must be a valid port number, 0 < x < 65536.
This is a convinience property if all you need a single TCP numbered port.
In case more advanced configuartion is required, use the `ports` property.
This port is added to the list of ports mentioned in the `ports` property.
---
###### `ports`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.ports"></a>
- *Type:* typing.List[[`cdk8s_plus_25.ContainerPort`](#cdk8s_plus_25.ContainerPort)]
- *Default:* Only the port mentioned in the `portNumber` property is exposed.
List of ports to expose from this container.
---
###### `readiness`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.readiness"></a>
- *Type:* [`cdk8s_plus_25.Probe`](#cdk8s_plus_25.Probe)
- *Default:* no readiness probe is defined
Determines when the container is ready to serve traffic.
---
###### `resources`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.resources"></a>
- *Type:* [`cdk8s_plus_25.ContainerResources`](#cdk8s_plus_25.ContainerResources)
- *Default:* cpu:
request: 1000 millis
limit: 1500 millis
memory:
request: 512 mebibytes
limit: 2048 mebibytes
Compute resources (CPU and memory requests and limits) required by the container.
> https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
---
###### `security_context`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.security_context"></a>
- *Type:* [`cdk8s_plus_25.ContainerSecurityContextProps`](#cdk8s_plus_25.ContainerSecurityContextProps)
- *Default:* ensureNonRoot: true
privileged: false
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
user: 25000
group: 26000
SecurityContext defines the security options the container should be run with.
If set, the fields override equivalent fields of the pod's security context.
> https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
---
###### `startup`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.startup"></a>
- *Type:* [`cdk8s_plus_25.Probe`](#cdk8s_plus_25.Probe)
- *Default:* If a port is provided, then knocks on that port
to determine when the container is ready for readiness and
liveness probe checks.
Otherwise, no startup probe is defined.
StartupProbe indicates that the Pod has successfully initialized.
If specified, no other probes are executed until this completes successfully
---
###### `volume_mounts`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.volume_mounts"></a>
- *Type:* typing.List[[`cdk8s_plus_25.VolumeMount`](#cdk8s_plus_25.VolumeMount)]
Pod volumes to mount into the container's filesystem.
Cannot be updated.
---
###### `working_dir`<sup>Optional</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.working_dir"></a>
- *Type:* `str`
- *Default:* The container runtime's default.
Container's working directory.
If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.
---
###### `image`<sup>Required</sup> <a name="cdk8s_plus_25.ContainerProps.parameter.image"></a>
- *Type:* `str`
Docker image name.
---
##### `add_volume` <a name="cdk8s_plus_25.AbstractPod.add_volume"></a>
```python
def add_volume(
vol: Volume
)
```
###### `vol`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.parameter.vol"></a>
- *Type:* [`cdk8s_plus_25.Volume`](#cdk8s_plus_25.Volume)
---
##### `attach_container` <a name="cdk8s_plus_25.AbstractPod.attach_container"></a>
```python
def attach_container(
cont: Container
)
```
###### `cont`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.parameter.cont"></a>
- *Type:* [`cdk8s_plus_25.Container`](#cdk8s_plus_25.Container)
---
##### `to_network_policy_peer_config` <a name="cdk8s_plus_25.AbstractPod.to_network_policy_peer_config"></a>
```python
def to_network_policy_peer_config()
```
##### `to_pod_selector` <a name="cdk8s_plus_25.AbstractPod.to_pod_selector"></a>
```python
def to_pod_selector()
```
##### `to_pod_selector_config` <a name="cdk8s_plus_25.AbstractPod.to_pod_selector_config"></a>
```python
def to_pod_selector_config()
```
##### `to_subject_configuration` <a name="cdk8s_plus_25.AbstractPod.to_subject_configuration"></a>
```python
def to_subject_configuration()
```
#### Properties <a name="Properties"></a>
##### `automount_service_account_token`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.automount_service_account_token"></a>
```python
automount_service_account_token: bool
```
- *Type:* `bool`
---
##### `containers`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.containers"></a>
```python
containers: typing.List[Container]
```
- *Type:* typing.List[[`cdk8s_plus_25.Container`](#cdk8s_plus_25.Container)]
---
##### `dns`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.dns"></a>
```python
dns: PodDns
```
- *Type:* [`cdk8s_plus_25.PodDns`](#cdk8s_plus_25.PodDns)
---
##### `host_aliases`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.host_aliases"></a>
```python
host_aliases: typing.List[HostAlias]
```
- *Type:* typing.List[[`cdk8s_plus_25.HostAlias`](#cdk8s_plus_25.HostAlias)]
---
##### `init_containers`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.init_containers"></a>
```python
init_containers: typing.List[Container]
```
- *Type:* typing.List[[`cdk8s_plus_25.Container`](#cdk8s_plus_25.Container)]
---
##### `pod_metadata`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.pod_metadata"></a>
```python
pod_metadata: ApiObjectMetadataDefinition
```
- *Type:* [`cdk8s.ApiObjectMetadataDefinition`](#cdk8s.ApiObjectMetadataDefinition)
---
##### `security_context`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.security_context"></a>
```python
security_context: PodSecurityContext
```
- *Type:* [`cdk8s_plus_25.PodSecurityContext`](#cdk8s_plus_25.PodSecurityContext)
---
##### `volumes`<sup>Required</sup> <a name="cdk8s_plus_25.AbstractPod.property.volumes"></a>
```python
volumes: typing.List[Volume]
```
- *Type:* typing.List[[`cdk8s_plus_25.Volume`](#cdk8s_plus_25.Volume)]
---
##### `docker_registry_auth`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPod.property.docker_registry_auth"></a>
```python
docker_registry_auth: ISecret
```
- *Type:* [`cdk8s_plus_25.ISecret`](#cdk8s_plus_25.ISecret)
---
##### `host_network`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPod.property.host_network"></a>
```python
host_network: bool
```
- *Type:* `bool`
---
##### `restart_policy`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPod.property.restart_policy"></a>
```python
restart_policy: RestartPolicy
```
- *Type:* [`cdk8s_plus_25.RestartPolicy`](#cdk8s_plus_25.RestartPolicy)
---
##### `service_account`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPod.property.service_account"></a>
```python
service_account: IServiceAccount
```
- *Type:* [`cdk8s_plus_25.IServiceAccount`](#cdk8s_plus_25.IServiceAccount)
---
##### `termination_grace_period`<sup>Optional</sup> <a name="cdk8s_plus_25.AbstractPod.property.termination_grace_period"></a>
```python
termination_grace_period: Duration
```
- *Type:* [`cdk8s.Duration`](#cdk8s.Duration)
---
### AwsElasticBlockStorePersistentVolume <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume"></a>
Represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod.
> https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
#### Initializers <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume.Initializer"></a>
```python
import cdk8s_plus_25
cdk8s_plus_25.AwsElasticBlockStorePersistentVolume(
scope: Construct,
id: str,
metadata: ApiObjectMetadata = None,
access_modes: typing.List[PersistentVolumeAccessMode] = None,
claim: IPersistentVolumeClaim = None,
mount_options: typing.List[str] = None,
reclaim_policy: PersistentVolumeReclaimPolicy = None,
storage: Size = None,
storage_class_name: str = None,
volume_mode: PersistentVolumeMode = None,
volume_id: str,
fs_type: str = None,
partition: typing.Union[int, float] = None,
read_only: bool = None
)
```
##### `scope`<sup>Required</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume.parameter.id"></a>
- *Type:* `str`
---
##### `metadata`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.metadata"></a>
- *Type:* [`cdk8s.ApiObjectMetadata`](#cdk8s.ApiObjectMetadata)
Metadata that all persisted resources must have, which includes all objects users must create.
---
##### `access_modes`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.access_modes"></a>
- *Type:* typing.List[[`cdk8s_plus_25.PersistentVolumeAccessMode`](#cdk8s_plus_25.PersistentVolumeAccessMode)]
- *Default:* No access modes.
Contains all ways the volume can be mounted.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
---
##### `claim`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.claim"></a>
- *Type:* [`cdk8s_plus_25.IPersistentVolumeClaim`](#cdk8s_plus_25.IPersistentVolumeClaim)
- *Default:* Not bound to a specific claim.
Part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
Expected to be non-nil when bound.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
---
##### `mount_options`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.mount_options"></a>
- *Type:* typing.List[`str`]
- *Default:* No options.
A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will simply fail if one is invalid.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
---
##### `reclaim_policy`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.reclaim_policy"></a>
- *Type:* [`cdk8s_plus_25.PersistentVolumeReclaimPolicy`](#cdk8s_plus_25.PersistentVolumeReclaimPolicy)
- *Default:* PersistentVolumeReclaimPolicy.RETAIN
When a user is done with their volume, they can delete the PVC objects from the API that allows reclamation of the resource.
The reclaim policy tells the cluster what to do with
the volume after it has been released of its claim.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
---
##### `storage`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.storage"></a>
- *Type:* [`cdk8s.Size`](#cdk8s.Size)
- *Default:* No specified.
What is the storage capacity of this volume.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
---
##### `storage_class_name`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.storage_class_name"></a>
- *Type:* `str`
- *Default:* Volume does not belong to any storage class.
Name of StorageClass to which this persistent volume belongs.
---
##### `volume_mode`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.volume_mode"></a>
- *Type:* [`cdk8s_plus_25.PersistentVolumeMode`](#cdk8s_plus_25.PersistentVolumeMode)
- *Default:* VolumeMode.FILE_SYSTEM
Defines what type of volume is required by the claim.
---
##### `volume_id`<sup>Required</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.volume_id"></a>
- *Type:* `str`
Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
> https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
---
##### `fs_type`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.fs_type"></a>
- *Type:* `str`
- *Default:* 'ext4'
Filesystem type of the volume that you want to mount.
Tip: Ensure that the filesystem type is supported by the host operating system.
> https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
---
##### `partition`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.partition"></a>
- *Type:* `typing.Union[int, float]`
- *Default:* No partition.
The partition in the volume that you want to mount.
If omitted, the default is to mount by volume name.
Examples: For volume /dev/sda1, you specify the partition as "1".
Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
---
##### `read_only`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolumeProps.parameter.read_only"></a>
- *Type:* `bool`
- *Default:* false
Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
> https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
---
#### Properties <a name="Properties"></a>
##### `fs_type`<sup>Required</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume.property.fs_type"></a>
```python
fs_type: str
```
- *Type:* `str`
File system type of this volume.
---
##### `read_only`<sup>Required</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume.property.read_only"></a>
```python
read_only: bool
```
- *Type:* `bool`
Whether or not it is mounted as a read-only volume.
---
##### `volume_id`<sup>Required</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume.property.volume_id"></a>
```python
volume_id: str
```
- *Type:* `str`
Volume id of this volume.
---
##### `partition`<sup>Optional</sup> <a name="cdk8s_plus_25.AwsElasticBlockStorePersistentVolume.property.partition"></a>
```python
partition: typing.Union[int, float]
```
- *Type:* `typing.Union[int, float]`
Partition of this volume.
---
### AzureDiskPersistentVolume <a name="cdk8s_plus_25.AzureDiskPersistentVolume"></a>
AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
#### Initializers <a name="cdk8s_plus_25.AzureDiskPersistentVolume.Initializer"></a>
```python
import cdk8s_plus_25
cdk8s_plus_25.AzureDiskPersistentVolume(
scope: Construct,
id: str,
metadata: ApiObjectMetadata = None,
access_modes: typing.List[PersistentVolumeAccessMode] = None,
claim: IPersistentVolumeClaim = None,
mount_options: typing.List[str] = None,
reclaim_policy: PersistentVolumeReclaimPolicy = None,
storage: Size = None,
storage_class_name: str = None,
volume_mode: PersistentVolumeMode = None,
disk_name: str,
disk_uri: str,
caching_mode: AzureDiskPersistentVolumeCachingMode = None,
fs_type: str = None,
kind: AzureDiskPersistentVolumeKind = None,
read_only: bool = None
)
```
##### `scope`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.parameter.id"></a>
- *Type:* `str`
---
##### `metadata`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.metadata"></a>
- *Type:* [`cdk8s.ApiObjectMetadata`](#cdk8s.ApiObjectMetadata)
Metadata that all persisted resources must have, which includes all objects users must create.
---
##### `access_modes`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.access_modes"></a>
- *Type:* typing.List[[`cdk8s_plus_25.PersistentVolumeAccessMode`](#cdk8s_plus_25.PersistentVolumeAccessMode)]
- *Default:* No access modes.
Contains all ways the volume can be mounted.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
---
##### `claim`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.claim"></a>
- *Type:* [`cdk8s_plus_25.IPersistentVolumeClaim`](#cdk8s_plus_25.IPersistentVolumeClaim)
- *Default:* Not bound to a specific claim.
Part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
Expected to be non-nil when bound.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
---
##### `mount_options`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.mount_options"></a>
- *Type:* typing.List[`str`]
- *Default:* No options.
A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will simply fail if one is invalid.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
---
##### `reclaim_policy`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.reclaim_policy"></a>
- *Type:* [`cdk8s_plus_25.PersistentVolumeReclaimPolicy`](#cdk8s_plus_25.PersistentVolumeReclaimPolicy)
- *Default:* PersistentVolumeReclaimPolicy.RETAIN
When a user is done with their volume, they can delete the PVC objects from the API that allows reclamation of the resource.
The reclaim policy tells the cluster what to do with
the volume after it has been released of its claim.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
---
##### `storage`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.storage"></a>
- *Type:* [`cdk8s.Size`](#cdk8s.Size)
- *Default:* No specified.
What is the storage capacity of this volume.
> https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
---
##### `storage_class_name`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.storage_class_name"></a>
- *Type:* `str`
- *Default:* Volume does not belong to any storage class.
Name of StorageClass to which this persistent volume belongs.
---
##### `volume_mode`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.volume_mode"></a>
- *Type:* [`cdk8s_plus_25.PersistentVolumeMode`](#cdk8s_plus_25.PersistentVolumeMode)
- *Default:* VolumeMode.FILE_SYSTEM
Defines what type of volume is required by the claim.
---
##### `disk_name`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.disk_name"></a>
- *Type:* `str`
The Name of the data disk in the blob storage.
---
##### `disk_uri`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.disk_uri"></a>
- *Type:* `str`
The URI the data disk in the blob storage.
---
##### `caching_mode`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.caching_mode"></a>
- *Type:* [`cdk8s_plus_25.AzureDiskPersistentVolumeCachingMode`](#cdk8s_plus_25.AzureDiskPersistentVolumeCachingMode)
- *Default:* AzureDiskPersistentVolumeCachingMode.NONE.
Host Caching mode.
---
##### `fs_type`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.fs_type"></a>
- *Type:* `str`
- *Default:* 'ext4'
Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
---
##### `kind`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.kind"></a>
- *Type:* [`cdk8s_plus_25.AzureDiskPersistentVolumeKind`](#cdk8s_plus_25.AzureDiskPersistentVolumeKind)
- *Default:* AzureDiskPersistentVolumeKind.SHARED
Kind of disk.
---
##### `read_only`<sup>Optional</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolumeProps.parameter.read_only"></a>
- *Type:* `bool`
- *Default:* false
Force the ReadOnly setting in VolumeMounts.
---
#### Properties <a name="Properties"></a>
##### `azure_kind`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.property.azure_kind"></a>
```python
azure_kind: AzureDiskPersistentVolumeKind
```
- *Type:* [`cdk8s_plus_25.AzureDiskPersistentVolumeKind`](#cdk8s_plus_25.AzureDiskPersistentVolumeKind)
Azure kind of this volume.
---
##### `caching_mode`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.property.caching_mode"></a>
```python
caching_mode: AzureDiskPersistentVolumeCachingMode
```
- *Type:* [`cdk8s_plus_25.AzureDiskPersistentVolumeCachingMode`](#cdk8s_plus_25.AzureDiskPersistentVolumeCachingMode)
Caching mode of this volume.
---
##### `disk_name`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.property.disk_name"></a>
```python
disk_name: str
```
- *Type:* `str`
Disk name of this volume.
---
##### `disk_uri`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.property.disk_uri"></a>
```python
disk_uri: str
```
- *Type:* `str`
Disk URI of this volume.
---
##### `fs_type`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.property.fs_type"></a>
```python
fs_type: str
```
- *Type:* `str`
File system type of this volume.
---
##### `read_only`<sup>Required</sup> <a name="cdk8s_plus_25.AzureDiskPersistentVolume.property.read_only"></a>
```python
read_only: bool
```
- *Type:* `bool`
Whether or not it is mounted as a read-only volume.
---
### BasicAuthSecret <a name="cdk8s_plus_25.BasicAuthSecret"></a>
Create a secret for basic authentication.
> https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret
#### Initializers <a name="cdk8s_plus_25.BasicAuthSecret.Initializer"></a>
```python
import cdk8s_plus_25
cdk8s_plus_25.BasicAuthSecret(
scope: Construct,
id: str,
metadata: ApiObjectMetadata = None,
immutable: bool = None,
password: str,
username: str
)
```
##### `scope`<sup>Required</sup> <a name="cdk8s_plus_25.BasicAuthSecret.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s_plus_25.BasicAuthSecret.parameter.id"></a>
- *Type:* `str`
---
##### `metadata`<sup>Optional</sup> <a name="cdk8s_plus_25.BasicAuthSecretProps.parameter.metadata"></a>
- *Type:* [`cdk8s.ApiObjectMetadata`](#cdk8s.ApiObjectMetadata)
Metadata that all persisted resources must have, which includes all objects users must create.
---
##### `immutable`<sup>Optional</sup> <a name="cdk8s_plus_25.BasicAuthSecretProps.parameter.immutable"></a>
- *Type:* `bool`
- *Default:* false
If set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified).
If not set to true, the field can be modified at any time.
---
##### `password`<sup>Required</sup> <a name="cdk8s_plus_25.BasicAuthSecretProps.parameter.password"></a>
- *Type:* `str`
The password or token for authentication.
---
##### `username`<sup>Required</sup> <a name="cdk8s_plus_25.BasicAuthSecretProps.parameter.username"></a>
- *Type:* `str`
The user name for authentication.
---
### ClusterRole <a name="cdk8s_plus_25.ClusterRole"></a>
- *Implements:* [`cdk8s_plus_25.IClusterRole`](#cdk8s_plus_25.IClusterRole), [`cdk8s_plus_25.IRole`](#cdk8s_plus_25.IRole)
ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.
#### Initializers <a name="cdk8s_plus_25.ClusterRole.Initializer"></a>
```python
import cdk8s_plus_25
cdk8s_plus_25.ClusterRole(
scope: Construct,
id: str,
metadata: ApiObjectMetadata = None,
aggregation_labels: typing.Mapping[str] = None,
rules: typing.List[ClusterRolePolicyRule] = None
)
```
##### `scope`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.id"></a>
- *Type:* `str`
---
##### `metadata`<sup>Optional</sup> <a name="cdk8s_plus_25.ClusterRoleProps.parameter.metadata"></a>
- *Type:* [`cdk8s.ApiObjectMetadata`](#cdk8s.ApiObjectMetadata)
Metadata that all persisted resources must have, which includes all objects users must create.
---
##### `aggregation_labels`<sup>Optional</sup> <a name="cdk8s_plus_25.ClusterRoleProps.parameter.aggregation_labels"></a>
- *Type:* typing.Mapping[`str`]
Specify labels that should be used to locate ClusterRoles, whose rules will be automatically filled into this ClusterRole's rules.
---
##### `rules`<sup>Optional</sup> <a name="cdk8s_plus_25.ClusterRoleProps.parameter.rules"></a>
- *Type:* typing.List[[`cdk8s_plus_25.ClusterRolePolicyRule`](#cdk8s_plus_25.ClusterRolePolicyRule)]
- *Default:* []
A list of rules the role should allow.
---
#### Methods <a name="Methods"></a>
##### `aggregate` <a name="cdk8s_plus_25.ClusterRole.aggregate"></a>
```python
def aggregate(
key: str,
value: str
)
```
###### `key`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.key"></a>
- *Type:* `str`
---
###### `value`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.value"></a>
- *Type:* `str`
---
##### `allow` <a name="cdk8s_plus_25.ClusterRole.allow"></a>
```python
def allow(
verbs: typing.List[str],
endpoints: IApiEndpoint
)
```
###### `verbs`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.verbs"></a>
- *Type:* typing.List[`str`]
---
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The endpoints(s) to apply to.
---
##### `allow_create` <a name="cdk8s_plus_25.ClusterRole.allow_create"></a>
```python
def allow_create(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_delete` <a name="cdk8s_plus_25.ClusterRole.allow_delete"></a>
```python
def allow_delete(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_delete_collection` <a name="cdk8s_plus_25.ClusterRole.allow_delete_collection"></a>
```python
def allow_delete_collection(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_get` <a name="cdk8s_plus_25.ClusterRole.allow_get"></a>
```python
def allow_get(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_list` <a name="cdk8s_plus_25.ClusterRole.allow_list"></a>
```python
def allow_list(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_patch` <a name="cdk8s_plus_25.ClusterRole.allow_patch"></a>
```python
def allow_patch(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_read` <a name="cdk8s_plus_25.ClusterRole.allow_read"></a>
```python
def allow_read(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_read_write` <a name="cdk8s_plus_25.ClusterRole.allow_read_write"></a>
```python
def allow_read_write(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_update` <a name="cdk8s_plus_25.ClusterRole.allow_update"></a>
```python
def allow_update(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `allow_watch` <a name="cdk8s_plus_25.ClusterRole.allow_watch"></a>
```python
def allow_watch(
endpoints: IApiEndpoint
)
```
###### `endpoints`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.endpoints"></a>
- *Type:* [`cdk8s_plus_25.IApiEndpoint`](#cdk8s_plus_25.IApiEndpoint)
The resource(s) to apply to.
---
##### `bind` <a name="cdk8s_plus_25.ClusterRole.bind"></a>
```python
def bind(
subjects: ISubject
)
```
###### `subjects`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.subjects"></a>
- *Type:* [`cdk8s_plus_25.ISubject`](#cdk8s_plus_25.ISubject)
a list of subjects to bind to.
---
##### `bind_in_namespace` <a name="cdk8s_plus_25.ClusterRole.bind_in_namespace"></a>
```python
def bind_in_namespace(
namespace: str,
subjects: ISubject
)
```
###### `namespace`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.namespace"></a>
- *Type:* `str`
the namespace to limit permissions to.
---
###### `subjects`<sup>Required</sup> <a name="cdk8s_plus_25.ClusterRole.parameter.subjects"></a>
- *Type:* [`cdk8s_plus_25.ISubject`](#cdk8s_plus_25.ISubject)
a list of subjects to bind to.
---
##### `combine` <a name="cdk8s_plus_2