mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 21:46:22 +01:00
69 lines
2.2 KiB
Plaintext
69 lines
2.2 KiB
Plaintext
:_mod-docs-content-type: REFERENCE
|
|
[id="odo-deploy_{context}"]
|
|
= odo deploy
|
|
|
|
|
|
`odo` can be used to deploy components in a manner similar to how they would be deployed using a CI/CD system.
|
|
First, `odo` builds the container images, and then it deploys the Kubernetes resources required to deploy the components.
|
|
|
|
When running the command `odo deploy`, `odo` searches for the default command of kind `deploy` in the devfile, and executes this command.
|
|
The kind `deploy` is supported by the devfile format starting from version 2.2.0.
|
|
|
|
The `deploy` command is typically a _composite_ command, composed of several _apply_ commands:
|
|
|
|
* A command referencing an `image` component that, when applied, will build the image of the container to deploy, and then push it to its registry.
|
|
* A command referencing a link:https://devfile.io/docs/devfile/2.2.0/user-guide/adding-kubernetes-component-to-a-devfile.html[Kubernetes component] that, when applied, will create a Kubernetes resource in the cluster.
|
|
|
|
With the following example `devfile.yaml` file, a container image is built using the `Dockerfile` present in the directory.
|
|
The image is pushed to its registry and then a Kubernetes Deployment resource is created in the cluster, using this freshly built image.
|
|
|
|
[source,terminal]
|
|
----
|
|
schemaVersion: 2.2.0
|
|
[...]
|
|
variables:
|
|
CONTAINER_IMAGE: quay.io/phmartin/myimage
|
|
commands:
|
|
- id: build-image
|
|
apply:
|
|
component: outerloop-build
|
|
- id: deployk8s
|
|
apply:
|
|
component: outerloop-deploy
|
|
- id: deploy
|
|
composite:
|
|
commands:
|
|
- build-image
|
|
- deployk8s
|
|
group:
|
|
kind: deploy
|
|
isDefault: true
|
|
components:
|
|
- name: outerloop-build
|
|
image:
|
|
imageName: "{{CONTAINER_IMAGE}}"
|
|
dockerfile:
|
|
uri: ./Dockerfile
|
|
buildContext: ${PROJECTS_ROOT}
|
|
- name: outerloop-deploy
|
|
kubernetes:
|
|
inlined: |
|
|
kind: Deployment
|
|
apiVersion: apps/v1
|
|
metadata:
|
|
name: my-component
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: node-app
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: node-app
|
|
spec:
|
|
containers:
|
|
- name: main
|
|
image: {{CONTAINER_IMAGE}}
|
|
----
|