Devfile | ++ | Kubernetes Deployment | +
+ +```yaml +metadata: + # highlight-start + name: my-sample-java-springboot + projectType: spring + # highlight-end + language: java +components: +- name: tools + container: + annotation: + deployment: + # highlight-start + example.com/my-annotation: value-1 + # highlight-end +``` + | +=> | ++ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app + annotations: + # highlight-start + odo.dev/project-type: spring + example.com/my-annotation: value-1 + # highlight-end +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + annotations: + # highlight-start + odo.dev/project-type: spring + example.com/my-annotation: value-1 + # highlight-end +``` + | +
Devfile | ++ | Kubernetes Deployment | +
+ +```yaml +metadata: + # highlight-start + name: my-sample-java-springboot + projectType: spring + # highlight-end + language: java +components: +- name: tools + container: + ... +``` + | +=> | ++ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app + labels: + # highlight-start + app: app + app.kubernetes.io/instance: my-sample-java-springboot + app.kubernetes.io/managed-by: odo + app.kubernetes.io/managed-by-version: v3.0.0-rc1 + app.kubernetes.io/part-of: app + app.openshift.io/runtime: spring + component: my-sample-java-springboot + odo.dev/mode: Dev + # highlight-end +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + labels: + # highlight-start + app: app + app.kubernetes.io/instance: my-sample-java-springboot + app.kubernetes.io/managed-by: odo + app.kubernetes.io/managed-by-version: v3.0.0-rc1 + app.kubernetes.io/part-of: app + app.openshift.io/runtime: spring + component: my-sample-java-springboot + odo.dev/mode: Dev + # highlight-end + selector: + matchLabels: + component: my-sample-java-springboot +``` + | +
Devfile | ++ | Kubernetes Deployment | +
+ +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot +components: +- name: tools + container: + image: quay.io/eclipse/che-java11-maven + env: + # highlight-start + - name: DEBUG_PORT + value: "5858" + # highlight-end +``` + | +=> | ++ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + containers: + - name: tools + env: + # highlight-start + - name: DEBUG_PORT + value: "5858" + - name: PROJECTS_ROOT + value: /projects + - name: PROJECT_SOURCE + value: /projects + # highlight-end + image: quay.io/eclipse/che-java11-maven + imagePullPolicy: Always +``` + | +
Devfile | ++ | Kubernetes Deployment | +
+ +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot + projectType: spring + language: java +components: +- name: tools + container: + image: quay.io/eclipse/che-java11-maven + # no command or args fields set +``` + | +=> | ++ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + containers: + - name: tools + # highlight-start + command: ['tail'] + args: ['-f', '/dev/null'] + # highlight-end + image: quay.io/eclipse/che-java11-maven + imagePullPolicy: Always +``` + | +
+ +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot +components: +- name: tools + container: + image: quay.io/eclipse/che-java11-maven + # highlight-start + command: ['/bin/my-entrypoint.sh'] + args: ['arg1', 'arg2'] + # highlight-end +``` + | +=> | ++ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + containers: + - name: tools + # highlight-start + command: ['/bin/my-entrypoint.sh'] + args: ['arg1', 'arg2'] + # highlight-end + image: quay.io/eclipse/che-java11-maven + imagePullPolicy: Always +``` + | +
Devfile | ++ | Kubernetes Deployment | +
+ +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot +components: +- name: tools + container: + image: quay.io/eclipse/che-java11-maven + # highlight-start + cpuLimit: 500m + cpuRequest: 250m + memoryLimit: 512Mi + memoryRequest: 256Mi + # highlight-end +``` + | +=> | ++ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + containers: + - name: tools + # highlight-start + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 250m + memory: 256Mi + # highlight-end + image: quay.io/eclipse/che-java11-maven + imagePullPolicy: Always +``` + | +
Devfile | ++ | Kubernetes Deployment | +
+ +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot +components: +- name: tools + container: + image: quay.io/eclipse/che-java11-maven + # highlight-start + endpoints: + - name: http-springboot + targetPort: 8080 + - name: my-custom-ep + targetPort: 3000 + protocol: http + exposure: internal + - name: debug + targetPort: 5858 + exposure: none + # highlight-end +``` + | +=> | ++ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + containers: + - name: tools + # highlight-start + ports: + - containerPort: 8080 + name: http-springboot + protocol: TCP + - containerPort: 3000 + name: my-custom-ep + protocol: TCP + - containerPort: 5858 + name: debug + protocol: TCP + # highlight-end + image: quay.io/eclipse/che-java11-maven + imagePullPolicy: Always +``` + | +
Devfile | ++ | Kubernetes Deployment | +
+ +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot +components: +- name: tools + container: + image: quay.io/eclipse/che-java11-maven + # highlight-next-line + mountSources: true +``` + | +=> | ++ +* With `Ephemeral` Setting set to `false` (default) + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + volumes: + # highlight-start + - name: odo-shared-data + emptyDir: {} + - name: odo-projects + persistentVolumeClaim: + # odo also creates and manages this PVC + claimName: odo-projects-my-sample-java-springboot-app + # highlight-end + containers: + - name: tools + # highlight-start + volumeMounts: + - name: odo-shared-data + mountPath: /opt/odo/ + - name: odo-projects + mountPath: /projects + # highlight-end +``` + +--- + +* With `Ephemeral` Setting set to `true` + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + volumes: + # highlight-start + - name: odo-shared-data + emptyDir: {} + - name: odo-projects + emptyDir: {} + # highlight-end + containers: + - name: tools + # highlight-start + volumeMounts: + - name: odo-shared-data + mountPath: /opt/odo/ + - name: odo-projects + mountPath: /projects + # highlight-end +``` + + | +
+ +* With a `volume` component + +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot +components: +- name: tools + container: + image: quay.io/eclipse/che-java11-maven + # highlight-start + mountSources: true + volumeMounts: + - name: m2 + path: /home/user/.m2 + # highlight-end +``` + | +=> | ++ +* With `Ephemeral` Setting set to `false` (default) + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + volumes: + # highlight-start + - name: odo-shared-data + emptyDir: {} + - name: odo-projects + persistentVolumeClaim: + # odo also creates and manages this PVC + claimName: odo-projects-my-sample-java-springboot-app + - name: m2-my-sample-java-springboot-app-vol + persistentVolumeClaim: + # odo also creates and manages this PVC + claimName: m2-my-sample-java-springboot-app + # highlight-end + containers: + - name: tools + # highlight-start + volumeMounts: + - name: odo-shared-data + mountPath: /opt/odo/ + - name: odo-projects + mountPath: /projects + - name: m2-my-sample-java-springboot-app-vol + mountPath: /home/user/.m2 + # highlight-end +``` + +--- + +* With `Ephemeral` Setting set to `true` + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + template: + metadata: + # highlight-next-line + name: my-sample-java-springboot-app + spec: + volumes: + # highlight-start + - name: odo-shared-data + emptyDir: {} + - name: odo-projects + emptyDir: {} + - name: m2-my-sample-java-springboot-app-vol + persistentVolumeClaim: + # odo also creates and manages this PVC + claimName: m2-my-sample-java-springboot-app + # highlight-end + containers: + - name: tools + # highlight-start + volumeMounts: + - name: odo-shared-data + mountPath: /opt/odo/ + - name: odo-projects + mountPath: /projects + - name: m2-my-sample-java-springboot-app-vol + mountPath: /home/user/.m2 + # highlight-end +``` + + | +
Devfile | ++ | Kubernetes Service | +
+ +```yaml +metadata: + # highlight-start + name: my-sample-java-springboot + projectType: spring + # highlight-end + language: java +components: +- name: tools + container: + annotation: + service: + # highlight-start + example.com/my-svc-annotation: value-1 + # highlight-end +``` + | +=> | ++ +```yaml +apiVersion: v1 +kind: Service +metadata: + # highlight-next-line + name: my-sample-java-springboot-app + annotations: + # highlight-start + service.binding/backend_ip: path={.spec.clusterIP} + service.binding/backend_port: path={.spec.ports},elementType=sliceOfMaps,sourceKey=name,sourceValue=port + example.com/my-svc-annotation: value-1 + # highlight-end +spec: + type: ClusterIP + selector: + # highlight-next-line + component: my-sample-java-springboot-app +``` + | +
Devfile | ++ | Kubernetes Service | +
+ +```yaml +metadata: + # highlight-start + name: my-sample-java-springboot + projectType: spring + # highlight-end + language: java +components: +- name: tools + container: + ... +``` + | +=> | ++ +```yaml +apiVersion: v1 +kind: Service +metadata: + # highlight-next-line + name: my-sample-java-springboot-app + labels: + # highlight-start + app: app + app.kubernetes.io/instance: my-sample-java-springboot + app.kubernetes.io/managed-by: odo + app.kubernetes.io/managed-by-version: v3.0.0-rc1 + app.kubernetes.io/part-of: app + app.openshift.io/runtime: spring + component: my-sample-java-springboot + odo.dev/mode: Dev + # highlight-end +spec: + type: ClusterIP + selector: + # highlight-next-line + component: my-sample-java-springboot-app +``` + | +
Devfile | ++ | Kubernetes Service | +
+ +```yaml +metadata: + # highlight-next-line + name: my-sample-java-springboot +components: + - id: my-container1 + container: + endpoints: + # highlight-start + - name: http-springboot + targetPort: 8080 + - name: my-custom-ep + targetPort: 3000 + exposure: internal + - name: debug + targetPort: 5005 + exposure: none + # highlight-end + - id: my-container2 + container: + endpoints: + # highlight-start + - name: another-ep + targetPort: 9090 + # highlight-end +``` + | +=> | ++ +```yaml +apiVersion: v1 +kind: Service +metadata: + # highlight-next-line + name: my-sample-java-springboot-app +spec: + type: ClusterIP + ports: + # highlight-start + - name: http-springboot + port: 8080 + protocol: TCP + targetPort: 8080 + - name: my-custom-ep + port: 3000 + protocol: TCP + targetPort: 3000 + - name: another-ep + port: 9090 + protocol: TCP + targetPort: 3000 + # highlight-end +``` + + | +
Deployment | +Service | +
+ +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + example.com/my-deploy-annotation-echo1: my-deploy-annotation-val1 + example.com/my-deploy-annotation1: my-deploy-annotation-val1 + odo.dev/project-type: spring + labels: + app: app + app.kubernetes.io/instance: my-sample-java-springboot + app.kubernetes.io/managed-by: odo + app.kubernetes.io/managed-by-version: v3.0.0-rc1 + app.kubernetes.io/part-of: app + app.openshift.io/runtime: spring + component: my-sample-java-springboot + odo.dev/mode: Dev + name: my-sample-java-springboot-app + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + component: my-sample-java-springboot + strategy: + type: Recreate + template: + metadata: + annotations: + example.com/my-deploy-annotation-echo1: my-deploy-annotation-val1 + example.com/my-deploy-annotation1: my-deploy-annotation-val1 + odo.dev/project-type: spring + labels: + app: app + app.kubernetes.io/instance: my-sample-java-springboot + app.kubernetes.io/managed-by: odo + app.kubernetes.io/managed-by-version: v3.0.0-rc1 + app.kubernetes.io/part-of: app + app.openshift.io/runtime: spring + component: my-sample-java-springboot + odo.dev/mode: Dev + name: my-sample-java-springboot-app + namespace: default + spec: + containers: + - args: + - -f + - /dev/null + command: + - tail + env: + - name: DEBUG_PORT + value: "5858" + - name: PROJECTS_ROOT + value: /projects + - name: PROJECT_SOURCE + value: /projects + image: quay.io/eclipse/che-java11-maven:next + imagePullPolicy: Always + name: tools + ports: + - containerPort: 8080 + name: http-springboot + protocol: TCP + - containerPort: 5858 + name: debug + protocol: TCP + resources: + limits: + memory: 768Mi + volumeMounts: + - mountPath: /projects + name: odo-projects + - mountPath: /opt/odo/ + name: odo-shared-data + - mountPath: /home/user/.m2 + name: m2-my-sample-java-springboot-app-vol + - args: + - -f + - /dev/null + command: + - tail + env: + - name: MY_ENV_VAR + value: some value + image: alpine:latest + imagePullPolicy: Always + name: echo-container + ports: + - containerPort: 18080 + name: echo-ep1 + protocol: TCP + resources: {} + volumeMounts: + - mountPath: /opt/odo/ + name: odo-shared-data + restartPolicy: Always + securityContext: {} + volumes: + - name: m2-my-sample-java-springboot-app-vol + persistentVolumeClaim: + claimName: m2-my-sample-java-springboot-app + - name: odo-projects + persistentVolumeClaim: + claimName: odo-projects-my-sample-java-springboot-app + - emptyDir: {} + name: odo-shared-data + +``` + | ++ +```yaml +apiVersion: v1 +kind: Service +metadata: + annotations: + example.com/my-svc-annotation-echo1: my-svc-annotation-val1 + example.com/my-svc-annotation1: my-svc-annotation-val1 + service.binding/backend_ip: path={.spec.clusterIP} + service.binding/backend_port: path={.spec.ports},elementType=sliceOfMaps,sourceKey=name,sourceValue=port + labels: + app: app + app.kubernetes.io/instance: my-sample-java-springboot + app.kubernetes.io/managed-by: odo + app.kubernetes.io/managed-by-version: v3.0.0-rc1 + app.kubernetes.io/part-of: app + app.openshift.io/runtime: spring + component: my-sample-java-springboot + odo.dev/mode: Dev + namespace: default + name: my-sample-java-springboot-app + ownerReferences: + - apiVersion: apps/v1 + blockOwnerDeletion: true + kind: Deployment + name: my-sample-java-springboot-app +spec: + ports: + - name: http-springboot + port: 8080 + protocol: TCP + targetPort: 8080 + - name: echo-ep1 + port: 18080 + protocol: TCP + targetPort: 18080 + selector: + component: my-sample-java-springboot + sessionAffinity: None + type: ClusterIP +``` + + | +