Skip to content
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

Implement odo dev --no-commands #6855

Merged

Conversation

rm3l
Copy link
Member

@rm3l rm3l commented May 31, 2023

What type of PR is this:
/kind feature
/area dev

What does this PR do / why we need it:
This adds a new --no-commands flag to the dev subcommand. When this flag is set, no build, run or debug commands are executed. More details in https://deploy-preview-6855--odo-docusaurus-preview.netlify.app/docs/command-reference/dev#running-with-no-commands
This is useful in conjunction with the odo run command.

This PR also changes the behavior of odo dev when the Devfile has no (default or single non-default) build, run or debug commands defined. For more consistency, instead of erroring out at CLI validation time, the odo dev session starts and just prints a warning in this case. For consistency (e.g., when the build command fails), it will just wait for new input and retrigger the inner loop logic.

Which issue(s) this PR fixes:
Fixes #6569

PR acceptance criteria:

How to test changes / Special notes to the reviewer:
It should work the same way regardless of the target platform, e.g.:

$ odo dev --no-commands
  __
 /  \__     Developing using the "my-go" Devfile
 \__/  \    Namespace: default
 /  \__/    odo version: v3.11.0
 \__/

 ⚠  You are using "default" namespace, odo may not work as expected in the default namespace.
 ⚠  You may set a new namespace by running `odo create namespace <name>`, or set an existing one by running `odo set namespace <name>`

↪ Running on the cluster in Dev mode
 •  Waiting for Kubernetes resources  ...
 ⚠  Pod is Pending
 ✓  Pod is Running
 ✓  Syncing files into the container [117ms]
 -  Forwarding from 127.0.0.1:20001 -> 8080


↪ Dev mode
 Status:
 Watching for changes in the current directory /tmp/go

 Keyboard Commands:
[Ctrl+c] - Exit and delete resources from the cluster
     [p] - Manually apply local changes to the application on the cluster

You can also try with the Universal Developer Image Stack, which only defines a container component and no commands. Previously, odo dev would error out immediately, but now, it should not:

odo dev
$ odo dev                  
  __
 /  \__     Developing using the "my-udi" Devfile
 \__/  \    Namespace: default
 /  \__/    odo version: v3.11.0
 \__/

 ⚠  You are using "default" namespace, odo may not work as expected in the default namespace.
 ⚠  You may set a new namespace by running `odo create namespace <name>`, or set an existing one by running `odo set namespace <name>`

↪ Running on the cluster in Dev mode
 •  Waiting for Kubernetes resources  ...
 ⚠  Pod is Pending
 ✓  Pod is Running
 ✓  Syncing files into the container [123ms]
 ⚠  Missing default run command

↪ Dev mode
 Status:
 Watching for changes in the current directory /tmp/udi

 Keyboard Commands:
[Ctrl+c] - Exit and delete resources from the cluster
     [p] - Manually apply local changes to the application on the cluster
odo dev --run-command 404
$ odo dev --run-command 404                           
  __
 /  \__     Developing using the "my-udi" Devfile
 \__/  \    Namespace: default
 /  \__/    odo version: v3.11.0
 \__/

 ⚠  You are using "default" namespace, odo may not work as expected in the default namespace.
 ⚠  You may set a new namespace by running `odo create namespace <name>`, or set an existing one by running `odo set namespace <name>`

↪ Running on the cluster in Dev mode
 •  Waiting for Kubernetes resources  ...
Error occurred on Push - watch command was unable to push component: unable to create or update component: no run command with name "404" found in Devfile


↪ Dev mode
 Status:
 Watching for changes in the current directory /tmp/udi

 Keyboard Commands:
[Ctrl+c] - Exit and delete resources from the cluster
     [p] - Manually apply local changes to the application on the cluster
odo dev --no-commands
$ odo dev --no-commands    
  __
 /  \__     Developing using the "my-udi" Devfile
 \__/  \    Namespace: default
 /  \__/    odo version: v3.11.0
 \__/

 ⚠  You are using "default" namespace, odo may not work as expected in the default namespace.
 ⚠  You may set a new namespace by running `odo create namespace <name>`, or set an existing one by running `odo set namespace <name>`

↪ Running on the cluster in Dev mode
 •  Waiting for Kubernetes resources  ...
 ⚠  Pod is Pending
 ✓  Pod is Running
 ✓  Syncing files into the container [110ms]

↪ Dev mode
 Status:
 Watching for changes in the current directory /tmp/udi

 Keyboard Commands:
[Ctrl+c] - Exit and delete resources from the cluster
     [p] - Manually apply local changes to the application on the cluster

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. Required by Prow. label May 31, 2023
@netlify
Copy link

netlify bot commented May 31, 2023

Deploy Preview for odo-docusaurus-preview ready!

Name Link
🔨 Latest commit abd98af
🔍 Latest deploy log https://app.netlify.com/sites/odo-docusaurus-preview/deploys/64888b924d15440007a3acfc
😎 Deploy Preview https://deploy-preview-6855--odo-docusaurus-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@openshift-ci openshift-ci bot added the kind/feature Categorizes issue as a feature request. For PRs, that means that the PR is the implementation label May 31, 2023
@openshift-ci
Copy link

openshift-ci bot commented May 31, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci bot added the area/dev Issues or PRs related to `odo dev` label May 31, 2023
@rm3l rm3l changed the title [WIP] Implement 'odo dev --no-commands` [WIP] Implement odo dev --no-commands May 31, 2023
@rm3l rm3l closed this May 31, 2023
@rm3l rm3l reopened this May 31, 2023
@odo-robot
Copy link

odo-robot bot commented May 31, 2023

NoCluster Tests on commit a0890be finished successfully.
View logs: TXT HTML

@odo-robot
Copy link

odo-robot bot commented May 31, 2023

OpenShift Unauthenticated Tests on commit a0890be finished successfully.
View logs: TXT HTML

@odo-robot
Copy link

odo-robot bot commented May 31, 2023

Unit Tests on commit a0890be finished successfully.
View logs: TXT HTML

@odo-robot
Copy link

odo-robot bot commented May 31, 2023

Validate Tests on commit a0890be finished successfully.
View logs: TXT HTML

@odo-robot
Copy link

odo-robot bot commented May 31, 2023

Kubernetes Tests on commit a0890be finished with errors.
View logs: TXT HTML

@odo-robot
Copy link

odo-robot bot commented May 31, 2023

OpenShift Tests on commit a0890be finished with errors.
View logs: TXT HTML

@odo-robot
Copy link

odo-robot bot commented May 31, 2023

Windows Tests (OCP) on commit a0890be finished successfully.
View logs: TXT HTML

@odo-robot
Copy link

odo-robot bot commented Jun 1, 2023

Kubernetes Docs Tests on commit 330b724 finished successfully.
View logs: TXT HTML

4. Synchronize the local files to the Dev environment
5. Start the port forwarding logic

Note that this is the default behavior of `odo dev` if the Devfile does not define any commands at all.
Copy link
Contributor

@feloy feloy Jun 1, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Note that this is the default behavior of `odo dev` if the Devfile does not define any commands at all.
Note that this is the default behavior of `odo dev` if the Devfile does not define any Build, Run or Debug commands.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When there is only one command of a given kind, odo currently automatically uses it even if it is not explicitly marked as the default:

// if there is only one command of a given group kind, use it as default
if len(commands) == 1 {
return commands[0], true, nil
}

Do we want to change that behavior?

That's why I considered limiting this to the case where there are no commands at all, like with the UDI Stack.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, you 're right for the Default commands. I replaced my proposal with:

Note that this is the default behavior of `odo dev` if the Devfile does not define any  Build, Run or Debug commands.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, that makes sense. I'll update it. Thanks.

@@ -244,6 +244,15 @@ func HasDebugCommand(devfileData data.DevfileData) bool {
return hasCommand(devfileData, v1alpha2.DebugCommandGroupKind)
}

// HasCommands returns whether the Devfile has any commands.
func HasCommands(devfileData data.DevfileData) (bool, error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to check if there are Default commands of kind Build/Run/Debug

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to check if there are Default commands of kind Build/Run/Debug

@@ -105,6 +106,18 @@ func (o *DevOptions) PreInit() string {
}

func (o *DevOptions) Complete(ctx context.Context, cmdline cmdline.Cmdline, args []string) error {
if !o.noCommandsFlag {
devfileObj := *odocontext.GetEffectiveDevfileObj(ctx)
hasCommands, err := libdevfile.HasCommands(devfileObj.Data)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be more robust and adaptable if the existence of commands are checked separately when we try to run them. For example, if no Build command exists but a Run command exists, of the other way.

There is also the case when there is not default command, but the user passes the Build or Run command to consider using --build-command and/or --run-command

rm3l and others added 7 commits June 13, 2023 17:30
Co-authored-by: Philippe Martin <phmartin@redhat.com>
For example, it should not be possible to call it alongside '--build-command' or '--run-command',
because we won't be able to know what to do.
For consistency with how e.g., the build command works,
instead of erroring out, `odo dev` will
now simply log the error message and wait for new input.
rm3l and others added 3 commits June 13, 2023 17:30
As suggested in review, this makes it more adaptable.
As a consequence, if the default (or single) build/run command does not exist,
"odo dev" will not error out immediately; instead, it will behave a bit like
"odo dev --no-commands" (by starting, but printing a warning about the
missing command).
The difference here is that if a run command is added later on
during the dev session, "odo dev" will pick it up and run it,
but "odo dev --no-commands" will continue to purposely ignore it.

The existence of the optional default Build is already checked
by the 'libdevfile.Build' command. It does not error out if there is
no default (or single) Build command. It errors out only if the specified
'--build-command' does not exist in the Devfile.

Co-authored-by: Philippe Martin <phmartin@redhat.com>
…and and if there are ports to forward

This prevents:
i) displaying the "Waiting for the application to be ready" spinner for nothing,
  if there are no ports to forward
ii) waiting until the timeout of 1m has expired if there was no run/debug command executed,
  in which case, it is less unlikely that the application ports defined in the Devfile
  will ever be reachable.
@rm3l rm3l force-pushed the 6569-odo-dev-no-commands branch from 8d160d6 to abd98af Compare June 13, 2023 15:30
@sonarcloud
Copy link

sonarcloud bot commented Jun 13, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@rm3l rm3l changed the title [WIP] Implement odo dev --no-commands Implement odo dev --no-commands Jun 14, 2023
@rm3l rm3l marked this pull request as ready for review June 14, 2023 07:31
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. Required by Prow. label Jun 14, 2023
@rm3l rm3l requested a review from feloy June 14, 2023 07:31
@openshift-ci openshift-ci bot requested a review from anandrkskd June 14, 2023 07:31
@rm3l rm3l requested review from valaparthvi and removed request for anandrkskd June 14, 2023 07:31
Copy link
Contributor

@feloy feloy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works great, thanks

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. Required by Prow. label Jun 14, 2023
@rm3l
Copy link
Member Author

rm3l commented Jun 14, 2023


  [FAILED] Expected
      <string>: I0613 15:49:06.491161    5252 version.go:41] executing [podman version --format json]
      I0613 15:49:06.491759    5252 clientset.go:198] no Podman client initialized: exec: "podman": executable file not found in $PATH
      I0613 15:49:06.491780    5252 implem.go:114] The path for preference file is /tmp/399535519/preference.yaml
      I0613 15:49:06.492692    5252 context.go:172] absolute devfile path: '/tmp/3274794588/devfile.yaml'
      I0613 15:49:06.492850    5252 context.go:113] absolute devfile path: '/tmp/3274794588/devfile.yaml'
      I0613 15:49:06.493640    5252 content.go:48] converted devfile YAML to JSON
      I0613 15:49:06.493776    5252 apiVersion.go:60] devfile schemaVersion: '2.2.0'
      I0613 15:49:06.493942    5252 helper.go:56] devfile apiVersion '2.2.0' is supported
      I0613 15:49:06.497902    5252 schema.go:61] validated devfile schema
      I0613 15:49:06.499728    5252 validate.go:45] Successfully validated devfile sections
      I0613 15:49:06.499772    5252 validate.go:45] Successfully validated devfile sections
      I0613 15:49:06.499849    5252 component.go:87] name of component is "izcnmk", and sanitized name is "izcnmk"
      I0613 15:49:06.500001    5252 kclient.go:224] Checking if "projects" resource is supported
      I0613 15:49:06.538458    5252 oc_server.go:26] Trying to connect to server c110.eu-de.containers.cloud.ibm.com:31454
      I0613 15:49:06.550393    5252 oc_server.go:33] Server https://c110.eu-de.containers.cloud.ibm.com:31454 is up
      I0613 15:49:06.560719    5252 oc_server.go:66] Unable to get OpenShift Version: the server could not find the requested resource
      I0613 15:49:06.702623    5252 jobs.go:44] Waiting for Job izcnmk-app-deploy-exec to complete successfully
      I0613 15:49:21.508565    5252 jobs.go:67] Failed to execute the job, reason: &JobCondition{Type:Failed,Status:True,LastProbeTime:2023-06-13 15:49:21 +0000 UTC,LastTransitionTime:2023-06-13 15:49:21 +0000 UTC,Reason:BackoffLimitExceeded,Message:Job has reached the specified backoff limit,}
      counter 1 counter
      counter 2 counter
      counter 3 counter
      counter 4 counter
      counter 5 counter
      counter 6 counter
      counter 7 counter
      counter 8 counter
      counter 9 counter
      counter 10 counter
      counter 11 counter
      counter 12 counter
      counter 13 counter
      counter 14 counter
      counter 15 counter
      counter 16 counter
      counter 17 counter
      counter 18 counter
      counter 19 counter
      counter 20 counter
      counter 21 counter
      counter 22 counter
      counter 23 counter
      counter 24 counter
      counter 25 counter
      counter 26 counter
      counter 27 counter
      counter 28 counter
      counter 29 counter
      counter 30 counter
      counter 31 counter
      counter 32 counter
      counter 33 counter
      counter 34 counter
      counter 35 counter
      counter 36 counter
      counter 37 counter
      counter 38 counter
      counter 39 counter
      counter 40 counter
      counter 41 counter
      counter 42 counter
      counter 43 counter
      counter 44 counter
      counter 45 counter
      counter 46 counter
      counter 47 counter
      counter 48 counter
      counter 49 counter
      counter 50 counter
      counter 51 counter
      counter 52 counter
      counter 53 counter
      counter 54 counter
      counter 55 counter
      counter 56 counter
      counter 57 counter
      counter 58 counter
      counter 59 counter
      counter 60 counter
      counter 61 counter
      counter 62 counter
      counter 63 counter
      counter 64 counter
      counter 65 counter
      counter 66 counter
      counter 67 counter
      counter 68 counter
      counter 69 counter
      counter 70 counter
      counter 71 counter
      counter 72 counter
      counter 73 counter
      counter 74 counter
      counter 75 counter
      counter 76 counter
      counter 77 counter
      counter 78 counter
      counter 79 counter
      counter 80 counter
      counter 81 counter
      counter 82 counter
      counter 83 counter
      counter 84 counter
      counter 85 counter
      counter 86 counter
      coun...

  Gomega truncated this representation as it exceeds 'format.MaxLength'.
  Consider having the object provide a custom 'GomegaStringer' representation
  or adjust the parameters in Gomega's 'format' package.

  Learn more here: https://onsi.github.io/gomega/#adjusting-output

  not to contain substring
      <string>: counter 1 counter
  In [It] at: /go/odo_1/tests/integration/cmd_devfile_deploy_test.go:647 @ 06/13/23 15:49:21.643

...
Summarizing 1 Failure:
  [FAIL] odo devfile deploy command tests deploying devfile with exec when using devfile where the exec command is bound to fail [It] should print the last 100 lines of the log to the output
  /go/odo_1/tests/integration/cmd_devfile_deploy_test.go:647

Ran 506 of 956 Specs in 1548.741 seconds
FAIL! -- 505 Passed | 1 Failed | 0 Pending | 450 Skipped

Issue with odo logs - reported in #6619

/override Kubernetes-Integration-Tests/Kubernetes-Integration-Tests

@openshift-ci
Copy link

openshift-ci bot commented Jun 14, 2023

@rm3l: Overrode contexts on behalf of rm3l: Kubernetes-Integration-Tests/Kubernetes-Integration-Tests

In response to this:


 [FAILED] Expected
     <string>: I0613 15:49:06.491161    5252 version.go:41] executing [podman version --format json]
     I0613 15:49:06.491759    5252 clientset.go:198] no Podman client initialized: exec: "podman": executable file not found in $PATH
     I0613 15:49:06.491780    5252 implem.go:114] The path for preference file is /tmp/399535519/preference.yaml
     I0613 15:49:06.492692    5252 context.go:172] absolute devfile path: '/tmp/3274794588/devfile.yaml'
     I0613 15:49:06.492850    5252 context.go:113] absolute devfile path: '/tmp/3274794588/devfile.yaml'
     I0613 15:49:06.493640    5252 content.go:48] converted devfile YAML to JSON
     I0613 15:49:06.493776    5252 apiVersion.go:60] devfile schemaVersion: '2.2.0'
     I0613 15:49:06.493942    5252 helper.go:56] devfile apiVersion '2.2.0' is supported
     I0613 15:49:06.497902    5252 schema.go:61] validated devfile schema
     I0613 15:49:06.499728    5252 validate.go:45] Successfully validated devfile sections
     I0613 15:49:06.499772    5252 validate.go:45] Successfully validated devfile sections
     I0613 15:49:06.499849    5252 component.go:87] name of component is "izcnmk", and sanitized name is "izcnmk"
     I0613 15:49:06.500001    5252 kclient.go:224] Checking if "projects" resource is supported
     I0613 15:49:06.538458    5252 oc_server.go:26] Trying to connect to server c110.eu-de.containers.cloud.ibm.com:31454
     I0613 15:49:06.550393    5252 oc_server.go:33] Server https://c110.eu-de.containers.cloud.ibm.com:31454 is up
     I0613 15:49:06.560719    5252 oc_server.go:66] Unable to get OpenShift Version: the server could not find the requested resource
     I0613 15:49:06.702623    5252 jobs.go:44] Waiting for Job izcnmk-app-deploy-exec to complete successfully
     I0613 15:49:21.508565    5252 jobs.go:67] Failed to execute the job, reason: &JobCondition{Type:Failed,Status:True,LastProbeTime:2023-06-13 15:49:21 +0000 UTC,LastTransitionTime:2023-06-13 15:49:21 +0000 UTC,Reason:BackoffLimitExceeded,Message:Job has reached the specified backoff limit,}
     counter 1 counter
     counter 2 counter
     counter 3 counter
     counter 4 counter
     counter 5 counter
     counter 6 counter
     counter 7 counter
     counter 8 counter
     counter 9 counter
     counter 10 counter
     counter 11 counter
     counter 12 counter
     counter 13 counter
     counter 14 counter
     counter 15 counter
     counter 16 counter
     counter 17 counter
     counter 18 counter
     counter 19 counter
     counter 20 counter
     counter 21 counter
     counter 22 counter
     counter 23 counter
     counter 24 counter
     counter 25 counter
     counter 26 counter
     counter 27 counter
     counter 28 counter
     counter 29 counter
     counter 30 counter
     counter 31 counter
     counter 32 counter
     counter 33 counter
     counter 34 counter
     counter 35 counter
     counter 36 counter
     counter 37 counter
     counter 38 counter
     counter 39 counter
     counter 40 counter
     counter 41 counter
     counter 42 counter
     counter 43 counter
     counter 44 counter
     counter 45 counter
     counter 46 counter
     counter 47 counter
     counter 48 counter
     counter 49 counter
     counter 50 counter
     counter 51 counter
     counter 52 counter
     counter 53 counter
     counter 54 counter
     counter 55 counter
     counter 56 counter
     counter 57 counter
     counter 58 counter
     counter 59 counter
     counter 60 counter
     counter 61 counter
     counter 62 counter
     counter 63 counter
     counter 64 counter
     counter 65 counter
     counter 66 counter
     counter 67 counter
     counter 68 counter
     counter 69 counter
     counter 70 counter
     counter 71 counter
     counter 72 counter
     counter 73 counter
     counter 74 counter
     counter 75 counter
     counter 76 counter
     counter 77 counter
     counter 78 counter
     counter 79 counter
     counter 80 counter
     counter 81 counter
     counter 82 counter
     counter 83 counter
     counter 84 counter
     counter 85 counter
     counter 86 counter
     coun...

 Gomega truncated this representation as it exceeds 'format.MaxLength'.
 Consider having the object provide a custom 'GomegaStringer' representation
 or adjust the parameters in Gomega's 'format' package.

 Learn more here: https://onsi.github.io/gomega/#adjusting-output

 not to contain substring
     <string>: counter 1 counter
 In [It] at: /go/odo_1/tests/integration/cmd_devfile_deploy_test.go:647 @ 06/13/23 15:49:21.643

...
Summarizing 1 Failure:
 [FAIL] odo devfile deploy command tests deploying devfile with exec when using devfile where the exec command is bound to fail [It] should print the last 100 lines of the log to the output
 /go/odo_1/tests/integration/cmd_devfile_deploy_test.go:647

Ran 506 of 956 Specs in 1548.741 seconds
FAIL! -- 505 Passed | 1 Failed | 0 Pending | 450 Skipped

Issue with odo logs - reported in #6619

/override Kubernetes-Integration-Tests/Kubernetes-Integration-Tests

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@rm3l
Copy link
Member Author

rm3l commented Jun 14, 2023

  [FAILED] Timed out after 420.000s.
  Expected
      <string>:   __
       /  \__     Developing using the "zwcuyv" Devfile
       \__/  \    Namespace: cmd-dev-test777sjv
       /  \__/    odo version: v3.11.0
       \__/
      
      ↪ Running on the cluster in Dev mode
       •  Waiting for Kubernetes resources  ...
       âš   0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling.
       âš   Pod is Pending
       âš   0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling.
       âš   0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling.
       âš   AttachVolume.Attach failed for volume "pvc-345ee6f1-5644-4c14-b721-f1b545f48861" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-50699d72-cf72-461a-a358-942325316bfc
       âš   AttachVolume.Attach failed for volume "pvc-c359fd8d-b062-4be2-8512-6e8d22e0584e" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-45d48c41-5e7f-4f76-91a3-9e1ed5b076d5
       âš   AttachVolume.Attach failed for volume "pvc-81531a70-3251-4a67-b13c-2cfeb7904ba1" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-4bf4b822-b5a7-4599-9dd9-758a081d36b9
       âš   Unable to attach or mount volumes: unmounted volumes=[auto-pvc-automount-readonly-pvc auto-pvc-automount-mount-path-pvc auto-pvc-automount-default-pvc], unattached volumes=[auto-cm-automount-subpath-configmap odo-shared-data auto-pvc-automount-readonly-pvc auto-secret-automount-default-secret auto-cm-automount-mount-path-configmap auto-secret-automount-access-mode-secret auto-pvc-automount-mount-path-pvc kube-api-access-twgbr auto-cm-automount-access-mode-configmap-decimal odo-projects auto-pvc-automount-default-pvc auto-secret-automount-access-mode-subpath-secret auto-cm-automount-access-mode-subpath-configmap auto-secret-automount-mount-path-secret auto-cm-automount-default-configmap auto-secret-automount-subpath-secret auto-cm-automount-access-mode-configmap]: timed out waiting for the condition
       âš   AttachVolume.Attach failed for volume "pvc-c359fd8d-b062-4be2-8512-6e8d22e0584e" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-45d48c41-5e7f-4f76-91a3-9e1ed5b076d5
       âš   AttachVolume.Attach failed for volume "pvc-345ee6f1-5644-4c14-b721-f1b545f48861" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-50699d72-cf72-461a-a358-942325316bfc
       âš   AttachVolume.Attach failed for volume "pvc-81531a70-3251-4a67-b13c-2cfeb7904ba1" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-4bf4b822-b5a7-4599-9dd9-758a081d36b9
       âš   Unable to attach or mount volumes: unmounted volumes=[auto-pvc-automount-default-pvc auto-pvc-automount-readonly-pvc auto-pvc-automount-mount-path-pvc], unattached volumes=[auto-cm-automount-default-configmap kube-api-access-twgbr odo-projects odo-shared-data auto-pvc-automount-default-pvc auto-secret-automount-mount-path-secret auto-cm-automount-subpath-configmap auto-pvc-automount-readonly-pvc auto-cm-automount-access-mode-configmap auto-secret-automount-access-mode-secret auto-secret-automount-subpath-secret auto-pvc-automount-mount-path-pvc auto-cm-automount-mount-path-configmap auto-secret-automount-access-mode-subpath-secret auto-cm-automount-access-mode-configmap-decimal auto-cm-automount-access-mode-subpath-configmap auto-secret-automount-default-secret]: timed out waiting for the condition
       âš   AttachVolume.Attach failed for volume "pvc-345ee6f1-5644-4c14-b721-f1b545f48861" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-50699d72-cf72-461a-a358-9423253...

  Gomega truncated this representation as it exceeds 'format.MaxLength'.
  Consider having the object provide a custom 'GomegaStringer' representation
  or adjust the parameters in Gomega's 'format' package.

  Learn more here: https://onsi.github.io/gomega/#adjusting-output

  to contain substring
      <string>: [Ctrl+c] - Exit
  In [BeforeEach] at: /go/odo_1/tests/helper/helper_run.go:54 @ 06/13/23 16:55:40.598
...
Summarizing 2 Failures:
  [FAIL] odo dev command tests when a component is bootstrapped when Automount volumes are present in the namespace when odo dev is executed [BeforeEach] should mount the volumes
  /go/odo_1/tests/helper/helper_run.go:54
  [FAIL] odo devfile deploy command tests deploying devfile with long-running exec when Automount volumes are present in the namespace [It] should mount the volumes
  /go/odo_1/tests/helper/helper_cmd_wrapper.go:120

Ran 501 of 956 Specs in 1667.225 seconds
FAIL! -- 499 Passed | 2 Failed | 0 Pending | 455 Skipped

Issues with volume mounting on OpenShift.

/override OpenShift-Integration-tests/OpenShift-Integration-tests

@openshift-ci
Copy link

openshift-ci bot commented Jun 14, 2023

@rm3l: Overrode contexts on behalf of rm3l: OpenShift-Integration-tests/OpenShift-Integration-tests

In response to this:

 [FAILED] Timed out after 420.000s.
 Expected
     <string>:   __
      /  \__     Developing using the "zwcuyv" Devfile
      \__/  \    Namespace: cmd-dev-test777sjv
      /  \__/    odo version: v3.11.0
      \__/
     
     ↪ Running on the cluster in Dev mode
      •  Waiting for Kubernetes resources  ...
      âš   0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling.
      âš   Pod is Pending
      âš   0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling.
      âš   0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling.
      âš   AttachVolume.Attach failed for volume "pvc-345ee6f1-5644-4c14-b721-f1b545f48861" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-50699d72-cf72-461a-a358-942325316bfc
      âš   AttachVolume.Attach failed for volume "pvc-c359fd8d-b062-4be2-8512-6e8d22e0584e" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-45d48c41-5e7f-4f76-91a3-9e1ed5b076d5
      âš   AttachVolume.Attach failed for volume "pvc-81531a70-3251-4a67-b13c-2cfeb7904ba1" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-4bf4b822-b5a7-4599-9dd9-758a081d36b9
      âš   Unable to attach or mount volumes: unmounted volumes=[auto-pvc-automount-readonly-pvc auto-pvc-automount-mount-path-pvc auto-pvc-automount-default-pvc], unattached volumes=[auto-cm-automount-subpath-configmap odo-shared-data auto-pvc-automount-readonly-pvc auto-secret-automount-default-secret auto-cm-automount-mount-path-configmap auto-secret-automount-access-mode-secret auto-pvc-automount-mount-path-pvc kube-api-access-twgbr auto-cm-automount-access-mode-configmap-decimal odo-projects auto-pvc-automount-default-pvc auto-secret-automount-access-mode-subpath-secret auto-cm-automount-access-mode-subpath-configmap auto-secret-automount-mount-path-secret auto-cm-automount-default-configmap auto-secret-automount-subpath-secret auto-cm-automount-access-mode-configmap]: timed out waiting for the condition
      âš   AttachVolume.Attach failed for volume "pvc-c359fd8d-b062-4be2-8512-6e8d22e0584e" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-45d48c41-5e7f-4f76-91a3-9e1ed5b076d5
      âš   AttachVolume.Attach failed for volume "pvc-345ee6f1-5644-4c14-b721-f1b545f48861" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-50699d72-cf72-461a-a358-942325316bfc
      âš   AttachVolume.Attach failed for volume "pvc-81531a70-3251-4a67-b13c-2cfeb7904ba1" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-4bf4b822-b5a7-4599-9dd9-758a081d36b9
      âš   Unable to attach or mount volumes: unmounted volumes=[auto-pvc-automount-default-pvc auto-pvc-automount-readonly-pvc auto-pvc-automount-mount-path-pvc], unattached volumes=[auto-cm-automount-default-configmap kube-api-access-twgbr odo-projects odo-shared-data auto-pvc-automount-default-pvc auto-secret-automount-mount-path-secret auto-cm-automount-subpath-configmap auto-pvc-automount-readonly-pvc auto-cm-automount-access-mode-configmap auto-secret-automount-access-mode-secret auto-secret-automount-subpath-secret auto-pvc-automount-mount-path-pvc auto-cm-automount-mount-path-configmap auto-secret-automount-access-mode-subpath-secret auto-cm-automount-access-mode-configmap-decimal auto-cm-automount-access-mode-subpath-configmap auto-secret-automount-default-secret]: timed out waiting for the condition
      âš   AttachVolume.Attach failed for volume "pvc-345ee6f1-5644-4c14-b721-f1b545f48861" : timed out waiting for external-attacher of vpc.block.csi.ibm.io CSI driver to attach volume r010-50699d72-cf72-461a-a358-9423253...

 Gomega truncated this representation as it exceeds 'format.MaxLength'.
 Consider having the object provide a custom 'GomegaStringer' representation
 or adjust the parameters in Gomega's 'format' package.

 Learn more here: https://onsi.github.io/gomega/#adjusting-output

 to contain substring
     <string>: [Ctrl+c] - Exit
 In [BeforeEach] at: /go/odo_1/tests/helper/helper_run.go:54 @ 06/13/23 16:55:40.598
...
Summarizing 2 Failures:
 [FAIL] odo dev command tests when a component is bootstrapped when Automount volumes are present in the namespace when odo dev is executed [BeforeEach] should mount the volumes
 /go/odo_1/tests/helper/helper_run.go:54
 [FAIL] odo devfile deploy command tests deploying devfile with long-running exec when Automount volumes are present in the namespace [It] should mount the volumes
 /go/odo_1/tests/helper/helper_cmd_wrapper.go:120

Ran 501 of 956 Specs in 1667.225 seconds
FAIL! -- 499 Passed | 2 Failed | 0 Pending | 455 Skipped

Issues with volume mounting on OpenShift.

/override OpenShift-Integration-tests/OpenShift-Integration-tests

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-merge-robot openshift-merge-robot merged commit 63c8e27 into redhat-developer:main Jun 14, 2023
@rm3l rm3l deleted the 6569-odo-dev-no-commands branch June 14, 2023 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/dev Issues or PRs related to `odo dev` kind/feature Categorizes issue as a feature request. For PRs, that means that the PR is the implementation lgtm Indicates that a PR is ready to be merged. Required by Prow.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

odo dev --no-commands
3 participants