Resources
Kyku provides a comprehensive set of resource types covering compute, networking, storage, security, and application infrastructure. All resource classes extend BaseResource and are imported from @kykucloud/types.
Provider Support Matrix
Section titled “Provider Support Matrix”| Resource | AWS | GCP | Hetzner | DigitalOcean |
|---|---|---|---|---|
| Vpc | ✅ | ✅ | ✅ | ✅ |
| Subnet | ✅ | ✅ | ✅ | ✅ |
| Vm | ✅ | ✅ | ✅ | ✅ |
| SecurityGroup | ✅ | ✅ | ✅ | ✅ |
| LoadBalancer | ✅ | ✅ | ✅ | ✅ |
| TargetGroup | ✅ | ❌ | ✅ | ✅ |
| Database | ✅ (RDS) | ✅ (Cloud SQL) | ❌ | ✅ (Managed DB) |
| Identity | ✅ (IAM User) | ✅ (Service Account) | ❌ | ❌ |
| Role | ✅ (IAM Role) | ✅ (Custom Role) | ❌ | ❌ |
| SshKey | ✅ (Key Pair) | ❌ | ✅ | ✅ |
| Bucket | ✅ (S3) | ✅ (Cloud Storage) | ✅ (S3-compat) | ✅ (Spaces) |
| DnsZone | ✅ (Route53) | ✅ (Cloud DNS) | ✅ (DNS API) | ✅ (Domain) |
| DnsRecord | ✅ (Route53) | ✅ (Cloud DNS) | ✅ (DNS API) | ✅ (Record) |
| Secret | ✅ (Secrets Manager) | ✅ (Secret Manager) | ❌ | ❌ |
| Certificate | ✅ (ACM) | ✅ (Certificate Manager) | ❌ | ❌ |
| KmsKey | ✅ (KMS) | ✅ (Cloud KMS) | ❌ | ❌ |
| Volume | ✅ (EBS) | ✅ (Persistent Disk) | ✅ (Volume) | ❌ |
| StaticIp | ✅ (Elastic IP) | ✅ (Address) | ✅ (Floating IP) | ✅ (Floating IP) |
| ContainerRegistry | ✅ (ECR) | ✅ (Artifact Registry) | ❌ | ✅ (Registry) |
| Cdn | ✅ (CloudFront) | ✅ (Cloud CDN) | ❌ | ❌ |
| AutoScalingGroup | ✅ (ASG) | ✅ (MIG) | ❌ | ❌ |
| Queue | ✅ (SQS) | ✅ (Pub/Sub) | ❌ | ❌ |
| Cache | ✅ (ElastiCache) | ✅ (Memorystore) | ❌ | ✅ (Redis) |
| KubernetesCluster | ✅ (EKS) | ✅ (GKE) | ❌ | ✅ (DOKS) |
| Custom | ✅ | ✅ | ✅ | ✅ |
Resource Overview
Section titled “Resource Overview”Networking
Section titled “Networking”- Vpc — Virtual private cloud with CIDR, region, and availability zone distribution
- Subnet — Synthetic subnet resource auto-injected by the planner
- SecurityGroup — Ingress and egress firewall rules
- StaticIp — Reserved public IP (Elastic IP / Address / Floating IP)
Compute
Section titled “Compute”- Vm — Virtual machine instances with SSH, security groups, and user data
- AutoScalingGroup — Auto-scaling instance groups
- KubernetesCluster — Managed Kubernetes clusters
Load Balancing
Section titled “Load Balancing”- LoadBalancer — Application and network load balancers
- TargetGroup — Logical target binding using label selectors
Storage
Section titled “Storage”- Bucket — Object storage (S3-compatible)
- Volume — Block storage volumes
- Cache — In-memory caching (Redis / Memcached)
- ContainerRegistry — Managed container image registry
- Cdn — Content delivery network (CloudFront / Cloud CDN)
Databases & Queues
Section titled “Databases & Queues”Security & Identity
Section titled “Security & Identity”- Identity — IAM Users and Service Accounts
- Role — IAM Roles and permission definitions
- SshKey — SSH public key management
- Secret — Encrypted secrets management
- Certificate — SSL/TLS certificates
- KmsKey — Encryption key management
Custom
Section titled “Custom”- Custom — User-defined resources with custom lifecycle handlers
Common Config Properties
Section titled “Common Config Properties”Every resource type inherits these properties from ResourceConfig:
| Property | Type | Required | Description |
|---|---|---|---|
name |
string |
yes | Unique resource name |
id |
string |
no | Explicit ID (auto-generated UUID if omitted) |
provider |
string |
no | Provider label for multi-provider configs |
tags |
Record<string, string> |
no | Arbitrary key-value metadata |
Deployment Prefix
Section titled “Deployment Prefix”Every deployment receives a unique 8-character hex prefix (e.g. a3f27b1d) applied to all new resource names. This avoids naming collisions between different deployments in the same cloud account. Resources already tracked in state retain their original names. The prefix adds 9 characters (8 hex + dash) to resource names — plan for name length limits accordingly.