{"id":13625361,"url":"https://github.com/upbound/platform-ref-aws","last_synced_at":"2026-03-12T07:03:02.422Z","repository":{"id":39281433,"uuid":"298377788","full_name":"upbound/platform-ref-aws","owner":"upbound","description":"AWS Reference Platform for Kubernetes + Data Services for use as a starting point in upbound.io to build, run, and operate your own internal cloud platform and offer a self-service console and API to your internal teams.","archived":false,"fork":false,"pushed_at":"2025-03-24T12:14:02.000Z","size":1293,"stargazers_count":109,"open_issues_count":5,"forks_count":60,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-04-02T00:33:35.916Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/upbound.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-24T19:36:25.000Z","updated_at":"2025-03-10T10:12:35.000Z","dependencies_parsed_at":"2024-04-25T17:28:02.204Z","dependency_job_id":"cc51dac5-9e96-400f-b46f-bb00d3d95234","html_url":"https://github.com/upbound/platform-ref-aws","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fplatform-ref-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fplatform-ref-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fplatform-ref-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fplatform-ref-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upbound","download_url":"https://codeload.github.com/upbound/platform-ref-aws/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305933,"owners_count":20917208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T21:01:54.521Z","updated_at":"2026-03-12T07:03:02.406Z","avatar_url":"https://github.com/upbound.png","language":"Makefile","funding_links":[],"categories":["Infrastructure as Code","AMPL"],"sub_categories":["Crossplane"],"readme":"# AWS Reference Platform\n\nThis repository contains a reference AWS Platform Configuration for\n[Crossplane](https://crossplane.io/) built with [Upbound DevEx](https://docs.upbound.io/devex/). It's a great starting point for building\ninternal cloud platforms with AWS and offer a self-service API to your internal\ndevelopment teams.\n\nThis platform offers APIs for setting up fully configured EKS clusters\nwith secure networking, AWS Load Balancer Controller, stateful cloud services (RDS Database) that can securely\nconnect to the EKS clusters, an Observability Stack, and a GitOps\nSystem. All these components are built using cloud service tools from\nthe [Official Upbound Family AWS Provider](https://marketplace.upbound.io/providers/upbound/provider-family-aws).\nApp deployments can securely connect to the infrastructure they need using secrets\ndistributed directly to the app namespace.\n\n## Architecture\n\nThis platform uses **Upbound DevEx** with:\n- **Embedded KCL Functions**: Pipeline-mode compositions with embedded KCL functions instead of external patch-and-transform\n- **Test-Driven Development**: Comprehensive composition tests and e2e tests\n- **Strong Typing**: KCL models for type-safe resource definitions\n- **Modern Workflow**: `up project build`, `up test run`, and `up composition render` commands\n\n## Overview\n\nThis reference platform outlines a specialized API for generating an EKS cluster\n([Cluster](apis/clusters/definition.yaml)) that incorporates XRs from the specified configurations:\n\n* [upbound-configuration-aws-lb-controller](https://github.com/upbound/configuration-aws-lb-controller)\n* [upbound-configuration-aws-network](https://github.com/upbound/configuration-aws-network)\n* [upbound-configuration-aws-eks](https://github.com/upbound/configuration-aws-eks)\n* [upbound-configuration-aws-database](https://github.com/upbound/configuration-aws-database)\n* [upbound-configuration-app](https://github.com/upbound/configuration-app)\n* [upbound-configuration-observability-oss](https://github.com/upbound/configuration-observability-oss)\n* [upbound-configuration-gitops-flux](https://github.com/upbound/configuration-gitops-flux)\n\n```mermaid\ngraph LR;\n    MyApp(My App)---MyCluster(XRC: my-cluster);\n    MyCluster---XRD1(XRD: Cluster);\n    MyApp---MyDB(XRC: my-db);\n    MyDB---XRD2(XRD: XSQLInstance);\n\t\tsubgraph Configuration:upbound/platform-ref-aws;\n\t    XRD1---Composition(EKS, Network, AWSLBController, Flux, Oss);\n\t    XRD2---Composition2(Composition);\n\t\tend\n\t\tsubgraph Provider:upbound/provider-aws\n\t    Composition---IAM.MRs(MRs: IAM Role, RolePolicyAttachment, OpenIDConnectProvider);\n\t    Composition---EKS.MRs(MRs: EKS Cluster, ClusterAuth, NodeGroup);\n\t    Composition2---RDS.MRs(MRs: RDS SubnetGroup, Instance);\n\t\tend\n\nstyle MyApp color:#000,fill:#e6e6e6,stroke:#000,stroke-width:2px\nstyle MyCluster color:#000,fill:#D68A82,stroke:#000,stroke-width:2px\nstyle MyDB color:#000,fill:#D68A82,stroke:#000,stroke-width:2px\nstyle Configuration:upbound/platform-ref-aws fill:#f1d16d,opacity:0.3\nstyle Provider:upbound/provider-aws fill:#81CABB,opacity:0.3\nstyle XRD1 color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px,stroke-dasharray: 5 5\nstyle XRD2 color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px,stroke-dasharray: 5 5\nstyle Composition color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px\nstyle Composition2 color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px\n\nstyle IAM.MRs color:#000,fill:#81CABB,stroke:#000,stroke-width:2px\nstyle EKS.MRs color:#000,fill:#81CABB,stroke:#000,stroke-width:2px\nstyle RDS.MRs color:#000,fill:#81CABB,stroke:#000,stroke-width:2px\n```\n\nLearn more about Composite Resources in the [Crossplane\nDocs](https://docs.crossplane.io/latest/concepts/compositions/).\n\n## Quickstart\n\n### Installation\n\nInstall this platform from the [Upbound Marketplace](https://marketplace.upbound.io/configurations/upbound/platform-ref-aws/):\n\n```console\nup ctp configuration install xpkg.upbound.io/upbound/platform-ref-aws:v1.3.0\n```\n\n### Development Workflow\n\nThis platform uses **Upbound DevEx** for modern development:\n\n```console\n# Build the project and compile KCL functions\nup project build\n\n# Run composition tests\nup test run tests/*\n\n# Render compositions with examples\nup composition render apis/clusters/definition.yaml apis/clusters/composition.yaml examples/cluster-xr.yaml\n```\n\n## Using the Platform\n\nOnce installed, you can create platform resources using the provided examples:\n\n```console\n# Create a cluster with networking, AWS Load Balancer Controller, observability, and GitOps\nkubectl apply -f examples/cluster-claim.yaml\n\n# Create a MariaDB database (after cluster is ready)\nkubectl apply -f examples/mariadb-claim.yaml\n\n# Deploy a sample application\nkubectl apply -f examples/app-claim.yaml\n```\n\nMonitor deployment status:\n\n```console\nkubectl get claim,composite,managed\n```\n\nYou can also use the Crossplane CLI for detailed status:\n\n```console\ncrossplane beta trace cluster.aws.platformref.upbound.io/platform-ref-aws\n```\n\n## Development\n\n### Testing\n\n```console\n# Run composition tests\nup test run tests/*\n\n# Run end-to-end tests\nup test run tests/* --e2e\n```\n\n### Building and Publishing\n\n```console\n# Build the project\nup project build\n\n# Deploy locally\nup project run\n```\n\nFor publishing to the marketplace, see the [Upbound documentation](https://docs.upbound.io/devex/).\n\n## Platform Features\n\nThis reference platform includes several key features:\n\n### AWS Load Balancer Controller Integration\n- Automatic AWS Load Balancer Controller deployment\n- VPC ID propagation to avoid EC2 metadata discovery\n- Proper webhook management to prevent race conditions\n\n### Intelligent Resource Ordering\n- Network resources created first\n- EKS cluster provisioned after networking\n- Load Balancer Controller deployed after EKS is ready\n- Flux and Observability components deployed after Load Balancer Controller to avoid webhook conflicts\n\n### Enhanced Resilience\n- Flux deployments with extended timeouts (30 minutes) and rollback limits (15 attempts)\n- Conditional resource creation based on readiness status\n- Proper usage dependencies for deletion ordering\n\n### Cross-Platform Compatibility\n- Uses `crossplane-system` namespace (standard Crossplane)\n- Compatible with both UXP and standard Crossplane installations\n\n## Next Steps\n\n- Explore the [examples](examples/) directory for usage patterns\n- Check out the [Upbound DevEx documentation](https://docs.upbound.io/devex/) for advanced features\n- Join the [Crossplane Slack](https://slack.crossplane.io) community","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupbound%2Fplatform-ref-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupbound%2Fplatform-ref-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupbound%2Fplatform-ref-aws/lists"}