diff --git a/pkg/builtin/workloaddefinition/backend.go b/pkg/builtin/workloaddefinition/backend.go new file mode 100644 index 000000000..e45c867eb --- /dev/null +++ b/pkg/builtin/workloaddefinition/backend.go @@ -0,0 +1,54 @@ +package workloaddefinition + +var BackendService = `apiVersion: standard.oam.dev/v1alpha2 +kind: WorkloadDefinition +metadata: + name: backend-service + annotations: + definition.oam.dev/apiVersion: "standard.oam.dev/v1alpha2" + definition.oam.dev/kind: "Containerized" +spec: + definitionRef: + name: containerizeds.core.oam.dev + childResourceKinds: + - apiVersion: apps/v1 + kind: Deployment + - apiVersion: v1 + kind: Service + extension: + defaultTraits: + - scale + - route + - monitor + template: | + #Template: { + apiVersion: "core.oam.dev/v1alpha2" + kind: "Containerized" + metadata: name: backend-service + spec: { + replicas: containerized.replicas + podSpec: + containers: [{ + image: containerized.image + name: containerized.name + ports: [{ + containerPort: containerized.port + protocol: "TCP" + name: "default" + }] + }] + } + } + containerized: { + // +usage=specify replicas + // +short=r + replicas: *1 | int + name: string + // +usage=specify app image + // +short=i + image: string + // +usage=specify port for container + // +short=p + port: *6379 | int + } +` diff --git a/pkg/builtin/workloaddefinition/task.go b/pkg/builtin/workloaddefinition/task.go new file mode 100644 index 000000000..8e34dfa90 --- /dev/null +++ b/pkg/builtin/workloaddefinition/task.go @@ -0,0 +1,50 @@ +package workloaddefinition + +var Task = `apiVersion: v1 +kind: WorkloadDefinition +metadata: + name: task + annotations: + definition.oam.dev/apiVersion: "v1" + definition.oam.dev/kind: "Job" +spec: + definitionRef: + name: jobs + extension: + defaultTraits: + - monitor + - logging + template: | + #Template: { + apiVersion: "v1" + kind: "Job" + metadata: name: task + spec: { + parallelism: taskSpec.count + completions: taskSpec.count + template: + spec: + containers: [{ + image: taskSpec.image + name: taskSpec.name + ports: [{ + containerPort: taskSpec.port + protocol: "TCP" + name: "default" + }] + }] + } + } + taskSpec: { + // +usage=specify number of tasks to run in parallel + // +short=c + count: *1 | int + name: string + // +usage=specify app image + // +short=i + image: string + // +usage=specify port for container + // +short=p + port: *6379 | int + } +` diff --git a/pkg/builtin/workloaddefinition/webservice.go b/pkg/builtin/workloaddefinition/webservice.go new file mode 100644 index 000000000..b2ab1df63 --- /dev/null +++ b/pkg/builtin/workloaddefinition/webservice.go @@ -0,0 +1,56 @@ +package workloaddefinition + +var WebService = `apiVersion: standard.oam.dev/v1alpha2 +kind: WorkloadDefinition +metadata: + name: web-service + annotations: + definition.oam.dev/apiVersion: "standard.oam.dev/v1alpha2" + definition.oam.dev/kind: "Containerized" +spec: + definitionRef: + name: containerizeds.core.oam.dev + childResourceKinds: + - apiVersion: apps/v1 + kind: Deployment + - apiVersion: v1 + kind: Service + extension: + defaultTraits: + - scale + - monitor + - ingress + - dns + - tls + template: | + #Template: { + apiVersion: "core.oam.dev/v1alpha2" + kind: "Containerized" + metadata: name: backend-service + spec: { + replicas: containerized.replicas + podSpec: + containers: [{ + image: containerized.image + name: containerized.name + ports: [{ + containerPort: containerized.port + protocol: "TCP" + name: "default" + }] + }] + } + } + containerized: { + // +usage=specify replicas + // +short=r + replicas: *1 | int + name: string + // +usage=specify app image + // +short=i + image: string + // +usage=specify port for container + // +short=p + port: *6379 | int + } +`