Skip to content

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.

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
  • 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)
  • Vm — Virtual machine instances with SSH, security groups, and user data
  • AutoScalingGroup — Auto-scaling instance groups
  • KubernetesCluster — Managed Kubernetes clusters
  • LoadBalancer — Application and network load balancers
  • TargetGroup — Logical target binding using label selectors
  • 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)
  • Database — Managed relational databases
  • Queue — Message queues
  • 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
  • DnsZone — DNS zones (Route53, Cloud DNS, etc.)
  • DnsRecord — Individual DNS records within a zone
  • Custom — User-defined resources with custom lifecycle handlers

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

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.