Skip to content

guidewire-oss/kubevela-one-interface-demos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KubeVela One Interface — Demos

One Interface To Rule Them All — taming Kubernetes complexity with KubeVela and the Open Application Model (OAM).

A collection of demos built around a single theme: using KubeVela + OAM as one interface that tames the complexity of Kubernetes — including provisioning cloud resources across multiple clouds from the same developer-facing declaration.

  • demos/ — the demos themselves; each is a self-contained folder.
  • platform/ — reusable building blocks (Components, Traits, Policies) and cloud assets (Crossplane, Config Connector) shared across demos.
  • apps/ — application source code (cloud-neutral), shared across demos.

The story this repo tells

Platform fragmentation is a silent productivity killer. To ship one service a developer ends up mastering compute, networking, observability, security, and infrastructure-as-code — the complexity iceberg. KubeVela + OAM collapses that into a single interface:

Role Concern Lives in
Platform teamthe How Defines reusable, secure building blocks (Components, Traits, Policies) and cloud compositions that encapsulate best practices and governance. platform/
Application developerthe What Declares needs in one simple YAML. Claims a bucket, gets autoscaling, observability, and compliance — without knowing the implementation. demos/<demo>/kubevela/

One workload definition deploys application code and provisions the cloud resources it depends on. Reusable traits auto-inject observability, compliance, and HA so developers never hand-write that boilerplate.

One interface, three backings, two clouds

The headline resource is an object-storage bucket. The developer's bucket claim is identical no matter how — or where — it is provisioned. Only the platform-side backing changes:

Track Backing Cloud Resource Platform assets
1 Crossplane AWS S3 platform/crossplane/ + bucket-xp.cue
2 AWS Controllers for Kubernetes (ACK) AWS S3 bucket-ack.cue
3 Google Config Connector (KCC) GCP GCS platform/kcc/ + bucket-kcc.cue

All three register a ComponentDefinition named bucket with the same parameters (name / region / versioning / projectName). Install exactly one backing; the developer Application never changes. Track 3 is the strongest expression of the promise — the same claim crosses not just backends but clouds (AWS → GCP). The application tier is cloud-neutral too: the sample app talks to an ObjectStore abstraction (S3 or GCS, chosen by STORAGE_PROVIDER), never to a cloud SDK directly.

Demos

1. KubeCon India 2026 — Mumbai

Location: demos/kubecon-in-2026/

Tracks: AWS (Crossplane / ACK) and GCP (KCC), each with its own setup folder.

See: demos/kubecon-in-2026/README.md for complete documentation and walkthrough.md for the spoken narrative.

Repository layout

kubevela-one-interface-demos/
├── platform/              # "The How" — platform-team building blocks
│   ├── kubevela/          #   KubeVela X-Definitions:
│   │   ├── components/    #     bucket-xp / bucket-ack / bucket-kcc (the bucket claim, 3 backings)
│   │   │   └── example/   #       a minimal Application that just claims a bucket
│   │   ├── traits/        #     high-availability, s3-versioning
│   │   └── policies/      #     governance, topology, overrides
│   ├── crossplane/        #   Crossplane assets (AWS S3): function, providers, ProviderConfigs, S3 XRD+Composition
│   └── kcc/               #   Config Connector assets (GCP GCS): ConfigConnector + StorageBucket example
├── apps/                  # Application source code, cloud-neutral (one folder per app)
│   └── product-catalog/   #   Flask API; storage.py abstracts S3 vs GCS
├── demos/                 # Runnable, self-contained scenarios (one per event/topic)
│   └── kubecon-in-2026/
│       ├── kubevela/      #     product-catalog.yaml (AWS) + product-catalog-gcp.yaml (GCP)
│       ├── aws-setup/     #     AWS tracks — init/setup-with-xp (Crossplane), -with-ack (ACK), teardown; + .ipynb pairs
│       ├── gcp-setup/     #     GCP track — init/setup-with-kcc (KCC); + .ipynb notebook pair
│       ├── cleanup.sh     #     delete the local cluster + registry
│       └── walkthrough.md #     slide beats mapped to commands
├── defkit/                # Go-native X-Definition authoring (KubeVela v1.11+)
└── scripts/               # Shared bootstrap helpers (see scripts/index.md)

Each track owns its init-*/setup-* scripts + local state under its own setup folder (aws-setup/ or gcp-setup/); the platform building blocks, the apps, and the shared scripts/ helpers live at the repo root.

Additional Resources

About

Demos showing how KubeVela and the Open Application Model give developers one interface to tame Kubernetes complexity.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors