-
Notifications
You must be signed in to change notification settings - Fork 1.8k
[WIP] odo NodeJS in a disconnected env. #31914
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 11 additions & 0 deletions
11
...ment/creating-and-deploying-devfile-components-to-the-disconnected-cluster.adoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[id="creating-and-deploying-devfile-components-to-the-disconnected-cluster"] | ||
= Creating and deploying devfile components to the disconnected cluster | ||
include::modules/developer-cli-odo-attributes.adoc[] | ||
include::modules/common-attributes.adoc[] | ||
:context: creating-and-deploying-a-component-to-the-disconnected-cluster | ||
|
||
toc::[] | ||
|
||
include::modules/developer-cli-odo-creating-a-nodejs-application-by-using-a-devfile-in-a-disconnected-cluster.adoc[leveloffset=+1] | ||
|
||
include::modules/developer-cli-odo-creating-a-java-application-by-using-a-devfile-in-a-disconnected-cluster.adoc[leveloffset=+1] |
193 changes: 193 additions & 0 deletions
193
...o-creating-a-java-application-by-using-a-devfile-in-a-disconnected-cluster.adoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,193 @@ | ||
// Module included in the following assemblies: | ||
// | ||
// * cli_reference/developer_cli_odo/ | ||
|
||
[id="developer-cli-odo-creating-a-java-application-by-using-a-devfile-in-a-disconnected-cluster_{context}"] | ||
|
||
= Creating a Java application by using a devfile in a disconnected cluster | ||
|
||
[WARNING] | ||
==== | ||
This procedure is using external dependencies such as `quay.io/eclipse/che-java11-maven:nightly` or an example application `springboot-ex` that are not maintained by Red Hat. These dependencies are not maintained with the documentation and their functionality cannot be guaranteed. | ||
==== | ||
|
||
.Prerequisites | ||
* You have created and logged into a disconnected cluster. | ||
* You have added `quay.io`, `registry.access.redhat.com`, `apache.org`, `quayio-production-s3.s3.amazonaws.com` URLs in your proxy configuration. | ||
|
||
.Procedure | ||
|
||
. Define your Java application in a devfile: | ||
+ | ||
.Example of a devfile | ||
[source,yaml] | ||
---- | ||
schemaVersion: 2.0.0 | ||
metadata: | ||
name: java-maven | ||
version: 1.1.0 | ||
starterProjects: | ||
- name: springbootproject | ||
git: | ||
remotes: | ||
origin: "https://github.com/odo-devfiles/springboot-ex.git" | ||
components: | ||
- name: tools | ||
container: | ||
image: quay.io/eclipse/che-java11-maven:nightly | ||
memoryLimit: 512Mi | ||
mountSources: true | ||
endpoints: | ||
- name: 'http-8080' | ||
targetPort: 8080 | ||
volumeMounts: | ||
- name: m2 | ||
path: /home/user/.m2 | ||
- name: m2 | ||
volume: {} | ||
commands: | ||
- id: mvn-package | ||
exec: | ||
component: tools | ||
commandLine: "mvn -Dmaven.repo.local=/home/user/.m2/repository -Dhttp.proxyHost=<proxy-host> -Dhttp.proxyPort=<proxy-port> -Dhttps.proxyHost=<proxy-host> -Dhttps.proxyPort=<proxy-port> package" | ||
group: | ||
kind: build | ||
isDefault: true | ||
- id: run | ||
exec: | ||
component: tools | ||
commandLine: "java -jar target/*.jar" | ||
group: | ||
kind: run | ||
isDefault: true | ||
- id: debug | ||
exec: | ||
component: tools | ||
commandLine: "java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=${DEBUG_PORT},suspend=n -jar target/*.jar" | ||
group: | ||
kind: debug | ||
isDefault: true | ||
---- | ||
|
||
. Create a Java application: | ||
+ | ||
[source,terminal] | ||
---- | ||
$ odo create java-maven --devfile <path-to-your-devfile> --starter | ||
---- | ||
+ | ||
.Example output | ||
[source,terminal] | ||
---- | ||
Validation | ||
✓ Checking devfile existence [87716ns] | ||
✓ Creating a devfile component from registry: DefaultDevfileRegistry [107247ns] | ||
✓ Validating devfile component [396971ns] | ||
|
||
Starter Project | ||
✓ Downloading starter project springbootproject from https://github.com/odo-devfiles/springboot-ex.git [2s] | ||
|
||
Please use `odo push` command to create the component with source deployed | ||
---- | ||
|
||
. Push the changes to the cluster: | ||
+ | ||
[source,terminal] | ||
---- | ||
$ odo push | ||
---- | ||
+ | ||
.Example output | ||
[source,terminal] | ||
---- | ||
I0224 14:43:18.802512 34741 util.go:727] HTTPGetRequest: https://raw.githubusercontent.com/openshift/odo/master/build/VERSION | ||
I0224 14:43:18.833631 34741 context.go:115] absolute devfile path: '/Users/pkumari/go/src/github.com/openshift/odo/testim/devfile.yaml' | ||
[...] | ||
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.2.1/plexus-utils-3.2.1.jar (262 kB at 813 kB/s) | ||
[INFO] Replacing main artifact with repackaged archive | ||
[INFO] ------------------------------------------------------------------------ | ||
[INFO] BUILD SUCCESS | ||
[INFO] ------------------------------------------------------------------------ | ||
[INFO] Total time: 19.638 s | ||
[INFO] Finished at: 2021-02-24T08:59:30Z | ||
[INFO] ------------------------------------------------------------------------ | ||
✓ Executing mvn-package command "mvn -Dmaven.repo.local=/home/user/.m2/repository -Dhttp.proxyHost=<proxy-host> -Dhttp.proxyPort=<proxy-port> -Dhttps.proxyHost=<proxy-host> -Dhttps.proxyPort=<proxy-port> package" [23s] | ||
• Executing run command "java -jar target/*.jar" ... | ||
I0224 14:29:30.557676 34426 exec.go:27] Executing command [/opt/odo/bin/supervisord ctl start devrun] for pod: java-maven-5b8f99fcdb-9dnk6 in container: tools | ||
devrun: started | ||
✓ Executing run command "java -jar target/*.jar" [3s] | ||
|
||
Pushing devfile component java-maven | ||
✓ Changes successfully pushed to component | ||
---- | ||
|
||
. Display the logs to verify that the application has started: | ||
+ | ||
[source,terminal] | ||
---- | ||
$ odo log | ||
---- | ||
+ | ||
.Example output | ||
[source,terminal] | ||
---- | ||
time="2021-02-24T08:58:58Z" level=info msg="create process:devrun" | ||
time="2021-02-24T08:58:58Z" level=info msg="create process:debugrun" | ||
time="2021-02-24T08:59:32Z" level=debug msg="no auth required" | ||
time="2021-02-24T08:59:32Z" level=debug msg="succeed to find process:devrun" | ||
time="2021-02-24T08:59:32Z" level=info msg="try to start program" program=devrun | ||
time="2021-02-24T08:59:32Z" level=info msg="success to start program" program=devrun | ||
ODO_COMMAND_RUN is java -jar target/*.jar | ||
Executing command java -jar target/*.jar | ||
[...] | ||
---- | ||
|
||
. Create storage for your application: | ||
+ | ||
[source,terminal] | ||
---- | ||
$ odo storage create storage-name --path /data --size 5Gi | ||
---- | ||
+ | ||
.Example output | ||
[source,terminal] | ||
---- | ||
✓ Added storage storage-name to java-maven | ||
|
||
Please use `odo push` command to make the storage accessible to the component | ||
---- | ||
|
||
. Push the changes to the cluster: | ||
+ | ||
[source,terminal] | ||
---- | ||
$ odo push | ||
---- | ||
+ | ||
.Output | ||
[source,terminal] | ||
---- | ||
✓ Waiting for component to start [310ms] | ||
|
||
Validation | ||
✓ Validating the devfile [100798ns] | ||
|
||
Creating Kubernetes resources for component java-maven | ||
✓ Waiting for component to start [30s] | ||
✓ Waiting for component to start [303ms] | ||
|
||
Applying URL changes | ||
✓ URLs are synced with the cluster, no changes are required. | ||
|
||
Syncing to component java-maven | ||
✓ Checking file changes for pushing [5ms] | ||
✓ Syncing files to the component [4s] | ||
|
||
Executing devfile commands for component java-maven | ||
✓ Waiting for component to start [526ms] | ||
✓ Executing mvn-package command "mvn -Dmaven.repo.local=/home/user/.m2/repository -Dhttp.proxyHost=<proxy-host> -Dhttp.proxyPort=<proxy-port> -Dhttps.proxyHost=<proxy-host> -Dhttps.proxyPort=<proxy-port> package" [10s] | ||
✓ Executing run command "java -jar target/*.jar" [3s] | ||
|
||
Pushing devfile component java-maven | ||
✓ Changes successfully pushed to component | ||
---- |
146 changes: 146 additions & 0 deletions
146
...creating-a-nodejs-application-by-using-a-devfile-in-a-disconnected-cluster.adoc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
// Module included in the following assemblies: | ||
// | ||
// * cli_reference/developer_cli_odo/ | ||
|
||
[id="developer-cli-odo-creating-a-nodejs-application-by-using-a-devfile-in-a-disconnected-cluster_{context}"] | ||
|
||
= Creating a NodeJS application by using a devfile in a disconnected cluster | ||
|
||
[WARNING] | ||
==== | ||
This procedure is using external dependencies such as `nodejs-ex.git` application that are not maintained by Red Hat. These dependencies are not maintained with the documentation and their functionality cannot be guaranteed. | ||
==== | ||
|
||
.Prerequisites | ||
* You have created and logged into a disconnected cluster. | ||
* You have added `raw.githubusercontent.com`, `registry.access.redhat.com`, and `registry.npmjs.org` URLs in your proxy. | ||
|
||
.Procedure | ||
|
||
. Define your NodeJS application in a devfile: | ||
+ | ||
.Example of a devfile | ||
[source,yaml] | ||
---- | ||
schemaVersion: 2.0.0 | ||
metadata: | ||
name: nodejs | ||
starterProjects: | ||
- name: nodejs-starter | ||
git: | ||
remotes: | ||
origin: "https://github.com/odo-devfiles/nodejs-ex.git" | ||
components: | ||
- name: runtime | ||
container: | ||
image: registry.access.redhat.com/ubi8/nodejs-12:1-36 | ||
memoryLimit: 1024Mi | ||
endpoints: | ||
- name: "3000/tcp" | ||
targetPort: 3000 | ||
env: | ||
- name: HTTP_PROXY | ||
value: http://<proxy-host>:<proxy-port> | ||
- name: HTTPS_PROXY | ||
value: http://<proxy-host>:<proxy-port> | ||
mountSources: true | ||
commands: | ||
- id: devbuild | ||
exec: | ||
component: runtime | ||
commandLine: npm install | ||
workingDir: ${PROJECTS_ROOT} | ||
group: | ||
kind: build | ||
isDefault: true | ||
- id: build | ||
exec: | ||
component: runtime | ||
commandLine: npm install | ||
workingDir: ${PROJECTS_ROOT} | ||
group: | ||
kind: build | ||
- id: devrun | ||
exec: | ||
component: runtime | ||
commandLine: npm start | ||
workingDir: ${PROJECTS_ROOT} | ||
group: | ||
kind: run | ||
isDefault: true | ||
- id: run | ||
exec: | ||
component: runtime | ||
commandLine: npm start | ||
workingDir: ${PROJECTS_ROOT} | ||
group: | ||
kind: run | ||
---- | ||
|
||
. Create the application and push the changes to the cluster: | ||
+ | ||
[source,terminal] | ||
---- | ||
$ odo create nodejs --devfile <path-to-your-devfile> --starter $$ odo push | ||
---- | ||
+ | ||
.Example output | ||
[source,terminal] | ||
---- | ||
[...] | ||
Pushing devfile component nodejs | ||
✓ Changes successfully pushed to component | ||
---- | ||
|
||
. Create a URL to access your application and push it to th cluster: | ||
yhontyk marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
+ | ||
[source,terminal] | ||
---- | ||
$ odo url create url1 --port 3000 --host example.com --ingress && odo push | ||
---- | ||
+ | ||
.Example output | ||
[source,terminal] | ||
---- | ||
Validation | ||
✓ Validating the devfile [145374ns] | ||
|
||
Creating Kubernetes resources for component nodejs | ||
✓ Waiting for component to start [14s] | ||
|
||
Applying URL changes | ||
✓ URL url1: http://url1.abcdr.com/ created | ||
|
||
Syncing to component nodejs | ||
✓ Checking file changes for pushing [2ms] | ||
✓ Syncing files to the component [3s] | ||
|
||
Executing devfile commands for component nodejs | ||
✓ Executing devbuild command "npm install" [4s] | ||
✓ Executing devrun command "npm start" [3s] | ||
|
||
Pushing devfile component nodejs | ||
✓ Changes successfully pushed to component | ||
---- | ||
|
||
. Add the storage to your application | ||
yhontyk marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
+ | ||
[source,terminal] | ||
---- | ||
$ odo storage create <storage-name> --path /data --size 5Gi | ||
---- | ||
+ | ||
.Example output | ||
[source,terminal] | ||
---- | ||
✓ Added storage abcde to nodejs | ||
|
||
Please use `odo push` command to make the storage accessible to the component | ||
---- | ||
|
||
. Push the changes to the cluster: | ||
+ | ||
[source,terminal] | ||
---- | ||
$ odo push | ||
---- |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.