Add Linode (Akamai) cloud module set#353
Merged
Merged
Conversation
Build the Facets redesign-pattern module set for Linode (Akamai Cloud) so blueprints can target Linode as a first-class cloud. Modules (intent/flavor): - cloud_account/linode_provider -> @facets/linode_cloud_account - network/linode_vpc -> @facets/linode-vpc-details - kubernetes_cluster/lke -> @facets/lke + @facets/kubernetes-details - kubernetes_node_pool/lke -> @facets/kubernetes_nodepool - object_storage/linode -> @facets/linode-object-storage - postgres/linode -> @facets/postgres - service/k8s (generic) -> @facets/service Naming derived from AWS/GCP conventions; auth and object-storage modeled on the OVH non-hyperscaler precedent (single API token; S3-compatible creds). Provider linode/linode (>= 3.0.0). LKE cluster takes an optional network input to place nodes in a VPC subnet. service/k8s is cloud-agnostic (no pod IAM — Linode has no IRSA/workload-identity equivalent). Also adds a Linode project type (project-type/linode) wiring the cloud modules plus cloud-agnostic Kubernetes modules, and a README preview section. All modules validate via raptor dry-run and were published to the demo control plane; a wired linode-demo project is ready for plan testing once Linode credentials are available. Not yet applied (no real infra provisioned). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- project-type/linode/ONBOARDING.md: step-by-step cloud onboarding (API token + scopes, project-type import, cloud account setup, infra wiring, plan/deploy, region/type reference, gotchas). - README: upgrade the Linode section to full onboarding parity (Praxis prompt + raptor import + token prerequisite + what's included). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Remove project-type/linode/base/** (no starter blueprint); projects created from this type start empty. - Drop gitUrl/gitRef/baseTemplatePath from project-type.yml (only needed for --include-base-template) and lowercase the name to `linode` to match the aws/gcp convention. - Update README + ONBOARDING import commands: file-based import with --modules-dir/--outputs-dir, no --include-base-template. Verified: `raptor import project-type -f project-type/linode/project-type.yml` updates the project type to 30 mapped resource types, allowedClouds=[KUBERNETES], empty template (no base resources). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Validated end-to-end on real Linode infra (us-ord); fixes for issues the live deploy surfaced: - Add kubernetes-alpha provider to the LKE attributes output (@facets/ kubernetes-details declares it and service/k8s consumes it; its absence failed the deploy with "missing provider kubernetes-alpha"). - Update k8s_version enum to 1.34/1.35 (default 1.35); 1.31-1.33 are no longer valid LKE versions. - Add control_plane hardening: audit_logs_enabled and an optional api_server_allowed_cidrs (control_plane.acl IPv4 allow-list). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
anshulsao
marked this pull request as ready for review
June 8, 2026 18:34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the Facets redesign-pattern module set for Linode (Akamai Cloud) so blueprints can target Linode as a first-class cloud. Naming derives from the AWS/GCP conventions; auth and object-storage follow the OVH non-hyperscaler precedent.
Modules (intent / flavor → output type)
cloud_account/linode_provider@facets/linode_cloud_account(new)network/linode_vpc@facets/linode-vpc-details(new)linode_vpc+ subnetkubernetes_cluster/lke@facets/lke(new) +@facets/kubernetes-detailsnetworkinput places nodes in a VPC subnetkubernetes_node_pool/lke@facets/kubernetes_nodepool(reused)linode_lke_node_poolobject_storage/linode@facets/linode-object-storage(new)postgres/linode@facets/postgres(reused)linode_database_postgresql_v2, reader/writerservice/k8s@facets/service(reused)Project type
Adds
project-type/linodewiring the Linode cloud modules plus cloud-agnostic Kubernetes modules (KubeBlocks datastores, service/k8s, helm, ingress, cert-manager, operators, monitoring). AWS/GCP/Azure cloud modules are intentionally excluded.Provider
linode/linode >= 3.0.0(latest 3.13.0).required_providersdeclared inversions.tffor non-hashicorp resolution (benign raptor warning, same as OVH).Testing
raptor create iac-module --dry-run(terraform fmt/init/validate against the real provider schema) and were published to the demo control plane.linode-demoproject (all 7 resources) is assembled on the demo CP, ready forraptor planonce a Linode API token is available.Follow-ups
index.html) card + internal pages (OVH is also absent there).facets/linode) if desired.🤖 Generated with Claude Code