cdk8s (Python) ¶
Constructs ¶
ApiObject ¶
Initializers ¶
import cdk8s
cdk8s.ApiObject(
scope: Construct,
id: str,
api_version: str,
kind: str,
metadata: ApiObjectMetadata = None
)
scope
Required ¶
- Type:
constructs.Construct
the construct scope.
id
Required ¶
- Type:
str
namespace.
api_version
Required ¶
- Type:
str
API version.
kind
Required ¶
- Type:
str
Resource kind.
metadata
Optional ¶
- Type:
cdk8s.ApiObjectMetadata
Object metadata.
If name
is not specified, an app-unique name will be allocated by the
framework based on the path of the construct within thes construct tree.
Methods ¶
add_dependency
¶
def add_dependency(
dependencies: IConstruct
)
dependencies
Required ¶
- Type:
constructs.IConstruct
the dependencies to add.
add_json_patch
¶
def add_json_patch(
ops: JsonPatch
)
ops
Required ¶
- Type:
cdk8s.JsonPatch
The JSON-Patch operations to apply.
to_json
¶
def to_json()
Static Functions ¶
is_api_object
¶
import cdk8s
cdk8s.ApiObject.is_api_object(
o: typing.Any
)
o
Required ¶
- Type:
typing.Any
The object to check.
of
¶
import cdk8s
cdk8s.ApiObject.of(
c: IConstruct
)
c
Required ¶
- Type:
constructs.IConstruct
The higher-level construct.
Properties ¶
api_group
Required ¶
api_group: str
- Type:
str
The group portion of the API version (e.g. authorization.k8s.io
).
api_version
Required ¶
api_version: str
- Type:
str
The object’s API version (e.g. authorization.k8s.io/v1
).
chart
Required ¶
chart: Chart
- Type:
cdk8s.Chart
The chart in which this object is defined.
kind
Required ¶
kind: str
- Type:
str
The object kind.
metadata
Required ¶
metadata: ApiObjectMetadataDefinition
Metadata associated with this API object.
name
Required ¶
name: str
- Type:
str
The name of the API object.
If a name is specified in metadata.name
this will be the name returned.
Otherwise, a name will be generated by calling
Chart.of(this).generatedObjectName(this)
, which by default uses the
construct path to generate a DNS-compatible name for the resource.
App ¶
Represents a cdk8s application.
Initializers ¶
import cdk8s
cdk8s.App(
outdir: str = None,
output_file_extension: str = None,
record_construct_metadata: bool = None,
yaml_output_type: YamlOutputType = None
)
outdir
Optional ¶
- Type:
str
- Default: CDK8S_OUTDIR if defined, otherwise “dist”
The directory to output Kubernetes manifests.
If you synthesize your application using cdk8s synth
, you must
also pass this value to the CLI using the --output
option or
the output
property in the cdk8s.yaml
configuration file.
Otherwise, the CLI will not know about the output directory,
and synthesis will fail.
This property is intended for internal and testing use.
output_file_extension
Optional ¶
- Type:
str
- Default: .k8s.yaml
The file extension to use for rendered YAML files.
record_construct_metadata
Optional ¶
- Type:
bool
- Default: false
When set to true, the output directory will contain a construct-metadata.json
file that holds construct related metadata on every resource in the app.
yaml_output_type
Optional ¶
- Type:
cdk8s.YamlOutputType
- Default: YamlOutputType.FILE_PER_CHART
How to divide the YAML output into files.
Methods ¶
synth
¶
def synth()
synth_yaml
¶
def synth_yaml()
Properties ¶
charts
Required ¶
charts: typing.List[Chart]
- Type: typing.List[
cdk8s.Chart
]
Returns all the charts in this app, sorted topologically.
outdir
Required ¶
outdir: str
- Type:
str
The output directory into which manifests will be synthesized.
output_file_extension
Required ¶
output_file_extension: str
- Type:
str
- Default: .k8s.yaml
The file extension to use for rendered YAML files.
yaml_output_type
Required ¶
yaml_output_type: YamlOutputType
- Type:
cdk8s.YamlOutputType
- Default: YamlOutputType.FILE_PER_CHART
How to divide the YAML output into files.
Chart ¶
Initializers ¶
import cdk8s
cdk8s.Chart(
scope: Construct,
id: str,
disable_resource_name_hashes: bool = None,
labels: typing.Mapping[str] = None,
namespace: str = None
)
scope
Required ¶
- Type:
constructs.Construct
id
Required ¶
- Type:
str
disable_resource_name_hashes
Optional ¶
- Type:
bool
- Default: false
The autogenerated resource name by default is suffixed with a stable hash of the construct path.
Setting this property to true drops the hash suffix.
labels
Optional ¶
- Type: typing.Mapping[
str
] - Default: no common labels
Labels to apply to all resources in this chart.
namespace
Optional ¶
- Type:
str
- Default: no namespace is synthesized (usually this implies “default”)
The default namespace for all objects defined in this chart (directly or indirectly).
This namespace will only apply to objects that don’t have a
namespace
explicitly defined for them.
Methods ¶
add_dependency
¶
def add_dependency(
dependencies: IConstruct
)
dependencies
Required ¶
- Type:
constructs.IConstruct
the dependencies to add.
generate_object_name
¶
def generate_object_name(
api_object: ApiObject
)
api_object
Required ¶
- Type:
cdk8s.ApiObject
The API object to generate a name for.
to_json
¶
def to_json()
Static Functions ¶
is_chart
¶
import cdk8s
cdk8s.Chart.is_chart(
x: typing.Any
)
x
Required ¶
- Type:
typing.Any
of
¶
import cdk8s
cdk8s.Chart.of(
c: IConstruct
)
c
Required ¶
- Type:
constructs.IConstruct
a construct node.
Properties ¶
labels
Required ¶
labels: typing.Mapping[str]
- Type: typing.Mapping[
str
]
Labels applied to all resources in this chart.
This is an immutable copy.
namespace
Optional ¶
namespace: str
- Type:
str
The default namespace for all objects in this chart.
Helm ¶
Represents a Helm deployment.
Use this construct to import an existing Helm chart and incorporate it into your constructs.
Initializers ¶
import cdk8s
cdk8s.Helm(
scope: Construct,
id: str,
chart: str,
helm_executable: str = None,
helm_flags: typing.List[str] = None,
namespace: str = None,
release_name: str = None,
repo: str = None,
values: typing.Mapping[typing.Any] = None,
version: str = None
)
scope
Required ¶
- Type:
constructs.Construct
id
Required ¶
- Type:
str
chart
Required ¶
- Type:
str
The chart name to use. It can be a chart from a helm repository or a local directory.
This name is passed to helm template
and has all the relevant semantics.
helm_executable
Optional ¶
- Type:
str
- Default: “helm”
The local helm executable to use in order to create the manifest the chart.
helm_flags
Optional ¶
- Type: typing.List[
str
] - Default: []
Additional flags to add to the helm
execution.
namespace
Optional ¶
- Type:
str
Scope all resources in to a given namespace.
release_name
Optional ¶
- Type:
str
- Default: if unspecified, a name will be allocated based on the construct path
The release name.
https://helm.sh/docs/intro/using_helm/#three-big-concepts
repo
Optional ¶
- Type:
str
Chart repository url where to locate the requested chart.
values
Optional ¶
- Type: typing.Mapping[
typing.Any
] - Default: If no values are specified, chart will use the defaults.
Values to pass to the chart.
version
Optional ¶
- Type:
str
Version constraint for the chart version to use.
This constraint can be a specific tag (e.g. 1.1.1) or it may reference a valid range (e.g. ^2.0.0). If this is not specified, the latest version is used
This name is passed to helm template --version
and has all the relevant semantics.
Properties ¶
release_name
Required ¶
release_name: str
- Type:
str
The helm release name.
Include ¶
Reads a YAML manifest from a file or a URL and defines all resources as API objects within the defined scope.
The names (metadata.name
) of imported resources will be preserved as-is
from the manifest.
Initializers ¶
import cdk8s
cdk8s.Include(
scope: Construct,
id: str,
url: str
)
scope
Required ¶
- Type:
constructs.Construct
id
Required ¶
- Type:
str
url
Required ¶
- Type:
str
Local file path or URL which includes a Kubernetes YAML manifest.
Properties ¶
api_objects
Required ¶
api_objects: typing.List[ApiObject]
- Type: typing.List[
cdk8s.ApiObject
]
Returns all the included API objects.
Structs ¶
ApiObjectMetadata ¶
Metadata associated with this object.
Initializer ¶
import cdk8s
cdk8s.ApiObjectMetadata(
annotations: typing.Mapping[str] = None,
finalizers: typing.List[str] = None,
labels: typing.Mapping[str] = None,
name: str = None,
namespace: str = None,
owner_references: typing.List[OwnerReference] = None
)
annotations
Optional ¶
annotations: typing.Mapping[str]
- Type: typing.Mapping[
str
] - Default: No annotations.
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying objects.
http://kubernetes.io/docs/user-guide/annotations
finalizers
Optional ¶
finalizers: typing.List[str]
- Type: typing.List[
str
] - Default: No finalizers.
Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.
Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.
https://kubernetes.io/docs/concepts/overview/working-with-objects/finalizers/
labels
Optional ¶
labels: typing.Mapping[str]
- Type: typing.Mapping[
str
] - Default: No labels.
Map of string keys and values that can be used to organize and categorize (scope and select) objects.
May match selectors of replication controllers and services.
http://kubernetes.io/docs/user-guide/labels
name
Optional ¶
name: str
- Type:
str
- Default: an app-unique name generated by the chart
The unique, namespace-global, name of this object inside the Kubernetes cluster.
Normally, you shouldn’t specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.
You can supply custom name allocation logic by overriding the
chart.generateObjectName
method.
If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won’t be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.
namespace
Optional ¶
namespace: str
- Type:
str
- Default: undefined (will be assigned to the ‘default’ namespace)
Namespace defines the space within each name must be unique.
An empty namespace is equivalent to the “default” namespace, but “default” is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces
owner_references
Optional ¶
owner_references: typing.List[OwnerReference]
- Type: typing.List[
cdk8s.OwnerReference
] - Default: automatically set by Kubernetes
List of objects depended by this object.
If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don’t need to and can allow Kubernetes to automatically manage the relationships.
https://kubernetes.io/docs/concepts/overview/working-with-objects/owners-dependents/
ApiObjectProps ¶
Options for defining API objects.
Initializer ¶
import cdk8s
cdk8s.ApiObjectProps(
api_version: str,
kind: str,
metadata: ApiObjectMetadata = None
)
api_version
Required ¶
api_version: str
- Type:
str
API version.
kind
Required ¶
kind: str
- Type:
str
Resource kind.
metadata
Optional ¶
metadata: ApiObjectMetadata
- Type:
cdk8s.ApiObjectMetadata
Object metadata.
If name
is not specified, an app-unique name will be allocated by the
framework based on the path of the construct within thes construct tree.
AppProps ¶
Initializer ¶
import cdk8s
cdk8s.AppProps(
outdir: str = None,
output_file_extension: str = None,
record_construct_metadata: bool = None,
yaml_output_type: YamlOutputType = None
)
outdir
Optional ¶
outdir: str
- Type:
str
- Default: CDK8S_OUTDIR if defined, otherwise “dist”
The directory to output Kubernetes manifests.
If you synthesize your application using cdk8s synth
, you must
also pass this value to the CLI using the --output
option or
the output
property in the cdk8s.yaml
configuration file.
Otherwise, the CLI will not know about the output directory,
and synthesis will fail.
This property is intended for internal and testing use.
output_file_extension
Optional ¶
output_file_extension: str
- Type:
str
- Default: .k8s.yaml
The file extension to use for rendered YAML files.
record_construct_metadata
Optional ¶
record_construct_metadata: bool
- Type:
bool
- Default: false
When set to true, the output directory will contain a construct-metadata.json
file that holds construct related metadata on every resource in the app.
yaml_output_type
Optional ¶
yaml_output_type: YamlOutputType
- Type:
cdk8s.YamlOutputType
- Default: YamlOutputType.FILE_PER_CHART
How to divide the YAML output into files.
ChartProps ¶
Initializer ¶
import cdk8s
cdk8s.ChartProps(
disable_resource_name_hashes: bool = None,
labels: typing.Mapping[str] = None,
namespace: str = None
)
disable_resource_name_hashes
Optional ¶
disable_resource_name_hashes: bool
- Type:
bool
- Default: false
The autogenerated resource name by default is suffixed with a stable hash of the construct path.
Setting this property to true drops the hash suffix.
labels
Optional ¶
labels: typing.Mapping[str]
- Type: typing.Mapping[
str
] - Default: no common labels
Labels to apply to all resources in this chart.
namespace
Optional ¶
namespace: str
- Type:
str
- Default: no namespace is synthesized (usually this implies “default”)
The default namespace for all objects defined in this chart (directly or indirectly).
This namespace will only apply to objects that don’t have a
namespace
explicitly defined for them.
CronOptions ¶
Options to configure a cron expression.
All fields are strings so you can use complex expressions. Absence of a field implies ‘*’
Initializer ¶
import cdk8s
cdk8s.CronOptions(
day: str = None,
hour: str = None,
minute: str = None,
month: str = None,
week_day: str = None
)
day
Optional ¶
day: str
- Type:
str
- Default: Every day of the month
The day of the month to run this rule at.
hour
Optional ¶
hour: str
- Type:
str
- Default: Every hour
The hour to run this rule at.
minute
Optional ¶
minute: str
- Type:
str
- Default: Every minute
The minute to run this rule at.
month
Optional ¶
month: str
- Type:
str
- Default: Every month
The month to run this rule at.
week_day
Optional ¶
week_day: str
- Type:
str
- Default: Any day of the week
The day of the week to run this rule at.
GroupVersionKind ¶
Initializer ¶
import cdk8s
cdk8s.GroupVersionKind(
api_version: str,
kind: str
)
api_version
Required ¶
api_version: str
- Type:
str
The object’s API version (e.g. authorization.k8s.io/v1
).
kind
Required ¶
kind: str
- Type:
str
The object kind.
HelmProps ¶
Options for Helm
.
Initializer ¶
import cdk8s
cdk8s.HelmProps(
chart: str,
helm_executable: str = None,
helm_flags: typing.List[str] = None,
namespace: str = None,
release_name: str = None,
repo: str = None,
values: typing.Mapping[typing.Any] = None,
version: str = None
)
chart
Required ¶
chart: str
- Type:
str
The chart name to use. It can be a chart from a helm repository or a local directory.
This name is passed to helm template
and has all the relevant semantics.
helm_executable
Optional ¶
helm_executable: str
- Type:
str
- Default: “helm”
The local helm executable to use in order to create the manifest the chart.
helm_flags
Optional ¶
helm_flags: typing.List[str]
- Type: typing.List[
str
] - Default: []
Additional flags to add to the helm
execution.
namespace
Optional ¶
namespace: str
- Type:
str
Scope all resources in to a given namespace.
release_name
Optional ¶
release_name: str
- Type:
str
- Default: if unspecified, a name will be allocated based on the construct path
The release name.
https://helm.sh/docs/intro/using_helm/#three-big-concepts
repo
Optional ¶
repo: str
- Type:
str
Chart repository url where to locate the requested chart.
values
Optional ¶
values: typing.Mapping[typing.Any]
- Type: typing.Mapping[
typing.Any
] - Default: If no values are specified, chart will use the defaults.
Values to pass to the chart.
version
Optional ¶
version: str
- Type:
str
Version constraint for the chart version to use.
This constraint can be a specific tag (e.g. 1.1.1) or it may reference a valid range (e.g. ^2.0.0). If this is not specified, the latest version is used
This name is passed to helm template --version
and has all the relevant semantics.
IncludeProps ¶
Initializer ¶
import cdk8s
cdk8s.IncludeProps(
url: str
)
url
Required ¶
url: str
- Type:
str
Local file path or URL which includes a Kubernetes YAML manifest.
NameOptions ¶
Options for name generation.
Initializer ¶
import cdk8s
cdk8s.NameOptions(
delimiter: str = None,
extra: typing.List[str] = None,
include_hash: bool = None,
max_len: typing.Union[int, float] = None
)
delimiter
Optional ¶
delimiter: str
- Type:
str
- Default: “-“
Delimiter to use between components.
extra
Optional ¶
extra: typing.List[str]
- Type: typing.List[
str
] - Default: [] use the construct path components
Extra components to include in the name.
include_hash
Optional ¶
include_hash: bool
- Type:
bool
- Default: true
Include a short hash as last part of the name.
max_len
Optional ¶
max_len: typing.Union[int, float]
- Type:
typing.Union[int, float]
- Default: 63
Maximum allowed length for the name.
OwnerReference ¶
OwnerReference contains enough information to let you identify an owning object.
An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.
Initializer ¶
import cdk8s
cdk8s.OwnerReference(
api_version: str,
kind: str,
name: str,
uid: str,
block_owner_deletion: bool = None,
controller: bool = None
)
api_version
Required ¶
api_version: str
- Type:
str
API version of the referent.
kind
Required ¶
kind: str
- Type:
str
Kind of the referent.
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
name
Required ¶
name: str
- Type:
str
Name of the referent.
http://kubernetes.io/docs/user-guide/identifiers#names
uid
Required ¶
uid: str
- Type:
str
UID of the referent.
http://kubernetes.io/docs/user-guide/identifiers#uids
block_owner_deletion
Optional ¶
block_owner_deletion: bool
- Type:
bool
- Default: false. To set this field, a user needs “delete” permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
If true, AND if the owner has the “foregroundDeletion” finalizer, then the owner cannot be deleted from the key-value store until this reference is removed.
Defaults to false. To set this field, a user needs “delete” permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
controller
Optional ¶
controller: bool
- Type:
bool
If true, this reference points to the managing controller.
SizeConversionOptions ¶
Options for how to convert time to a different unit.
Initializer ¶
import cdk8s
cdk8s.SizeConversionOptions(
rounding: SizeRoundingBehavior = None
)
rounding
Optional ¶
rounding: SizeRoundingBehavior
- Type:
cdk8s.SizeRoundingBehavior
- Default: SizeRoundingBehavior.FAIL
How conversions should behave when it encounters a non-integer result.
TimeConversionOptions ¶
Options for how to convert time to a different unit.
Initializer ¶
import cdk8s
cdk8s.TimeConversionOptions(
integral: bool = None
)
integral
Optional ¶
integral: bool
- Type:
bool
- Default: true
If true
, conversions into a larger time unit (e.g. Seconds
to Minutes
) will fail if the result is not an integer.
Classes ¶
ApiObjectMetadataDefinition ¶
Object metadata.
Initializers ¶
import cdk8s
cdk8s.ApiObjectMetadataDefinition(
annotations: typing.Mapping[str] = None,
finalizers: typing.List[str] = None,
labels: typing.Mapping[str] = None,
name: str = None,
namespace: str = None,
owner_references: typing.List[OwnerReference] = None
)
annotations
Optional ¶
- Type: typing.Mapping[
str
] - Default: No annotations.
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.
They are not queryable and should be preserved when modifying objects.
http://kubernetes.io/docs/user-guide/annotations
finalizers
Optional ¶
- Type: typing.List[
str
] - Default: No finalizers.
Namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion.
Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.
https://kubernetes.io/docs/concepts/overview/working-with-objects/finalizers/
labels
Optional ¶
- Type: typing.Mapping[
str
] - Default: No labels.
Map of string keys and values that can be used to organize and categorize (scope and select) objects.
May match selectors of replication controllers and services.
http://kubernetes.io/docs/user-guide/labels
name
Optional ¶
- Type:
str
- Default: an app-unique name generated by the chart
The unique, namespace-global, name of this object inside the Kubernetes cluster.
Normally, you shouldn’t specify names for objects and let the CDK generate a name for you that is application-unique. The names CDK generates are composed from the construct path components, separated by dots and a suffix that is based on a hash of the entire path, to ensure uniqueness.
You can supply custom name allocation logic by overriding the
chart.generateObjectName
method.
If you use an explicit name here, bear in mind that this reduces the composability of your construct because it won’t be possible to include more than one instance in any app. Therefore it is highly recommended to leave this unspecified.
namespace
Optional ¶
- Type:
str
- Default: undefined (will be assigned to the ‘default’ namespace)
Namespace defines the space within each name must be unique.
An empty namespace is equivalent to the “default” namespace, but “default” is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces
owner_references
Optional ¶
- Type: typing.List[
cdk8s.OwnerReference
] - Default: automatically set by Kubernetes
List of objects depended by this object.
If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
Kubernetes sets the value of this field automatically for objects that are dependents of other objects like ReplicaSets, DaemonSets, Deployments, Jobs and CronJobs, and ReplicationControllers. You can also configure these relationships manually by changing the value of this field. However, you usually don’t need to and can allow Kubernetes to automatically manage the relationships.
https://kubernetes.io/docs/concepts/overview/working-with-objects/owners-dependents/
Methods ¶
add
¶
def add(
key: str,
value: typing.Any
)
key
Required ¶
- Type:
str
Metadata key.
value
Required ¶
- Type:
typing.Any
Metadata value.
add_annotation
¶
def add_annotation(
key: str,
value: str
)
key
Required ¶
- Type:
str
The key.
value
Required ¶
- Type:
str
The value.
add_finalizers
¶
def add_finalizers(
finalizers: str
)
finalizers
Required ¶
- Type:
str
the finalizers.
add_label
¶
def add_label(
key: str,
value: str
)
key
Required ¶
- Type:
str
The key.
value
Required ¶
- Type:
str
The value.
add_owner_reference
¶
def add_owner_reference(
api_version: str,
kind: str,
name: str,
uid: str,
block_owner_deletion: bool = None,
controller: bool = None
)
api_version
Required ¶
- Type:
str
API version of the referent.
kind
Required ¶
- Type:
str
Kind of the referent.
https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
name
Required ¶
- Type:
str
Name of the referent.
http://kubernetes.io/docs/user-guide/identifiers#names
uid
Required ¶
- Type:
str
UID of the referent.
http://kubernetes.io/docs/user-guide/identifiers#uids
block_owner_deletion
Optional ¶
- Type:
bool
- Default: false. To set this field, a user needs “delete” permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
If true, AND if the owner has the “foregroundDeletion” finalizer, then the owner cannot be deleted from the key-value store until this reference is removed.
Defaults to false. To set this field, a user needs “delete” permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
controller
Optional ¶
- Type:
bool
If true, this reference points to the managing controller.
get_label
¶
def get_label(
key: str
)
key
Required ¶
- Type:
str
the label.
to_json
¶
def to_json()
Properties ¶
name
Optional ¶
name: str
- Type:
str
The name of the API object.
If a name is specified in metadata.name
this will be the name returned.
Otherwise, a name will be generated by calling
Chart.of(this).generatedObjectName(this)
, which by default uses the
construct path to generate a DNS-compatible name for the resource.
namespace
Optional ¶
namespace: str
- Type:
str
The object’s namespace.
Cron ¶
Represents a cron schedule.
Initializers ¶
import cdk8s
cdk8s.Cron(
day: str = None,
hour: str = None,
minute: str = None,
month: str = None,
week_day: str = None
)
day
Optional ¶
- Type:
str
- Default: Every day of the month
The day of the month to run this rule at.
hour
Optional ¶
- Type:
str
- Default: Every hour
The hour to run this rule at.
minute
Optional ¶
- Type:
str
- Default: Every minute
The minute to run this rule at.
month
Optional ¶
- Type:
str
- Default: Every month
The month to run this rule at.
week_day
Optional ¶
- Type:
str
- Default: Any day of the week
The day of the week to run this rule at.
Static Functions ¶
annually
¶
import cdk8s
cdk8s.Cron.annually()
daily
¶
import cdk8s
cdk8s.Cron.daily()
every_minute
¶
import cdk8s
cdk8s.Cron.every_minute()
hourly
¶
import cdk8s
cdk8s.Cron.hourly()
monthly
¶
import cdk8s
cdk8s.Cron.monthly()
schedule
¶
import cdk8s
cdk8s.Cron.schedule(
day: str = None,
hour: str = None,
minute: str = None,
month: str = None,
week_day: str = None
)
day
Optional ¶
- Type:
str
- Default: Every day of the month
The day of the month to run this rule at.
hour
Optional ¶
- Type:
str
- Default: Every hour
The hour to run this rule at.
minute
Optional ¶
- Type:
str
- Default: Every minute
The minute to run this rule at.
month
Optional ¶
- Type:
str
- Default: Every month
The month to run this rule at.
week_day
Optional ¶
- Type:
str
- Default: Any day of the week
The day of the week to run this rule at.
weekly
¶
import cdk8s
cdk8s.Cron.weekly()
Properties ¶
expression_string
Required ¶
expression_string: str
- Type:
str
Retrieve the expression for this schedule.
DependencyGraph ¶
Represents the dependency graph for a given Node.
This graph includes the dependency relationships between all nodes in the node (construct) sub-tree who’s root is this Node.
Note that this means that lonely nodes (no dependencies and no dependants) are also included in this graph as childless children of the root node of the graph.
The graph does not include cross-scope dependencies. That is, if a child on the current scope depends on a node from a different scope, that relationship is not represented in this graph.
Initializers ¶
import cdk8s
cdk8s.DependencyGraph(
node: Node
)
node
Required ¶
- Type:
constructs.Node
Methods ¶
topology
¶
def topology()
Properties ¶
root
Required ¶
root: DependencyVertex
- Type:
cdk8s.DependencyVertex
Returns the root of the graph.
Note that this vertex will always have null
as its .value
since it is an artifical root
that binds all the connected spaces of the graph.
DependencyVertex ¶
Represents a vertex in the graph.
The value of each vertex is an IConstruct
that is accessible via the .value
getter.
Initializers ¶
import cdk8s
cdk8s.DependencyVertex(
value: IConstruct = None
)
value
Optional ¶
- Type:
constructs.IConstruct
Methods ¶
add_child
¶
def add_child(
dep: DependencyVertex
)
dep
Required ¶
- Type:
cdk8s.DependencyVertex
The dependency.
topology
¶
def topology()
Properties ¶
inbound
Required ¶
inbound: typing.List[DependencyVertex]
- Type: typing.List[
cdk8s.DependencyVertex
]
Returns the parents of the vertex (i.e dependants).
outbound
Required ¶
outbound: typing.List[DependencyVertex]
- Type: typing.List[
cdk8s.DependencyVertex
]
Returns the children of the vertex (i.e dependencies).
value
Optional ¶
value: IConstruct
- Type:
constructs.IConstruct
Returns the IConstruct this graph vertex represents.
null
in case this is the root of the graph.
Duration ¶
Represents a length of time.
The amount can be specified either as a literal value (e.g: 10
) which
cannot be negative.
Methods ¶
to_days
¶
def to_days(
integral: bool = None
)
integral
Optional ¶
- Type:
bool
- Default: true
If true
, conversions into a larger time unit (e.g. Seconds
to Minutes
) will fail if the result is not an integer.
to_hours
¶
def to_hours(
integral: bool = None
)
integral
Optional ¶
- Type:
bool
- Default: true
If true
, conversions into a larger time unit (e.g. Seconds
to Minutes
) will fail if the result is not an integer.
to_human_string
¶
def to_human_string()
to_iso_string
¶
def to_iso_string()
to_milliseconds
¶
def to_milliseconds(
integral: bool = None
)
integral
Optional ¶
- Type:
bool
- Default: true
If true
, conversions into a larger time unit (e.g. Seconds
to Minutes
) will fail if the result is not an integer.
to_minutes
¶
def to_minutes(
integral: bool = None
)
integral
Optional ¶
- Type:
bool
- Default: true
If true
, conversions into a larger time unit (e.g. Seconds
to Minutes
) will fail if the result is not an integer.
to_seconds
¶
def to_seconds(
integral: bool = None
)
integral
Optional ¶
- Type:
bool
- Default: true
If true
, conversions into a larger time unit (e.g. Seconds
to Minutes
) will fail if the result is not an integer.
unit_label
¶
def unit_label()
Static Functions ¶
days
¶
import cdk8s
cdk8s.Duration.days(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
the amount of Days the Duration
will represent.
hours
¶
import cdk8s
cdk8s.Duration.hours(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
the amount of Hours the Duration
will represent.
millis
¶
import cdk8s
cdk8s.Duration.millis(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
the amount of Milliseconds the Duration
will represent.
minutes
¶
import cdk8s
cdk8s.Duration.minutes(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
the amount of Minutes the Duration
will represent.
parse
¶
import cdk8s
cdk8s.Duration.parse(
duration: str
)
duration
Required ¶
- Type:
str
an ISO-formtted duration to be parsed.
seconds
¶
import cdk8s
cdk8s.Duration.seconds(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
the amount of Seconds the Duration
will represent.
JsonPatch ¶
Utility for applying RFC-6902 JSON-Patch to a document.
Use the the JsonPatch.apply(doc, ...ops)
function to apply a set of
operations to a JSON document and return the result.
Operations can be created using the factory methods JsonPatch.add()
,
JsonPatch.remove()
, etc.
Static Functions ¶
add
¶
import cdk8s
cdk8s.JsonPatch.add(
path: str,
value: typing.Any
)
path
Required ¶
- Type:
str
value
Required ¶
- Type:
typing.Any
apply
¶
import cdk8s
cdk8s.JsonPatch.apply(
document: typing.Any,
ops: JsonPatch
)
document
Required ¶
- Type:
typing.Any
The document to patch.
ops
Required ¶
- Type:
cdk8s.JsonPatch
The operations to apply.
copy
¶
import cdk8s
cdk8s.JsonPatch.copy(
from: str,
path: str
)
from
Required ¶
- Type:
str
path
Required ¶
- Type:
str
move
¶
import cdk8s
cdk8s.JsonPatch.move(
from: str,
path: str
)
from
Required ¶
- Type:
str
path
Required ¶
- Type:
str
remove
¶
import cdk8s
cdk8s.JsonPatch.remove(
path: str
)
path
Required ¶
- Type:
str
replace
¶
import cdk8s
cdk8s.JsonPatch.replace(
path: str,
value: typing.Any
)
path
Required ¶
- Type:
str
value
Required ¶
- Type:
typing.Any
test
¶
import cdk8s
cdk8s.JsonPatch.test(
path: str,
value: typing.Any
)
path
Required ¶
- Type:
str
value
Required ¶
- Type:
typing.Any
Lazy ¶
Methods ¶
produce
¶
def produce()
Static Functions ¶
any
¶
import cdk8s
cdk8s.Lazy.any(
producer: IAnyProducer
)
producer
Required ¶
- Type:
cdk8s.IAnyProducer
Names ¶
Utilities for generating unique and stable names.
Static Functions ¶
to_dns_label
¶
import cdk8s
cdk8s.Names.to_dns_label(
scope: Construct,
delimiter: str = None,
extra: typing.List[str] = None,
include_hash: bool = None,
max_len: typing.Union[int, float] = None
)
scope
Required ¶
- Type:
constructs.Construct
The construct for which to render the DNS label.
delimiter
Optional ¶
- Type:
str
- Default: “-“
Delimiter to use between components.
extra
Optional ¶
- Type: typing.List[
str
] - Default: [] use the construct path components
Extra components to include in the name.
include_hash
Optional ¶
- Type:
bool
- Default: true
Include a short hash as last part of the name.
max_len
Optional ¶
- Type:
typing.Union[int, float]
- Default: 63
Maximum allowed length for the name.
to_label_value
¶
import cdk8s
cdk8s.Names.to_label_value(
scope: Construct,
delimiter: str = None,
extra: typing.List[str] = None,
include_hash: bool = None,
max_len: typing.Union[int, float] = None
)
scope
Required ¶
- Type:
constructs.Construct
The construct for which to render the DNS label.
delimiter
Optional ¶
- Type:
str
- Default: “-“
Delimiter to use between components.
extra
Optional ¶
- Type: typing.List[
str
] - Default: [] use the construct path components
Extra components to include in the name.
include_hash
Optional ¶
- Type:
bool
- Default: true
Include a short hash as last part of the name.
max_len
Optional ¶
- Type:
typing.Union[int, float]
- Default: 63
Maximum allowed length for the name.
Size ¶
Represents the amount of digital storage.
The amount can be specified either as a literal value (e.g: 10
) which
cannot be negative.
When the amount is passed as a token, unit conversion is not possible.
Methods ¶
to_gibibytes
¶
def to_gibibytes(
rounding: SizeRoundingBehavior = None
)
rounding
Optional ¶
- Type:
cdk8s.SizeRoundingBehavior
- Default: SizeRoundingBehavior.FAIL
How conversions should behave when it encounters a non-integer result.
to_kibibytes
¶
def to_kibibytes(
rounding: SizeRoundingBehavior = None
)
rounding
Optional ¶
- Type:
cdk8s.SizeRoundingBehavior
- Default: SizeRoundingBehavior.FAIL
How conversions should behave when it encounters a non-integer result.
to_mebibytes
¶
def to_mebibytes(
rounding: SizeRoundingBehavior = None
)
rounding
Optional ¶
- Type:
cdk8s.SizeRoundingBehavior
- Default: SizeRoundingBehavior.FAIL
How conversions should behave when it encounters a non-integer result.
to_pebibytes
¶
def to_pebibytes(
rounding: SizeRoundingBehavior = None
)
rounding
Optional ¶
- Type:
cdk8s.SizeRoundingBehavior
- Default: SizeRoundingBehavior.FAIL
How conversions should behave when it encounters a non-integer result.
to_tebibytes
¶
def to_tebibytes(
rounding: SizeRoundingBehavior = None
)
rounding
Optional ¶
- Type:
cdk8s.SizeRoundingBehavior
- Default: SizeRoundingBehavior.FAIL
How conversions should behave when it encounters a non-integer result.
Static Functions ¶
gibibytes
¶
import cdk8s
cdk8s.Size.gibibytes(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
kibibytes
¶
import cdk8s
cdk8s.Size.kibibytes(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
mebibytes
¶
import cdk8s
cdk8s.Size.mebibytes(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
pebibyte
¶
import cdk8s
cdk8s.Size.pebibyte(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
tebibytes
¶
import cdk8s
cdk8s.Size.tebibytes(
amount: typing.Union[int, float]
)
amount
Required ¶
- Type:
typing.Union[int, float]
Testing ¶
Testing utilities for cdk8s applications.
Static Functions ¶
app
¶
import cdk8s
cdk8s.Testing.app(
outdir: str = None,
output_file_extension: str = None,
record_construct_metadata: bool = None,
yaml_output_type: YamlOutputType = None
)
outdir
Optional ¶
- Type:
str
- Default: CDK8S_OUTDIR if defined, otherwise “dist”
The directory to output Kubernetes manifests.
If you synthesize your application using cdk8s synth
, you must
also pass this value to the CLI using the --output
option or
the output
property in the cdk8s.yaml
configuration file.
Otherwise, the CLI will not know about the output directory,
and synthesis will fail.
This property is intended for internal and testing use.
output_file_extension
Optional ¶
- Type:
str
- Default: .k8s.yaml
The file extension to use for rendered YAML files.
record_construct_metadata
Optional ¶
- Type:
bool
- Default: false
When set to true, the output directory will contain a construct-metadata.json
file that holds construct related metadata on every resource in the app.
yaml_output_type
Optional ¶
- Type:
cdk8s.YamlOutputType
- Default: YamlOutputType.FILE_PER_CHART
How to divide the YAML output into files.
chart
¶
import cdk8s
cdk8s.Testing.chart()
synth
¶
import cdk8s
cdk8s.Testing.synth(
chart: Chart
)
chart
Required ¶
- Type:
cdk8s.Chart
Yaml ¶
YAML utilities.
Static Functions ¶
~~format_objects
~~ ¶
import cdk8s
cdk8s.Yaml.format_objects(
docs: typing.List[typing.Any]
)
docs
Required ¶
- Type: typing.List[
typing.Any
]
load
¶
import cdk8s
cdk8s.Yaml.load(
url_or_file: str
)
url_or_file
Required ¶
- Type:
str
a URL of a file path to load from.
save
¶
import cdk8s
cdk8s.Yaml.save(
file_path: str,
docs: typing.List[typing.Any]
)
file_path
Required ¶
- Type:
str
The output path.
docs
Required ¶
- Type: typing.List[
typing.Any
]
The set of objects.
stringify
¶
import cdk8s
cdk8s.Yaml.stringify(
docs: typing.Any
)
docs
Required ¶
- Type:
typing.Any
A set of objects to convert to YAML.
tmp
¶
import cdk8s
cdk8s.Yaml.tmp(
docs: typing.List[typing.Any]
)
docs
Required ¶
- Type: typing.List[
typing.Any
]
the set of documents to save.
Protocols ¶
IAnyProducer ¶
- Implemented By:
cdk8s.IAnyProducer
Methods ¶
produce
¶
def produce()
Enums ¶
SizeRoundingBehavior ¶
Rounding behaviour when converting between units of Size
.
FAIL
¶
Fail the conversion if the result is not an integer.
FLOOR
¶
If the result is not an integer, round it to the closest integer less than the result.
NONE
¶
Don’t round.
Return even if the result is a fraction.
YamlOutputType ¶
The method to divide YAML output into files.
FILE_PER_APP
¶
All resources are output into a single YAML file.
FILE_PER_CHART
¶
Resources are split into seperate files by chart.
FILE_PER_RESOURCE
¶
Each resource is output to its own file.
FOLDER_PER_CHART_FILE_PER_RESOURCE
¶
Each chart in its own folder and each resource in its own file.