AbstractAbstract ReadonlyidentifierUnique identifier for this provider type.
Used in ResolveContext.provider during synthesis and written to manifest.json.
Examples: 'kubernetes', 'hetzner', 'github-actions'
Returns provider-specific environment metadata written into manifest.json.
This is the information the runtime engine needs to know WHERE and HOW to deploy the stack — e.g. the Hetzner project, the Kubernetes cluster API server, the GitHub org, etc.
Override in provider subclasses to expose deployment target metadata. The returned object must be JSON-serializable; do NOT include credentials.
A plain JSON-serializable object. Default: {}.
Returns provider-specific resolvers to be prepended to the resolver pipeline when synthesizing stacks that use this provider.
Custom resolvers run before the built-in LazyResolver and ImplicitTokenResolver,
allowing them to intercept any value first.
Override this method in provider subclasses to register custom token resolvers.
An ordered list of IResolver instances. Default: empty array.
Returns the default synthesizer for stacks that use this provider.
Override in provider subclasses to change the output format.
For example, a KubernetesProvider would return a YamlSynthesizer.
An IStackSynthesizer instance. Default: JsonSynthesizer.
Abstract base class for all cdkx providers.
A Provider represents the configuration and behaviour for a specific target platform (e.g. Kubernetes, Hetzner Cloud, GitHub Actions). Each provider encapsulates:
identifierstring used inResolveContext.providerand inmanifest.jsonIResolverinstances that are injected into the resolver pipeline before the built-in resolvers, enabling provider-specific token resolution (e.g. aSecretRefthat resolves to${{ secrets.NAME }}in GitHub Actions vs{ secretKeyRef: { name, key } }in Kubernetes)IStackSynthesizerthat controls how stacks are serialized (e.g.YamlSynthesizerfor Kubernetes,JsonSynthesizerfor Hetzner)Provider packages (e.g.
@cdk-x/kubernetes,@cdk-x/hetzner) extend this class and accept their own configuration in the constructor (credentials, datacenter, cluster, etc.). That configuration is intentionally NOT serialized into the synthesis output — it is runtime-only information used by the deployer CLI.Example