The OAM Kubernetes runtime project is a collection of Golang helper libraries and OAM api type definitions.
It is designed to help OAM platform builders rather than being used directly by developers or end-users. We would recommend end-users to check Crossplane official documentation instead.
In addition, we created this library with the following goals in mind
- All OAM Kubernetes platform builders use and contribute to this library.
- The wide adoption of this library can facilitate workload/trait interoperability among OAM Kubernetes platform builders.
- Golang version 1.12+
- Kubernetes version v1.15+ with kubectl configured
The functionality of this library can be demonstrated with the following steps:
-
Fork and Clone this project
-
Build the library
make submodules
make
- Generate and install CRDs to your Kubernetes cluster
make generate
kubectl apply -f crds/
- Run OAM sample controller
go run examples/containerized-workload/main.go
- Apply the sample application configurations
kubectl apply -f examples/containerized-workload/
- Verify that corresponding CRs are emitted.
You should see a ContainerizedWorkload
looking like below
kubectl get containerizedworkloads.core.oam.dev
NAME AGE
example-appconfig-workload 12s
And a Manualscalertrait
looking like below
kubectl get manualscalertraits.core.oam.dev
NAME AGE
example-appconfig-trait 54s
You can reach the maintainers of this project at:
- Slack channel: crossplane#oam
The OAM Kubernetes runtime is released under the Apache 2.0 license.