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
2,023 lines (1,131 loc) • 496 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>
```typescript
import { AbstractPod } from 'cdk8s-plus-25'
new AbstractPod(scope: Construct, id: string, props?: AbstractPodProps)
```
##### `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:* `string`
---
##### `props`<sup>Optional</sup> <a name="cdk8s-plus-25.AbstractPod.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.AbstractPodProps`](#cdk8s-plus-25.AbstractPodProps)
---
#### Methods <a name="Methods"></a>
##### `addContainer` <a name="cdk8s-plus-25.AbstractPod.addContainer"></a>
```typescript
public addContainer(cont: ContainerProps)
```
###### `cont`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.parameter.cont"></a>
- *Type:* [`cdk8s-plus-25.ContainerProps`](#cdk8s-plus-25.ContainerProps)
---
##### `addHostAlias` <a name="cdk8s-plus-25.AbstractPod.addHostAlias"></a>
```typescript
public addHostAlias(hostAlias: HostAlias)
```
###### `hostAlias`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.parameter.hostAlias"></a>
- *Type:* [`cdk8s-plus-25.HostAlias`](#cdk8s-plus-25.HostAlias)
---
##### `addInitContainer` <a name="cdk8s-plus-25.AbstractPod.addInitContainer"></a>
```typescript
public addInitContainer(cont: ContainerProps)
```
###### `cont`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.parameter.cont"></a>
- *Type:* [`cdk8s-plus-25.ContainerProps`](#cdk8s-plus-25.ContainerProps)
---
##### `addVolume` <a name="cdk8s-plus-25.AbstractPod.addVolume"></a>
```typescript
public addVolume(vol: Volume)
```
###### `vol`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.parameter.vol"></a>
- *Type:* [`cdk8s-plus-25.Volume`](#cdk8s-plus-25.Volume)
---
##### `attachContainer` <a name="cdk8s-plus-25.AbstractPod.attachContainer"></a>
```typescript
public attachContainer(cont: Container)
```
###### `cont`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.parameter.cont"></a>
- *Type:* [`cdk8s-plus-25.Container`](#cdk8s-plus-25.Container)
---
##### `toNetworkPolicyPeerConfig` <a name="cdk8s-plus-25.AbstractPod.toNetworkPolicyPeerConfig"></a>
```typescript
public toNetworkPolicyPeerConfig()
```
##### `toPodSelector` <a name="cdk8s-plus-25.AbstractPod.toPodSelector"></a>
```typescript
public toPodSelector()
```
##### `toPodSelectorConfig` <a name="cdk8s-plus-25.AbstractPod.toPodSelectorConfig"></a>
```typescript
public toPodSelectorConfig()
```
##### `toSubjectConfiguration` <a name="cdk8s-plus-25.AbstractPod.toSubjectConfiguration"></a>
```typescript
public toSubjectConfiguration()
```
#### Properties <a name="Properties"></a>
##### `automountServiceAccountToken`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.automountServiceAccountToken"></a>
```typescript
public readonly automountServiceAccountToken: boolean;
```
- *Type:* `boolean`
---
##### `containers`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.containers"></a>
```typescript
public readonly containers: Container[];
```
- *Type:* [`cdk8s-plus-25.Container`](#cdk8s-plus-25.Container)[]
---
##### `dns`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.dns"></a>
```typescript
public readonly dns: PodDns;
```
- *Type:* [`cdk8s-plus-25.PodDns`](#cdk8s-plus-25.PodDns)
---
##### `hostAliases`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.hostAliases"></a>
```typescript
public readonly hostAliases: HostAlias[];
```
- *Type:* [`cdk8s-plus-25.HostAlias`](#cdk8s-plus-25.HostAlias)[]
---
##### `initContainers`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.initContainers"></a>
```typescript
public readonly initContainers: Container[];
```
- *Type:* [`cdk8s-plus-25.Container`](#cdk8s-plus-25.Container)[]
---
##### `podMetadata`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.podMetadata"></a>
```typescript
public readonly podMetadata: ApiObjectMetadataDefinition;
```
- *Type:* [`cdk8s.ApiObjectMetadataDefinition`](#cdk8s.ApiObjectMetadataDefinition)
---
##### `securityContext`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.securityContext"></a>
```typescript
public readonly securityContext: PodSecurityContext;
```
- *Type:* [`cdk8s-plus-25.PodSecurityContext`](#cdk8s-plus-25.PodSecurityContext)
---
##### `volumes`<sup>Required</sup> <a name="cdk8s-plus-25.AbstractPod.property.volumes"></a>
```typescript
public readonly volumes: Volume[];
```
- *Type:* [`cdk8s-plus-25.Volume`](#cdk8s-plus-25.Volume)[]
---
##### `dockerRegistryAuth`<sup>Optional</sup> <a name="cdk8s-plus-25.AbstractPod.property.dockerRegistryAuth"></a>
```typescript
public readonly dockerRegistryAuth: ISecret;
```
- *Type:* [`cdk8s-plus-25.ISecret`](#cdk8s-plus-25.ISecret)
---
##### `hostNetwork`<sup>Optional</sup> <a name="cdk8s-plus-25.AbstractPod.property.hostNetwork"></a>
```typescript
public readonly hostNetwork: boolean;
```
- *Type:* `boolean`
---
##### `restartPolicy`<sup>Optional</sup> <a name="cdk8s-plus-25.AbstractPod.property.restartPolicy"></a>
```typescript
public readonly restartPolicy: RestartPolicy;
```
- *Type:* [`cdk8s-plus-25.RestartPolicy`](#cdk8s-plus-25.RestartPolicy)
---
##### `serviceAccount`<sup>Optional</sup> <a name="cdk8s-plus-25.AbstractPod.property.serviceAccount"></a>
```typescript
public readonly serviceAccount: IServiceAccount;
```
- *Type:* [`cdk8s-plus-25.IServiceAccount`](#cdk8s-plus-25.IServiceAccount)
---
##### `terminationGracePeriod`<sup>Optional</sup> <a name="cdk8s-plus-25.AbstractPod.property.terminationGracePeriod"></a>
```typescript
public readonly terminationGracePeriod: 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>
```typescript
import { AwsElasticBlockStorePersistentVolume } from 'cdk8s-plus-25'
new AwsElasticBlockStorePersistentVolume(scope: Construct, id: string, props: AwsElasticBlockStorePersistentVolumeProps)
```
##### `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:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.AwsElasticBlockStorePersistentVolume.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.AwsElasticBlockStorePersistentVolumeProps`](#cdk8s-plus-25.AwsElasticBlockStorePersistentVolumeProps)
---
#### Properties <a name="Properties"></a>
##### `fsType`<sup>Required</sup> <a name="cdk8s-plus-25.AwsElasticBlockStorePersistentVolume.property.fsType"></a>
```typescript
public readonly fsType: string;
```
- *Type:* `string`
File system type of this volume.
---
##### `readOnly`<sup>Required</sup> <a name="cdk8s-plus-25.AwsElasticBlockStorePersistentVolume.property.readOnly"></a>
```typescript
public readonly readOnly: boolean;
```
- *Type:* `boolean`
Whether or not it is mounted as a read-only volume.
---
##### `volumeId`<sup>Required</sup> <a name="cdk8s-plus-25.AwsElasticBlockStorePersistentVolume.property.volumeId"></a>
```typescript
public readonly volumeId: string;
```
- *Type:* `string`
Volume id of this volume.
---
##### `partition`<sup>Optional</sup> <a name="cdk8s-plus-25.AwsElasticBlockStorePersistentVolume.property.partition"></a>
```typescript
public readonly partition: number;
```
- *Type:* `number`
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>
```typescript
import { AzureDiskPersistentVolume } from 'cdk8s-plus-25'
new AzureDiskPersistentVolume(scope: Construct, id: string, props: AzureDiskPersistentVolumeProps)
```
##### `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:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.AzureDiskPersistentVolume.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.AzureDiskPersistentVolumeProps`](#cdk8s-plus-25.AzureDiskPersistentVolumeProps)
---
#### Properties <a name="Properties"></a>
##### `azureKind`<sup>Required</sup> <a name="cdk8s-plus-25.AzureDiskPersistentVolume.property.azureKind"></a>
```typescript
public readonly azureKind: AzureDiskPersistentVolumeKind;
```
- *Type:* [`cdk8s-plus-25.AzureDiskPersistentVolumeKind`](#cdk8s-plus-25.AzureDiskPersistentVolumeKind)
Azure kind of this volume.
---
##### `cachingMode`<sup>Required</sup> <a name="cdk8s-plus-25.AzureDiskPersistentVolume.property.cachingMode"></a>
```typescript
public readonly cachingMode: AzureDiskPersistentVolumeCachingMode;
```
- *Type:* [`cdk8s-plus-25.AzureDiskPersistentVolumeCachingMode`](#cdk8s-plus-25.AzureDiskPersistentVolumeCachingMode)
Caching mode of this volume.
---
##### `diskName`<sup>Required</sup> <a name="cdk8s-plus-25.AzureDiskPersistentVolume.property.diskName"></a>
```typescript
public readonly diskName: string;
```
- *Type:* `string`
Disk name of this volume.
---
##### `diskUri`<sup>Required</sup> <a name="cdk8s-plus-25.AzureDiskPersistentVolume.property.diskUri"></a>
```typescript
public readonly diskUri: string;
```
- *Type:* `string`
Disk URI of this volume.
---
##### `fsType`<sup>Required</sup> <a name="cdk8s-plus-25.AzureDiskPersistentVolume.property.fsType"></a>
```typescript
public readonly fsType: string;
```
- *Type:* `string`
File system type of this volume.
---
##### `readOnly`<sup>Required</sup> <a name="cdk8s-plus-25.AzureDiskPersistentVolume.property.readOnly"></a>
```typescript
public readonly readOnly: boolean;
```
- *Type:* `boolean`
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>
```typescript
import { BasicAuthSecret } from 'cdk8s-plus-25'
new BasicAuthSecret(scope: Construct, id: string, props: BasicAuthSecretProps)
```
##### `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:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.BasicAuthSecret.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.BasicAuthSecretProps`](#cdk8s-plus-25.BasicAuthSecretProps)
---
### 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>
```typescript
import { ClusterRole } from 'cdk8s-plus-25'
new ClusterRole(scope: Construct, id: string, props?: ClusterRoleProps)
```
##### `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:* `string`
---
##### `props`<sup>Optional</sup> <a name="cdk8s-plus-25.ClusterRole.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.ClusterRoleProps`](#cdk8s-plus-25.ClusterRoleProps)
---
#### Methods <a name="Methods"></a>
##### `aggregate` <a name="cdk8s-plus-25.ClusterRole.aggregate"></a>
```typescript
public aggregate(key: string, value: string)
```
###### `key`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.parameter.key"></a>
- *Type:* `string`
---
###### `value`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.parameter.value"></a>
- *Type:* `string`
---
##### `allow` <a name="cdk8s-plus-25.ClusterRole.allow"></a>
```typescript
public allow(verbs: string[], endpoints: IApiEndpoint)
```
###### `verbs`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.parameter.verbs"></a>
- *Type:* `string`[]
---
###### `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.
---
##### `allowCreate` <a name="cdk8s-plus-25.ClusterRole.allowCreate"></a>
```typescript
public allowCreate(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.
---
##### `allowDelete` <a name="cdk8s-plus-25.ClusterRole.allowDelete"></a>
```typescript
public allowDelete(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.
---
##### `allowDeleteCollection` <a name="cdk8s-plus-25.ClusterRole.allowDeleteCollection"></a>
```typescript
public allowDeleteCollection(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.
---
##### `allowGet` <a name="cdk8s-plus-25.ClusterRole.allowGet"></a>
```typescript
public allowGet(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.
---
##### `allowList` <a name="cdk8s-plus-25.ClusterRole.allowList"></a>
```typescript
public allowList(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.
---
##### `allowPatch` <a name="cdk8s-plus-25.ClusterRole.allowPatch"></a>
```typescript
public allowPatch(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.
---
##### `allowRead` <a name="cdk8s-plus-25.ClusterRole.allowRead"></a>
```typescript
public allowRead(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.
---
##### `allowReadWrite` <a name="cdk8s-plus-25.ClusterRole.allowReadWrite"></a>
```typescript
public allowReadWrite(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.
---
##### `allowUpdate` <a name="cdk8s-plus-25.ClusterRole.allowUpdate"></a>
```typescript
public allowUpdate(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.
---
##### `allowWatch` <a name="cdk8s-plus-25.ClusterRole.allowWatch"></a>
```typescript
public allowWatch(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>
```typescript
public 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.
---
##### `bindInNamespace` <a name="cdk8s-plus-25.ClusterRole.bindInNamespace"></a>
```typescript
public bindInNamespace(namespace: string, subjects: ISubject)
```
###### `namespace`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.parameter.namespace"></a>
- *Type:* `string`
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-25.ClusterRole.combine"></a>
```typescript
public combine(rol: ClusterRole)
```
###### `rol`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.parameter.rol"></a>
- *Type:* [`cdk8s-plus-25.ClusterRole`](#cdk8s-plus-25.ClusterRole)
---
#### Static Functions <a name="Static Functions"></a>
##### `fromClusterRoleName` <a name="cdk8s-plus-25.ClusterRole.fromClusterRoleName"></a>
```typescript
import { ClusterRole } from 'cdk8s-plus-25'
ClusterRole.fromClusterRoleName(scope: Construct, id: string, name: string)
```
###### `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:* `string`
---
###### `name`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.parameter.name"></a>
- *Type:* `string`
---
#### Properties <a name="Properties"></a>
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
The name of a resource type as it appears in the relevant API endpoint.
---
##### `rules`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRole.property.rules"></a>
```typescript
public readonly rules: ClusterRolePolicyRule[];
```
- *Type:* [`cdk8s-plus-25.ClusterRolePolicyRule`](#cdk8s-plus-25.ClusterRolePolicyRule)[]
Rules associaated with this Role.
Returns a copy, use `allow` to add rules.
---
### ClusterRoleBinding <a name="cdk8s-plus-25.ClusterRoleBinding"></a>
A ClusterRoleBinding grants permissions cluster-wide to a user or set of users.
#### Initializers <a name="cdk8s-plus-25.ClusterRoleBinding.Initializer"></a>
```typescript
import { ClusterRoleBinding } from 'cdk8s-plus-25'
new ClusterRoleBinding(scope: Construct, id: string, props: ClusterRoleBindingProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRoleBinding.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRoleBinding.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRoleBinding.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.ClusterRoleBindingProps`](#cdk8s-plus-25.ClusterRoleBindingProps)
---
#### Methods <a name="Methods"></a>
##### `addSubjects` <a name="cdk8s-plus-25.ClusterRoleBinding.addSubjects"></a>
```typescript
public addSubjects(subjects: ISubject)
```
###### `subjects`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRoleBinding.parameter.subjects"></a>
- *Type:* [`cdk8s-plus-25.ISubject`](#cdk8s-plus-25.ISubject)
The subjects to add.
---
#### Properties <a name="Properties"></a>
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRoleBinding.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
The name of a resource type as it appears in the relevant API endpoint.
---
##### `role`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRoleBinding.property.role"></a>
```typescript
public readonly role: IClusterRole;
```
- *Type:* [`cdk8s-plus-25.IClusterRole`](#cdk8s-plus-25.IClusterRole)
---
##### `subjects`<sup>Required</sup> <a name="cdk8s-plus-25.ClusterRoleBinding.property.subjects"></a>
```typescript
public readonly subjects: ISubject[];
```
- *Type:* [`cdk8s-plus-25.ISubject`](#cdk8s-plus-25.ISubject)[]
---
### ConfigMap <a name="cdk8s-plus-25.ConfigMap"></a>
- *Implements:* [`cdk8s-plus-25.IConfigMap`](#cdk8s-plus-25.IConfigMap)
ConfigMap holds configuration data for pods to consume.
#### Initializers <a name="cdk8s-plus-25.ConfigMap.Initializer"></a>
```typescript
import { ConfigMap } from 'cdk8s-plus-25'
new ConfigMap(scope: Construct, id: string, props?: ConfigMapProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Optional</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.ConfigMapProps`](#cdk8s-plus-25.ConfigMapProps)
---
#### Methods <a name="Methods"></a>
##### `addBinaryData` <a name="cdk8s-plus-25.ConfigMap.addBinaryData"></a>
```typescript
public addBinaryData(key: string, value: string)
```
###### `key`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.key"></a>
- *Type:* `string`
The key.
---
###### `value`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.value"></a>
- *Type:* `string`
The value.
---
##### `addData` <a name="cdk8s-plus-25.ConfigMap.addData"></a>
```typescript
public addData(key: string, value: string)
```
###### `key`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.key"></a>
- *Type:* `string`
The key.
---
###### `value`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.value"></a>
- *Type:* `string`
The value.
---
##### `addDirectory` <a name="cdk8s-plus-25.ConfigMap.addDirectory"></a>
```typescript
public addDirectory(localDir: string, options?: AddDirectoryOptions)
```
###### `localDir`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.localDir"></a>
- *Type:* `string`
A path to a local directory.
---
###### `options`<sup>Optional</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.options"></a>
- *Type:* [`cdk8s-plus-25.AddDirectoryOptions`](#cdk8s-plus-25.AddDirectoryOptions)
Options.
---
##### `addFile` <a name="cdk8s-plus-25.ConfigMap.addFile"></a>
```typescript
public addFile(localFile: string, key?: string)
```
###### `localFile`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.localFile"></a>
- *Type:* `string`
The path to the local file.
---
###### `key`<sup>Optional</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.key"></a>
- *Type:* `string`
The ConfigMap key (default to the file name).
---
#### Static Functions <a name="Static Functions"></a>
##### `fromConfigMapName` <a name="cdk8s-plus-25.ConfigMap.fromConfigMapName"></a>
```typescript
import { ConfigMap } from 'cdk8s-plus-25'
ConfigMap.fromConfigMapName(scope: Construct, id: string, name: string)
```
###### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
###### `id`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.id"></a>
- *Type:* `string`
---
###### `name`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.parameter.name"></a>
- *Type:* `string`
---
#### Properties <a name="Properties"></a>
##### `binaryData`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.property.binaryData"></a>
```typescript
public readonly binaryData: {[ key: string ]: string};
```
- *Type:* {[ key: string ]: `string`}
The binary data associated with this config map.
Returns a copy. To add data records, use `addBinaryData()` or `addData()`.
---
##### `data`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.property.data"></a>
```typescript
public readonly data: {[ key: string ]: string};
```
- *Type:* {[ key: string ]: `string`}
The data associated with this config map.
Returns an copy. To add data records, use `addData()` or `addBinaryData()`.
---
##### `immutable`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.property.immutable"></a>
```typescript
public readonly immutable: boolean;
```
- *Type:* `boolean`
Whether or not this config map is immutable.
---
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.ConfigMap.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
The name of a resource type as it appears in the relevant API endpoint.
---
### CronJob <a name="cdk8s-plus-25.CronJob"></a>
A CronJob is responsible for creating a Job and scheduling it based on provided cron schedule.
This helps running Jobs in a recurring manner.
#### Initializers <a name="cdk8s-plus-25.CronJob.Initializer"></a>
```typescript
import { CronJob } from 'cdk8s-plus-25'
new CronJob(scope: Construct, id: string, props: CronJobProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.CronJobProps`](#cdk8s-plus-25.CronJobProps)
---
#### Properties <a name="Properties"></a>
##### `concurrencyPolicy`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.property.concurrencyPolicy"></a>
```typescript
public readonly concurrencyPolicy: string;
```
- *Type:* `string`
The policy used by this cron job to determine the concurrency mode in which to schedule jobs.
---
##### `failedJobsRetained`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.property.failedJobsRetained"></a>
```typescript
public readonly failedJobsRetained: number;
```
- *Type:* `number`
The number of failed jobs retained by this cron job.
---
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
Represents the resource type.
---
##### `schedule`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.property.schedule"></a>
```typescript
public readonly schedule: Cron;
```
- *Type:* [`cdk8s.Cron`](#cdk8s.Cron)
The schedule this cron job is scheduled to run in.
---
##### `startingDeadline`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.property.startingDeadline"></a>
```typescript
public readonly startingDeadline: Duration;
```
- *Type:* [`cdk8s.Duration`](#cdk8s.Duration)
The time by which the running cron job needs to schedule the next job execution.
The job is considered as failed if it misses this deadline.
---
##### `successfulJobsRetained`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.property.successfulJobsRetained"></a>
```typescript
public readonly successfulJobsRetained: number;
```
- *Type:* `number`
The number of successful jobs retained by this cron job.
---
##### `suspend`<sup>Required</sup> <a name="cdk8s-plus-25.CronJob.property.suspend"></a>
```typescript
public readonly suspend: boolean;
```
- *Type:* `boolean`
Whether or not the cron job is currently suspended or not.
---
##### `timeZone`<sup>Optional</sup> <a name="cdk8s-plus-25.CronJob.property.timeZone"></a>
```typescript
public readonly timeZone: string;
```
- *Type:* `string`
The timezone which this cron job would follow to schedule jobs.
---
### DaemonSet <a name="cdk8s-plus-25.DaemonSet"></a>
A DaemonSet ensures that all (or some) Nodes run a copy of a Pod.
As nodes are added to the cluster, Pods are added to them.
As nodes are removed from the cluster, those Pods are garbage collected.
Deleting a DaemonSet will clean up the Pods it created.
Some typical uses of a DaemonSet are:
- running a cluster storage daemon on every node
- running a logs collection daemon on every node
- running a node monitoring daemon on every node
In a simple case, one DaemonSet, covering all nodes, would be used for each type of daemon.
A more complex setup might use multiple DaemonSets for a single type of daemon,
but with different flags and/or different memory and cpu requests for different hardware types.
#### Initializers <a name="cdk8s-plus-25.DaemonSet.Initializer"></a>
```typescript
import { DaemonSet } from 'cdk8s-plus-25'
new DaemonSet(scope: Construct, id: string, props?: DaemonSetProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.DaemonSet.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.DaemonSet.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Optional</sup> <a name="cdk8s-plus-25.DaemonSet.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.DaemonSetProps`](#cdk8s-plus-25.DaemonSetProps)
---
#### Properties <a name="Properties"></a>
##### `minReadySeconds`<sup>Required</sup> <a name="cdk8s-plus-25.DaemonSet.property.minReadySeconds"></a>
```typescript
public readonly minReadySeconds: number;
```
- *Type:* `number`
---
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.DaemonSet.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
The name of a resource type as it appears in the relevant API endpoint.
---
### Deployment <a name="cdk8s-plus-25.Deployment"></a>
- *Implements:* [`cdk8s-plus-25.IScalable`](#cdk8s-plus-25.IScalable)
A Deployment provides declarative updates for Pods and ReplicaSets.
You describe a desired state in a Deployment, and the Deployment Controller changes the actual
state to the desired state at a controlled rate. You can define Deployments to create new ReplicaSets, or to remove
existing Deployments and adopt all their resources with new Deployments.
> Note: Do not manage ReplicaSets owned by a Deployment. Consider opening an issue in the main Kubernetes repository if your use case is not covered below.
Use Case
The following are typical use cases for Deployments:
- Create a Deployment to rollout a ReplicaSet. The ReplicaSet creates Pods in the background.
Check the status of the rollout to see if it succeeds or not.
- Declare the new state of the Pods by updating the PodTemplateSpec of the Deployment.
A new ReplicaSet is created and the Deployment manages moving the Pods from the old ReplicaSet to the new one at a controlled rate.
Each new ReplicaSet updates the revision of the Deployment.
- Rollback to an earlier Deployment revision if the current state of the Deployment is not stable.
Each rollback updates the revision of the Deployment.
- Scale up the Deployment to facilitate more load.
- Pause the Deployment to apply multiple fixes to its PodTemplateSpec and then resume it to start a new rollout.
- Use the status of the Deployment as an indicator that a rollout has stuck.
- Clean up older ReplicaSets that you don't need anymore.
#### Initializers <a name="cdk8s-plus-25.Deployment.Initializer"></a>
```typescript
import { Deployment } from 'cdk8s-plus-25'
new Deployment(scope: Construct, id: string, props?: DeploymentProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Optional</sup> <a name="cdk8s-plus-25.Deployment.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.DeploymentProps`](#cdk8s-plus-25.DeploymentProps)
---
#### Methods <a name="Methods"></a>
##### `exposeViaIngress` <a name="cdk8s-plus-25.Deployment.exposeViaIngress"></a>
```typescript
public exposeViaIngress(path: string, options?: ExposeDeploymentViaIngressOptions)
```
###### `path`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.parameter.path"></a>
- *Type:* `string`
The ingress path to register under.
---
###### `options`<sup>Optional</sup> <a name="cdk8s-plus-25.Deployment.parameter.options"></a>
- *Type:* [`cdk8s-plus-25.ExposeDeploymentViaIngressOptions`](#cdk8s-plus-25.ExposeDeploymentViaIngressOptions)
Additional options.
---
##### `exposeViaService` <a name="cdk8s-plus-25.Deployment.exposeViaService"></a>
```typescript
public exposeViaService(options?: DeploymentExposeViaServiceOptions)
```
###### `options`<sup>Optional</sup> <a name="cdk8s-plus-25.Deployment.parameter.options"></a>
- *Type:* [`cdk8s-plus-25.DeploymentExposeViaServiceOptions`](#cdk8s-plus-25.DeploymentExposeViaServiceOptions)
Options to determine details of the service and port exposed.
---
##### `markHasAutoscaler` <a name="cdk8s-plus-25.Deployment.markHasAutoscaler"></a>
```typescript
public markHasAutoscaler()
```
##### `toScalingTarget` <a name="cdk8s-plus-25.Deployment.toScalingTarget"></a>
```typescript
public toScalingTarget()
```
#### Properties <a name="Properties"></a>
##### `minReady`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.property.minReady"></a>
```typescript
public readonly minReady: Duration;
```
- *Type:* [`cdk8s.Duration`](#cdk8s.Duration)
Minimum duration for which a newly created pod should be ready without any of its container crashing, for it to be considered available.
---
##### `progressDeadline`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.property.progressDeadline"></a>
```typescript
public readonly progressDeadline: Duration;
```
- *Type:* [`cdk8s.Duration`](#cdk8s.Duration)
The maximum duration for a deployment to make progress before it is considered to be failed.
---
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
The name of a resource type as it appears in the relevant API endpoint.
---
##### `strategy`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.property.strategy"></a>
```typescript
public readonly strategy: DeploymentStrategy;
```
- *Type:* [`cdk8s-plus-25.DeploymentStrategy`](#cdk8s-plus-25.DeploymentStrategy)
---
##### `replicas`<sup>Optional</sup> <a name="cdk8s-plus-25.Deployment.property.replicas"></a>
```typescript
public readonly replicas: number;
```
- *Type:* `number`
Number of desired pods.
---
##### `hasAutoscaler`<sup>Required</sup> <a name="cdk8s-plus-25.Deployment.property.hasAutoscaler"></a>
```typescript
public readonly hasAutoscaler: boolean;
```
- *Type:* `boolean`
If this is a target of an autoscaler.
---
### DockerConfigSecret <a name="cdk8s-plus-25.DockerConfigSecret"></a>
Create a secret for storing credentials for accessing a container image registry.
> https://kubernetes.io/docs/concepts/configuration/secret/#docker-config-secrets
#### Initializers <a name="cdk8s-plus-25.DockerConfigSecret.Initializer"></a>
```typescript
import { DockerConfigSecret } from 'cdk8s-plus-25'
new DockerConfigSecret(scope: Construct, id: string, props: DockerConfigSecretProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.DockerConfigSecret.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.DockerConfigSecret.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.DockerConfigSecret.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.DockerConfigSecretProps`](#cdk8s-plus-25.DockerConfigSecretProps)
---
### GCEPersistentDiskPersistentVolume <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume"></a>
GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod.
Provisioned by an admin.
> https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
#### Initializers <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.Initializer"></a>
```typescript
import { GCEPersistentDiskPersistentVolume } from 'cdk8s-plus-25'
new GCEPersistentDiskPersistentVolume(scope: Construct, id: string, props: GCEPersistentDiskPersistentVolumeProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.GCEPersistentDiskPersistentVolumeProps`](#cdk8s-plus-25.GCEPersistentDiskPersistentVolumeProps)
---
#### Properties <a name="Properties"></a>
##### `fsType`<sup>Required</sup> <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.property.fsType"></a>
```typescript
public readonly fsType: string;
```
- *Type:* `string`
File system type of this volume.
---
##### `pdName`<sup>Required</sup> <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.property.pdName"></a>
```typescript
public readonly pdName: string;
```
- *Type:* `string`
PD resource in GCE of this volume.
---
##### `readOnly`<sup>Required</sup> <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.property.readOnly"></a>
```typescript
public readonly readOnly: boolean;
```
- *Type:* `boolean`
Whether or not it is mounted as a read-only volume.
---
##### `partition`<sup>Optional</sup> <a name="cdk8s-plus-25.GCEPersistentDiskPersistentVolume.property.partition"></a>
```typescript
public readonly partition: number;
```
- *Type:* `number`
Partition of this volume.
---
### Group <a name="cdk8s-plus-25.Group"></a>
- *Implements:* [`cdk8s-plus-25.ISubject`](#cdk8s-plus-25.ISubject)
Represents a group.
#### Methods <a name="Methods"></a>
##### `toSubjectConfiguration` <a name="cdk8s-plus-25.Group.toSubjectConfiguration"></a>
```typescript
public toSubjectConfiguration()
```
#### Static Functions <a name="Static Functions"></a>
##### `fromName` <a name="cdk8s-plus-25.Group.fromName"></a>
```typescript
import { Group } from 'cdk8s-plus-25'
Group.fromName(scope: Construct, id: string, name: string)
```
###### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.Group.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
###### `id`<sup>Required</sup> <a name="cdk8s-plus-25.Group.parameter.id"></a>
- *Type:* `string`
---
###### `name`<sup>Required</sup> <a name="cdk8s-plus-25.Group.parameter.name"></a>
- *Type:* `string`
---
#### Properties <a name="Properties"></a>
##### `kind`<sup>Required</sup> <a name="cdk8s-plus-25.Group.property.kind"></a>
```typescript
public readonly kind: string;
```
- *Type:* `string`
---
##### `name`<sup>Required</sup> <a name="cdk8s-plus-25.Group.property.name"></a>
```typescript
public readonly name: string;
```
- *Type:* `string`
---
##### `apiGroup`<sup>Optional</sup> <a name="cdk8s-plus-25.Group.property.apiGroup"></a>
```typescript
public readonly apiGroup: string;
```
- *Type:* `string`
---
### HorizontalPodAutoscaler <a name="cdk8s-plus-25.HorizontalPodAutoscaler"></a>
A HorizontalPodAutoscaler scales a workload up or down in response to a metric change.
This allows your services to scale up when demand is high and scale down
when they are no longer needed.
Typical use cases for HorizontalPodAutoscaler:
* When Memory usage is above 70%, scale up the number of replicas to meet the demand.
* When CPU usage is below 30%, scale down the number of replicas to save resources.
* When a service is experiencing a spike in traffic, scale up the number of replicas
to meet the demand. Then, when the traffic subsides, scale down the number of
replicas to save resources.
The autoscaler uses the following algorithm to determine the number of replicas to scale:
`desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]`
HorizontalPodAutoscaler's can be used to with any `Scalable` workload:
* Deployment
* StatefulSet
**Targets that already have a replica count defined:**
Remove any replica counts from the target resource before associating with a
HorizontalPodAutoscaler. If this isn't done, then any time a change to that object is applied,
Kubernetes will scale the current number of Pods to the value of the target.replicas key. This
may not be desired and could lead to unexpected behavior.
> https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#implicit-maintenance-mode-deactivation
#### Initializers <a name="cdk8s-plus-25.HorizontalPodAutoscaler.Initializer"></a>
```typescript
import { HorizontalPodAutoscaler } from 'cdk8s-plus-25'
new HorizontalPodAutoscaler(scope: Construct, id: string, props: HorizontalPodAutoscalerProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.HorizontalPodAutoscalerProps`](#cdk8s-plus-25.HorizontalPodAutoscalerProps)
---
#### Properties <a name="Properties"></a>
##### `maxReplicas`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.property.maxReplicas"></a>
```typescript
public readonly maxReplicas: number;
```
- *Type:* `number`
The maximum number of replicas that can be scaled up to.
---
##### `minReplicas`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.property.minReplicas"></a>
```typescript
public readonly minReplicas: number;
```
- *Type:* `number`
The minimum number of replicas that can be scaled down to.
---
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
The name of a resource type as it appears in the relevant API endpoint.
---
##### `scaleDown`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.property.scaleDown"></a>
```typescript
public readonly scaleDown: ScalingRules;
```
- *Type:* [`cdk8s-plus-25.ScalingRules`](#cdk8s-plus-25.ScalingRules)
The scaling behavior when scaling down.
---
##### `scaleUp`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.property.scaleUp"></a>
```typescript
public readonly scaleUp: ScalingRules;
```
- *Type:* [`cdk8s-plus-25.ScalingRules`](#cdk8s-plus-25.ScalingRules)
The scaling behavior when scaling up.
---
##### `target`<sup>Required</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.property.target"></a>
```typescript
public readonly target: IScalable;
```
- *Type:* [`cdk8s-plus-25.IScalable`](#cdk8s-plus-25.IScalable)
The workload to scale up or down.
---
##### `metrics`<sup>Optional</sup> <a name="cdk8s-plus-25.HorizontalPodAutoscaler.property.metrics"></a>
```typescript
public readonly metrics: Metric[];
```
- *Type:* [`cdk8s-plus-25.Metric`](#cdk8s-plus-25.Metric)[]
The metric conditions that trigger a scale up or scale down.
---
### Ingress <a name="cdk8s-plus-25.Ingress"></a>
Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend.
An Ingress can be configured to give services
externally-reachable urls, load balance traffic, terminate SSL, offer name
based virtual hosting etc.
#### Initializers <a name="cdk8s-plus-25.Ingress.Initializer"></a>
```typescript
import { Ingress } from 'cdk8s-plus-25'
new Ingress(scope: Construct, id: string, props?: IngressProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.id"></a>
- *Type:* `string`
---
##### `props`<sup>Optional</sup> <a name="cdk8s-plus-25.Ingress.parameter.props"></a>
- *Type:* [`cdk8s-plus-25.IngressProps`](#cdk8s-plus-25.IngressProps)
---
#### Methods <a name="Methods"></a>
##### `addDefaultBackend` <a name="cdk8s-plus-25.Ingress.addDefaultBackend"></a>
```typescript
public addDefaultBackend(backend: IngressBackend)
```
###### `backend`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.backend"></a>
- *Type:* [`cdk8s-plus-25.IngressBackend`](#cdk8s-plus-25.IngressBackend)
The backend to use for requests that do not match any rule.
---
##### `addHostDefaultBackend` <a name="cdk8s-plus-25.Ingress.addHostDefaultBackend"></a>
```typescript
public addHostDefaultBackend(host: string, backend: IngressBackend)
```
###### `host`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.host"></a>
- *Type:* `string`
The host name to match.
---
###### `backend`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.backend"></a>
- *Type:* [`cdk8s-plus-25.IngressBackend`](#cdk8s-plus-25.IngressBackend)
The backend to route to.
---
##### `addHostRule` <a name="cdk8s-plus-25.Ingress.addHostRule"></a>
```typescript
public addHostRule(host: string, path: string, backend: IngressBackend, pathType?: HttpIngressPathType)
```
###### `host`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.host"></a>
- *Type:* `string`
The host name.
---
###### `path`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.path"></a>
- *Type:* `string`
The HTTP path.
---
###### `backend`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.backend"></a>
- *Type:* [`cdk8s-plus-25.IngressBackend`](#cdk8s-plus-25.IngressBackend)
The backend to route requests to.
---
###### `pathType`<sup>Optional</sup> <a name="cdk8s-plus-25.Ingress.parameter.pathType"></a>
- *Type:* [`cdk8s-plus-25.HttpIngressPathType`](#cdk8s-plus-25.HttpIngressPathType)
How the path is matched against request paths.
---
##### `addRule` <a name="cdk8s-plus-25.Ingress.addRule"></a>
```typescript
public addRule(path: string, backend: IngressBackend, pathType?: HttpIngressPathType)
```
###### `path`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.path"></a>
- *Type:* `string`
The HTTP path.
---
###### `backend`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.backend"></a>
- *Type:* [`cdk8s-plus-25.IngressBackend`](#cdk8s-plus-25.IngressBackend)
The backend to route requests to.
---
###### `pathType`<sup>Optional</sup> <a name="cdk8s-plus-25.Ingress.parameter.pathType"></a>
- *Type:* [`cdk8s-plus-25.HttpIngressPathType`](#cdk8s-plus-25.HttpIngressPathType)
How the path is matched against request paths.
---
##### `addRules` <a name="cdk8s-plus-25.Ingress.addRules"></a>
```typescript
public addRules(rules: IngressRule)
```
###### `rules`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.rules"></a>
- *Type:* [`cdk8s-plus-25.IngressRule`](#cdk8s-plus-25.IngressRule)
The rules to add.
---
##### `addTls` <a name="cdk8s-plus-25.Ingress.addTls"></a>
```typescript
public addTls(tls: IngressTls[])
```
###### `tls`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.parameter.tls"></a>
- *Type:* [`cdk8s-plus-25.IngressTls`](#cdk8s-plus-25.IngressTls)[]
---
#### Properties <a name="Properties"></a>
##### `resourceType`<sup>Required</sup> <a name="cdk8s-plus-25.Ingress.property.resourceType"></a>
```typescript
public readonly resourceType: string;
```
- *Type:* `string`
The name of a resource type as it appears in the relevant API endpoint.
---
### Job <a name="cdk8s-plus-25.Job"></a>
A Job creates one or more Pods and ensures that a specified number of them successfully terminate.
As pods successfully complete,
the Job tracks the successful completions. When a specified number of successful completions is reached, the task (ie, Job) is complete.
Deleting a Job will clean up the Pods it created. A simple case is to create one Job object in order to reliably run one Pod to completion.
The Job object will start a new Pod if the first Pod fails or is deleted (for example due to a node hardware failure or a node reboot).
You can also use a Job to run multiple Pods in parallel.
#### Initializers <a name="cdk8s-plus-25.Job.Initializer"></a>
```typescript
import { Job } from 'cdk8s-plus-25'
new Job(scope: Construct, id: string, props?: JobProps)
```
##### `scope`<sup>Required</sup> <a name="cdk8s-plus-25.Job.parameter.scope"></a>
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`<sup>Required</sup> <a name="cdk8s-plus-25.Job.par