Skip to main content
Version: Next

Built-in Component Type

This documentation will walk through all the built-in component types sorted alphabetically.

It was generated automatically by scripts, please don't update manually, last updated at 2023-07-28T09:33:26+08:00.

Cron-Task

Description

Describes cron jobs that run code or a script to completion.

Examples (cron-task)

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: cron-worker
spec:
components:
- name: mytask
type: cron-task
properties:
image: perl
count: 10
cmd: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
schedule: "*/1 * * * *"

Specification (cron-task)

NameDescriptionTypeRequiredDefault
labelsSpecify the labels in the workload.map[string]stringfalse
annotationsSpecify the annotations in the workload.map[string]stringfalse
scheduleSpecify the schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.stringtrue
startingDeadlineSecondsSpecify deadline in seconds for starting the job if it misses scheduled.intfalse
suspendSuspend subsequent executions.boolfalsefalse
concurrencyPolicySpecifies how to treat concurrent executions of a Job."Allow" or "Forbid" or "Replace"falseAllow
successfulJobsHistoryLimitThe number of successful finished jobs to retain.intfalse3
failedJobsHistoryLimitThe number of failed finished jobs to retain.intfalse1
countSpecify number of tasks to run in parallel.intfalse1
imageWhich image would you like to use for your service.stringtrue
imagePullPolicySpecify image pull policy for your service."Always" or "Never" or "IfNotPresent"false
imagePullSecretsSpecify image pull secrets for your service.[]stringfalse
restartDefine the job restart policy, the value can only be Never or OnFailure. By default, it's Never.stringfalseNever
cmdCommands to run in the container.[]stringfalse
envDefine arguments by using environment variables.[]envfalse
cpuNumber of CPU units for the service, like 0.5 (0.5 CPU core), 1 (1 CPU core).stringfalse
memorySpecifies the attributes of the memory resource required for the container.stringfalse
volumesDeclare volumes and volumeMounts.[]volumesfalse
hostAliasesAn optional list of hosts and IPs that will be injected into the pod's hosts file.[]hostAliasesfalse
ttlSecondsAfterFinishedLimits the lifetime of a Job that has finished.intfalse
activeDeadlineSecondsThe duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it.intfalse
backoffLimitThe number of retries before marking this job failed.intfalse6
livenessProbeInstructions for assessing whether the container is alive.livenessProbefalse
readinessProbeInstructions for assessing whether the container is in a suitable state to serve traffic.readinessProbefalse

env (cron-task)

NameDescriptionTypeRequiredDefault
nameEnvironment variable name.stringtrue
valueThe value of the environment variable.stringfalse
valueFromSpecifies a source the value of this var should come from.valueFromfalse
valueFrom (cron-task)
NameDescriptionTypeRequiredDefault
secretKeyRefSelects a key of a secret in the pod's namespace.secretKeyReffalse
configMapKeyRefSelects a key of a config map in the pod's namespace.configMapKeyReffalse
secretKeyRef (cron-task)
NameDescriptionTypeRequiredDefault
nameThe name of the secret in the pod's namespace to select from.stringtrue
keyThe key of the secret to select from. Must be a valid secret key.stringtrue
configMapKeyRef (cron-task)
NameDescriptionTypeRequiredDefault
nameThe name of the config map in the pod's namespace to select from.stringtrue
keyThe key of the config map to select from. Must be a valid secret key.stringtrue

volumes (cron-task)

NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
medium"" or "Memory"falseempty
typeSpecify volume type, options: "pvc","configMap","secret","emptyDir", default to emptyDir."emptyDir" or "pvc" or "configMap" or "secret"falseemptyDir

hostAliases (cron-task)

NameDescriptionTypeRequiredDefault
ipstringtrue
hostnames[]stringtrue

livenessProbe (cron-task)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (cron-task)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (cron-task)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
httpHeaders[]httpHeadersfalse
httpHeaders (cron-task)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (cron-task)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

readinessProbe (cron-task)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (cron-task)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (cron-task)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
httpHeaders[]httpHeadersfalse
httpHeaders (cron-task)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (cron-task)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

Daemon

Description

Describes daemonset services in Kubernetes.

Underlying Kubernetes Resources (daemon)

  • daemonsets.apps

Examples (daemon)

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: addon-node-exporter
namespace: vela-system
spec:
components:
- name: node-exporter
type: daemon
properties:
image: prom/node-exporter
imagePullPolicy: IfNotPresent
volumeMounts:
hostPath:
- mountPath: /host/sys
mountPropagation: HostToContainer
name: sys
path: /sys
readOnly: true
- mountPath: /host/root
mountPropagation: HostToContainer
name: root
path: /
readOnly: true
traits:
- properties:
args:
- --path.sysfs=/host/sys
- --path.rootfs=/host/root
- --no-collector.wifi
- --no-collector.hwmon
- --collector.filesystem.ignored-mount-points=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+)($|/)
- --collector.netclass.ignored-devices=^(veth.*)$
type: command
- properties:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "8080"
prometheus.io/scrape: "true"
port:
- 9100
type: expose
- properties:
cpu: 0.1
memory: 250Mi
type: resource

Specification (daemon)

NameDescriptionTypeRequiredDefault
labelsSpecify the labels in the workload.map[string]stringfalse
annotationsSpecify the annotations in the workload.map[string]stringfalse
imageWhich image would you like to use for your service.stringtrue
imagePullPolicySpecify image pull policy for your service."Always" or "Never" or "IfNotPresent"false
imagePullSecretsSpecify image pull secrets for your service.[]stringfalse
portsWhich ports do you want customer traffic sent to, defaults to 80.[]portsfalse
cmdCommands to run in the container.[]stringfalse
envDefine arguments by using environment variables.[]envfalse
cpuNumber of CPU units for the service, like 0.5 (0.5 CPU core), 1 (1 CPU core).stringfalse
memorySpecifies the attributes of the memory resource required for the container.stringfalse
volumeMountsvolumeMountsfalse
volumesDeprecated field, use volumeMounts instead.[]volumesfalse
livenessProbeInstructions for assessing whether the container is alive.livenessProbefalse
readinessProbeInstructions for assessing whether the container is in a suitable state to serve traffic.readinessProbefalse
hostAliasesSpecify the hostAliases to add.[]hostAliasesfalse

ports (daemon)

NameDescriptionTypeRequiredDefault
portNumber of port to expose on the pod's IP address.inttrue
nameName of the port.stringfalse
protocolProtocol for port. Must be UDP, TCP, or SCTP."TCP" or "UDP" or "SCTP"falseTCP
exposeSpecify if the port should be exposed.boolfalsefalse

env (daemon)

NameDescriptionTypeRequiredDefault
nameEnvironment variable name.stringtrue
valueThe value of the environment variable.stringfalse
valueFromSpecifies a source the value of this var should come from.valueFromfalse
valueFrom (daemon)
NameDescriptionTypeRequiredDefault
secretKeyRefSelects a key of a secret in the pod's namespace.secretKeyReffalse
configMapKeyRefSelects a key of a config map in the pod's namespace.configMapKeyReffalse
secretKeyRef (daemon)
NameDescriptionTypeRequiredDefault
nameThe name of the secret in the pod's namespace to select from.stringtrue
keyThe key of the secret to select from. Must be a valid secret key.stringtrue
configMapKeyRef (daemon)
NameDescriptionTypeRequiredDefault
nameThe name of the config map in the pod's namespace to select from.stringtrue
keyThe key of the config map to select from. Must be a valid secret key.stringtrue

volumeMounts (daemon)

NameDescriptionTypeRequiredDefault
pvcMount PVC type volume.[]pvcfalse
configMapMount ConfigMap type volume.[]configMapfalse
secretMount Secret type volume.[]secretfalse
emptyDirMount EmptyDir type volume.[]emptyDirfalse
hostPathMount HostPath type volume.[]hostPathfalse
pvc (daemon)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
claimNameThe name of the PVC.stringtrue
configMap (daemon)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
defaultModeintfalse420
cmNamestringtrue
items[]itemsfalse
items (daemon)
NameDescriptionTypeRequiredDefault
keystringtrue
pathstringtrue
modeintfalse511
secret (daemon)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
defaultModeintfalse420
secretNamestringtrue
items[]itemsfalse
items (daemon)
NameDescriptionTypeRequiredDefault
keystringtrue
pathstringtrue
modeintfalse511
emptyDir (daemon)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
medium"" or "Memory"falseempty
hostPath (daemon)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
mountPropagation"None" or "HostToContainer" or "Bidirectional"false
pathstringtrue
readOnlyboolfalse

volumes (daemon)

NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
medium"" or "Memory"falseempty
typeSpecify volume type, options: "pvc","configMap","secret","emptyDir", default to emptyDir."emptyDir" or "pvc" or "configMap" or "secret"falseemptyDir

livenessProbe (daemon)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (daemon)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (daemon)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
hoststringfalse
schemestringfalseHTTP
httpHeaders[]httpHeadersfalse
httpHeaders (daemon)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (daemon)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

readinessProbe (daemon)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (daemon)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (daemon)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
hoststringfalse
schemestringfalseHTTP
httpHeaders[]httpHeadersfalse
httpHeaders (daemon)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (daemon)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

hostAliases (daemon)

NameDescriptionTypeRequiredDefault
ipstringtrue
hostnames[]stringtrue

K8s-Objects

Description

K8s-objects allow users to specify raw K8s objects in properties.

Examples (k8s-objects)

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: app-raw
spec:
components:
- name: myjob
type: k8s-objects
properties:
objects:
- apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4

Specification (k8s-objects)

NAMEDESCRIPTIONTYPEREQUIREDDEFAULT
objectsA slice of Kubernetes resource manifests[][Kubernetes-Objects](https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/)true

Task

Description

Describes jobs that run code or a script to completion.

Underlying Kubernetes Resources (task)

  • jobs.batch

Examples (task)

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: app-worker
spec:
components:
- name: mytask
type: task
properties:
image: perl
count: 10
cmd: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]

Specification (task)

NameDescriptionTypeRequiredDefault
labelsSpecify the labels in the workload.map[string]stringfalse
annotationsSpecify the annotations in the workload.map[string]stringfalse
countSpecify number of tasks to run in parallel.intfalse1
imageWhich image would you like to use for your service.stringtrue
imagePullPolicySpecify image pull policy for your service."Always" or "Never" or "IfNotPresent"false
imagePullSecretsSpecify image pull secrets for your service.[]stringfalse
restartDefine the job restart policy, the value can only be Never or OnFailure. By default, it's Never.stringfalseNever
cmdCommands to run in the container.[]stringfalse
envDefine arguments by using environment variables.[]envfalse
cpuNumber of CPU units for the service, like 0.5 (0.5 CPU core), 1 (1 CPU core).stringfalse
memorySpecifies the attributes of the memory resource required for the container.stringfalse
volumesDeclare volumes and volumeMounts.[]volumesfalse
livenessProbeInstructions for assessing whether the container is alive.livenessProbefalse
readinessProbeInstructions for assessing whether the container is in a suitable state to serve traffic.readinessProbefalse

env (task)

NameDescriptionTypeRequiredDefault
nameEnvironment variable name.stringtrue
valueThe value of the environment variable.stringfalse
valueFromSpecifies a source the value of this var should come from.valueFromfalse
valueFrom (task)
NameDescriptionTypeRequiredDefault
secretKeyRefSelects a key of a secret in the pod's namespace.secretKeyReffalse
configMapKeyRefSelects a key of a config map in the pod's namespace.configMapKeyReffalse
secretKeyRef (task)
NameDescriptionTypeRequiredDefault
nameThe name of the secret in the pod's namespace to select from.stringtrue
keyThe key of the secret to select from. Must be a valid secret key.stringtrue
configMapKeyRef (task)
NameDescriptionTypeRequiredDefault
nameThe name of the config map in the pod's namespace to select from.stringtrue
keyThe key of the config map to select from. Must be a valid secret key.stringtrue

volumes (task)

NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
medium"" or "Memory"falseempty
typeSpecify volume type, options: "pvc","configMap","secret","emptyDir", default to emptyDir."emptyDir" or "pvc" or "configMap" or "secret"falseemptyDir

livenessProbe (task)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (task)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (task)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
httpHeaders[]httpHeadersfalse
httpHeaders (task)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (task)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

readinessProbe (task)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (task)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (task)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
httpHeaders[]httpHeadersfalse
httpHeaders (task)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (task)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

Webservice

Description

Describes long-running, scalable, containerized services that have a stable network endpoint to receive external network traffic from customers.

Underlying Kubernetes Resources (webservice)

  • deployments.apps

Examples (webservice)

apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: website
spec:
components:
- name: frontend
type: webservice
properties:
image: oamdev/testapp:v1
cmd: ["node", "server.js"]
ports:
- port: 8080
expose: true
cpu: "0.1"
env:
- name: FOO
value: bar
- name: FOO
valueFrom:
secretKeyRef:
name: bar
key: bar

Specification (webservice)

NameDescriptionTypeRequiredDefault
labelsSpecify the labels in the workload.map[string]stringfalse
annotationsSpecify the annotations in the workload.map[string]stringfalse
imageWhich image would you like to use for your service.stringtrue
imagePullPolicySpecify image pull policy for your service."Always" or "Never" or "IfNotPresent"false
imagePullSecretsSpecify image pull secrets for your service.[]stringfalse
portsWhich ports do you want customer traffic sent to, defaults to 80.[]portsfalse
cmdCommands to run in the container.[]stringfalse
argsArguments to the entrypoint.[]stringfalse
envDefine arguments by using environment variables.[]envfalse
cpuNumber of CPU units for the service, like 0.5 (0.5 CPU core), 1 (1 CPU core).stringfalse
memorySpecifies the attributes of the memory resource required for the container.stringfalse
volumeMountsvolumeMountsfalse
volumesDeprecated field, use volumeMounts instead.[]volumesfalse
livenessProbeInstructions for assessing whether the container is alive.livenessProbefalse
readinessProbeInstructions for assessing whether the container is in a suitable state to serve traffic.readinessProbefalse
hostAliasesSpecify the hostAliases to add.[]hostAliasesfalse

ports (webservice)

NameDescriptionTypeRequiredDefault
portNumber of port to expose on the pod's IP address.inttrue
nameName of the port.stringfalse
protocolProtocol for port. Must be UDP, TCP, or SCTP."TCP" or "UDP" or "SCTP"falseTCP
exposeSpecify if the port should be exposed.boolfalsefalse
nodePortexposed node port. Only Valid when exposeType is NodePort.intfalse

env (webservice)

NameDescriptionTypeRequiredDefault
nameEnvironment variable name.stringtrue
valueThe value of the environment variable.stringfalse
valueFromSpecifies a source the value of this var should come from.valueFromfalse
valueFrom (webservice)
NameDescriptionTypeRequiredDefault
secretKeyRefSelects a key of a secret in the pod's namespace.secretKeyReffalse
configMapKeyRefSelects a key of a config map in the pod's namespace.configMapKeyReffalse
secretKeyRef (webservice)
NameDescriptionTypeRequiredDefault
nameThe name of the secret in the pod's namespace to select from.stringtrue
keyThe key of the secret to select from. Must be a valid secret key.stringtrue
configMapKeyRef (webservice)
NameDescriptionTypeRequiredDefault
nameThe name of the config map in the pod's namespace to select from.stringtrue
keyThe key of the config map to select from. Must be a valid secret key.stringtrue

volumeMounts (webservice)

NameDescriptionTypeRequiredDefault
pvcMount PVC type volume.[]pvcfalse
configMapMount ConfigMap type volume.[]configMapfalse
secretMount Secret type volume.[]secretfalse
emptyDirMount EmptyDir type volume.[]emptyDirfalse
hostPathMount HostPath type volume.[]hostPathfalse
pvc (webservice)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
subPathstringfalse
claimNameThe name of the PVC.stringtrue
configMap (webservice)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
subPathstringfalse
defaultModeintfalse420
cmNamestringtrue
items[]itemsfalse
items (webservice)
NameDescriptionTypeRequiredDefault
keystringtrue
pathstringtrue
modeintfalse511
secret (webservice)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
subPathstringfalse
defaultModeintfalse420
secretNamestringtrue
items[]itemsfalse
items (webservice)
NameDescriptionTypeRequiredDefault
keystringtrue
pathstringtrue
modeintfalse511
emptyDir (webservice)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
subPathstringfalse
medium"" or "Memory"falseempty
hostPath (webservice)
NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
subPathstringfalse
pathstringtrue

volumes (webservice)

NameDescriptionTypeRequiredDefault
namestringtrue
mountPathstringtrue
medium"" or "Memory"falseempty
typeSpecify volume type, options: "pvc","configMap","secret","emptyDir", default to emptyDir."emptyDir" or "pvc" or "configMap" or "secret"falseemptyDir

livenessProbe (webservice)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (webservice)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (webservice)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
hoststringfalse
schemestringfalseHTTP
httpHeaders[]httpHeadersfalse
httpHeaders (webservice)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (webservice)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

readinessProbe (webservice)

NameDescriptionTypeRequiredDefault
execInstructions for assessing container health by executing a command. Either this attribute or the httpGet attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the httpGet attribute and the tcpSocket attribute.execfalse
httpGetInstructions for assessing container health by executing an HTTP GET request. Either this attribute or the exec attribute or the tcpSocket attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the tcpSocket attribute.httpGetfalse
tcpSocketInstructions for assessing container health by probing a TCP socket. Either this attribute or the exec attribute or the httpGet attribute MUST be specified. This attribute is mutually exclusive with both the exec attribute and the httpGet attribute.tcpSocketfalse
initialDelaySecondsNumber of seconds after the container is started before the first probe is initiated.intfalse0
periodSecondsHow often, in seconds, to execute the probe.intfalse10
timeoutSecondsNumber of seconds after which the probe times out.intfalse1
successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.intfalse1
failureThresholdNumber of consecutive failures required to determine the container is not alive (liveness probe) or not ready (readiness probe).intfalse3
exec (webservice)
NameDescriptionTypeRequiredDefault
commandA command to be executed inside the container to assess its health. Each space delimited token of the command is a separate array element. Commands exiting 0 are considered to be successful probes, whilst all other exit codes are considered failures.[]stringtrue
httpGet (webservice)
NameDescriptionTypeRequiredDefault
pathThe endpoint, relative to the port, to which the HTTP GET request should be directed.stringtrue
portThe TCP socket within the container to which the HTTP GET request should be directed.inttrue
hoststringfalse
schemestringfalseHTTP
httpHeaders[]httpHeadersfalse
httpHeaders (webservice)
NameDescriptionTypeRequiredDefault
namestringtrue
valuestringtrue
tcpSocket (webservice)
NameDescriptionTypeRequiredDefault
portThe TCP socket within the container that should be probed to assess container health.inttrue

hostAliases (webservice)

NameDescriptionTypeRequiredDefault
ipstringtrue
hostnames[]stringtrue