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

Design proposal: Event notification support for build and application status for IDE integration for devfile scenarios (#2550) #3177

Merged

Conversation

jgwest
Copy link
Contributor

@jgwest jgwest commented May 13, 2020

What type of PR is this?
/kind documentation
[skip ci]

Which issue(s) this PR fixes:
Parent issue: #2550

Proposal as rendered by GitHub markdown:
https://github.com/jgwest/odo/blob/doc-2550-proposal/docs/proposals/event-notification.md

@openshift-ci-robot
Copy link
Collaborator

Hi @jgwest. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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-ci-robot openshift-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. Required by Prow. label May 13, 2020
@amitkrout
Copy link
Contributor

/ok-to-test

@openshift-ci-robot openshift-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. Required by Prow. labels May 14, 2020
@dharmit
Copy link
Member

dharmit commented May 14, 2020

/ok-to-test

Why are we explicitly testing a docs PR? :(

@amitkrout
Copy link
Contributor

/ok-to-test

Why are we explicitly testing a docs PR? :(

The pr for skipping the test on OpenShift CI is not in yet. Need to create a pr in release repo. I will do that. Till then please have patience ;)


In short, the proposal is:
- New flag for push command, `odo push -o json`: Outputs JSON events that correspond to what devfile actions/commands are being executed by push.
- New odo command `odo component status -o json`: Pings the application URLs, and checks the container/pod status every X seconds (and/or a watch, for Kubernetes case). The result of both is output as JSON to be used by external tools to determine if the application is running.
Copy link
Member

Choose a reason for hiding this comment

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

What if application doesn't have any URLs?
Also, what would be considered as pinging url? Just checking if the port is open or sending HTTP commands like GET or HEAD?

Wouldn't it be enough to just check if the application process is running?
That could be done easily, as it will run as a supervisord service. There could be additional information in the status message like if the URL as alive or not (using HTTP HEAD), but the primary source for the status would be if the process is running or not.

Copy link
Contributor Author

@jgwest jgwest May 14, 2020

Choose a reason for hiding this comment

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

Good questions:

If the user is developing a web application, often the first metric of "is my application running?" is "can I see it in my browser when I refresh?". I attempt to capture this idea with this part of the proposal.

The algorithm I had considered would be:

  • For each odo-managed url:
    • issue a GET/HEAD request to the app domain root, for example, a component 'my-app' might be pinged at https://my-app.my-cluster-domain.com:8080
    • odo component status command to output a success to the console if ANY HTTP response code (2xx/3xx/4xx/5xx) is received, rather than only success HTTP codes, since what we are testing is whether the app is connectable (a failure would be no response before timeout).

Now this raises a few good questions:

  • Is it always safe (eg safe, non-destructive, immutable, idempotent) to issue GET/HEAD requests to the root of an any odo-managed application without the user's explicit acknowledgement? I had assumed yes (eg low risk), but am definitely open to further discussion here.
  • Will Kubernetes ingress controllers ALWAYS respond with an HTTP response, even if sent to an invalid cluster URL? If so, this would make this check not especially useful for the Kubernetes case...
  • Could we just remove this entire algorithm from the proposal and leave it up to the IDE to ping the URL if appropriate? After all, the IDE does have full knowledge over which URLs are exposed via odo... at the expense of slightly more work on the IDE-side.

As for the case where no application URLs are exposed (and there are many such applications): if no odo-managed URLs are defined, the algorithm will be a no-op, and no URL success/failure output will be output. This proposal does not require applications to define a URL.

RE: checking if the application process is running, I like the idea and is definitely preferable (and perhaps this could still be complemented by URL checking); I will discuss this further on the other comment where you mentioned this.

In short, the proposal is:
- New flag for push command, `odo push -o json`: Outputs JSON events that correspond to what devfile actions/commands are being executed by push.
- New odo command `odo component status -o json`: Pings the application URLs, and checks the container/pod status every X seconds (and/or a watch, for Kubernetes case). The result of both is output as JSON to be used by external tools to determine if the application is running.
- A standardized markup format for communicating detailed build status, something like: `#devfile-status# {"buildStatus":"Compiling application"}`, to be optionally included in devfile scripts that wish to provide detailed build status to consuming tools.
Copy link
Member

Choose a reason for hiding this comment

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

👍 simple and powerful solution. I like it


**Detailed build status**: An indication of which step in the build process the build is in. For example: are we 'Compiling application', or are we 'Running unit tests'?

**App status**: Determine if an application is running, using container status (for both local and Kubernetes, various status: containercreating, started, restarting, etc), or whether an HTTP/S request to the root application URL returns an HTTP response with any status code.
Copy link
Member

Choose a reason for hiding this comment

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

Due to the use of the SupervisorD the application might not be running or falling and the container would be still running. It needs to check the application process to determine if the application is running or not.

Copy link
Contributor Author

@jgwest jgwest May 14, 2020

Choose a reason for hiding this comment

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

Agreed: the use of container status here is an imperfect representation of the app status for that exact reason. It's still a useful data point (eg if the container ISN'T running. then the app is obviously not running), but if the container IS running it doesn't fully/necessarily imply the app is running (due to SupervisorD).

I like the idea of checking the application process itself, and my understanding is it is straightforward to check using supervisord ctl status, let me look into that further...

Copy link
Member

Choose a reason for hiding this comment

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

Thinking out loud: can we make use of k8s health checks for this and/or other status info that we intend to come up with?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

K8s health checks appear not to be defined in either odo devfile v1 or v2 (correct me if I'm wrong, I didn't see it), so this would be something to consider if/when these are added there. (And these would not apply if odo was running with docker target)

Copy link
Member

Choose a reason for hiding this comment

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

Not a bad idea, but I'm afraid that using k8s health checks might have unwanted consequences. I wouldn't want to use LivelinessProbe as once it starts failing Kubernetes will restart the Pod. Using ReadinessProbe might work, but if ReadinessProbe starts to fail it Kubernetes will stop sending traffic to the Service, It might not be what you want when developing an application.

Copy link
Member

Choose a reason for hiding this comment

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

@kadel that leaves us with startup probes which, from the documentation, sound like what might fit in. However, it would only make sense to use those if integrating those won't be a problem. Otherwise, coming up with our own solution for that shouldn't be a hassle, I guess.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

A followup: as discussed earlier in the thread, supervisord ctl status can be used to verify that long-running processes inside the container are running as expected.

I have prototyped it and it works well, so I've updated the proposal to include these data as another event type produced by component status.

- While app status works well for standalone application frameworks (Go, Node Express, Spring Boot), it works less well for full server runtimes such as Java EE application servers like OpenLiberty/WildFly that may begin responding to Web requests before the user's deployed WAR/EAR application has finished startup.
- Since these application servers are built to serve multiple concurrently-deployed applications, it is more difficult to determine the status of any specific application running on them. The lifecycle of the application server differs from the lifecycle of the application running inside the application server.
- Fortunately, in these cases we can use the console logs (from `odo log`) from the runtime container to determine a more detailed application status.
- For example, OpenLiberty (as an example of an application-server-style container) prints a specific code when an application is starting `CWWKZ0018I: Starting application {0}.`, and another when it has started. `CWWKZ0001I: Application {0} started in {1} seconds.`
Copy link
Member

Choose a reason for hiding this comment

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

How would odo know what log line means what? For example that CWWKZ0018I: Starting application {0}. means that the application is starting initialization. This is framework-specific knowledge and as such, it should be somewhere in devfile or in a Stack but not inside odo.

Copy link
Contributor Author

@jgwest jgwest May 14, 2020

Choose a reason for hiding this comment

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

Yah, we definitely don't want odo to know anything about these codes/strings; it looks like the language I used in the proposal is imprecise re: who would use these data.

I have updated the proposal to clarify that it is the consuming tool's responsibility (for example, IDE) to know what these codes mean.. I added these lines:

Odo itself should NOT know anything about these specific application codes; knowing how these translate into a detailed application status would be the responsibility of the IDE/consuming tool. Odo's role here is only to provide the console output log.

In the future, we could add these codes into the devfile to give Odo itself some agency over determining the detailed application status, but for this initial proposal I am leaving this responsibility with the consuming tool.

Copy link
Member

@kadel kadel May 15, 2020

Choose a reason for hiding this comment

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

Yah, we definitely don't want odo to know anything about these codes/strings; it looks like the language I used in the proposal is imprecise re: who would use these data.

I have updated the proposal to clarify that it is the consuming tool's responsibility (for example, IDE) to know what these codes mean.. I added these lines:

Maybe it was just my bad inpretetation. What you added makes this perfectly clear, thx.

This is what an `odo push -o json` command invocation would look like:
```
odo push -o json
{ "devFileCommandExecutionBegun": { "commandName" : "build", "timestamp" : "(UTC unix epoch seconds.microseconds)" } }
Copy link
Member

Choose a reason for hiding this comment

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

Each line has a different JSON structure (different keys), this might make parsing in some languages (like Go) a little bit trickier. Not a huge problem, but just something to be aware of.

Copy link
Contributor Author

@jgwest jgwest May 14, 2020

Choose a reason for hiding this comment

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

This is true; here's my draft PR of part of this feature (note the PR has gone through zero review, so is subject to change) that contains the go structs used to marshal/unmarshall these entries: https://github.com/openshift/odo/blob/e8040649268c0e7624c5662e364fdb8607837b41/pkg/machineoutput/types_event_logging.go#L24

@girishramnani girishramnani changed the base branch from master to parser-v2 May 14, 2020 15:07
Copy link
Member

@dharmit dharmit left a comment

Choose a reason for hiding this comment

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

Still reading through the proposal. Finding it difficult to grok. But got a couple of questions so far.


**Detailed build status**: An indication of which step in the build process the build is in. For example: are we 'Compiling application', or are we 'Running unit tests'?

**App status**: Determine if an application is running, using container status (for both local and Kubernetes, various status: containercreating, started, restarting, etc), or whether an HTTP/S request to the root application URL returns an HTTP response with any status code.
Copy link
Member

Choose a reason for hiding this comment

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

Thinking out loud: can we make use of k8s health checks for this and/or other status info that we intend to come up with?

docs/proposals/event-notification.md Show resolved Hide resolved
Copy link
Member

@dharmit dharmit left a comment

Choose a reason for hiding this comment

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

Some more comments and questions. Some possibly naive. 😄


This 'detailed build status' markup text is *entirely optional*: if this markup is not present, the odo tool can still determine build succeeded/failed and build running/not-running using the other `odo push -o json` JSON events.

### App status notification via `odo component status -o json` and `odo log --follow`
Copy link
Member

Choose a reason for hiding this comment

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

This is a nitpick, but the word "App status" has occurred enough times to make me bring it up. app means a different thing in odo terminology. I understand that we're referring to the application building/running inside a container in the component. However, when we say app, it could refer to set of commands exposed via odo app. For the sake of this proposal, it's just an FYI. But when we write the docs for this feature, we need to be unambiguous.

Copy link
Contributor Author

@jgwest jgwest May 20, 2020

Choose a reason for hiding this comment

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

Agreed! Now, what I'm about to say may be a distinction without a useful different, but:

'App status' is definitely an imperfect term for the reasons you described, but I needed a term that also refers to whether the application's OS process is running inside the container or not. In contrast, the term component status is more general; it would refer to whether the pod/container is running, but not (necessarily) to whether the app is running.

These two lifecycle terms are mostly the same, except in the following cases:

  • User's applications fails to start, or dies after starting: In this case the component status is up (eg the pod/container are still running, the odo init volume is mapped in, etc), but the app is down.
  • During a devfile build, the app running in the container may be temporarily stopped in order to allow the build to step to deploy new files; in this scenario the app would be down but the component would be up.

In any case, like I said, using 'app status' is still problematic, so I'll think a bit more if there's a better term I can use here to refer to both ideas, so that there is no confusion with the odo application/component model terminology 👍 .

Copy link
Member

Choose a reason for hiding this comment

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

How about the term "developer application" when we're talking about the application inside the pod/container that a dev cares about? Two words, I know, but unambiguous to a good extent, IMO.

However, broader discussion around the terminology is happening at #3076 & #3190.

Copy link
Member

Choose a reason for hiding this comment

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

However, broader discussion around the terminology is happening at #3076 & #3190.

I would keep the discussion about terminology separate in #3076. We will need to change and redefine some of the terms used in odo across the odo all commands

docs/proposals/event-notification.md Outdated Show resolved Hide resolved
docs/proposals/event-notification.md Outdated Show resolved Hide resolved
docs/proposals/event-notification.md Outdated Show resolved Hide resolved
- 3 is handled by the existing unmodified `odo log --follow` command.

The new proposed `odo component status -o json` command will:
- Be a *long-running* command that will continue outputing status until it is aborted by the parent process.
Copy link
Member

Choose a reason for hiding this comment

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

IMO, this sounds like something we'd do with log --follow (example: odo log --follow) or --watch (example: kubectl get pods -w) commands. status commands are more like one-time, no? They show the current status of the application when the user asks for it.

Status could keep changing over time. For example, if odo watch is running in another terminal and the user modifies something, it would trigger an automated odo push and the build/compile/run cycle would be repeated. If odo component status -o json would stream the events in that case as well, how is it different from what odo log --follow is doing except providing the output in json format? Shouldn't we do odo log --follow -o json instead in that case?

Copy link
Contributor Author

@jgwest jgwest May 20, 2020

Choose a reason for hiding this comment

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

Good point, and actually, in an earlier version of this design proposal this was called odo component status -o json --follow, but then I simplified it to remove --follow.

Would you prefer something like odo component status -o json --follow? This definitely makes the long-running behaviour of the command more clear. (Or if you have another noun/noun-phrase we could use instead of status, that better conveys this idea, that would work too.)

The other item it sounds like you may be proposing in your above comment is combining the odo log and odo component status commands? I had considered this, but ultimately realized there is a case where the lifecycle of the two commands should differ: when the user adds a new URL to an existing component, the odo component status process needs to be restarted (eg to pick up the new URL), but the odo log --follow process does not need to be restarted (because the container/pod remain the same).

Copy link
Member

Choose a reason for hiding this comment

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

Would you prefer something like odo component status -o json --follow? This definitely makes the long-running behaviour of the command more clear.

I agree that this makes the long-running behaviour more obvious to the user. However, I was thinking of odo log --follow -o json but your later point about odo log --follow being something that shouldn't need a restart makes sense as well and. So, I guess, odo component status -o json --follow would be more appropriate.

- Every X seconds, ping the URLs/routes of the application as they existed when the command was first executed. Output the result as a JSON string.
- Every X seconds (or using a Kubernetes watch, where appropriate), check the container status for the application, based on the application data that was present when the command was first issued. Output the result as a JSON string.

**Note**: This command will NOT, by design, respond to route/application changes that occur during or after it is first invoked. It is up to consuming tools to ensure that the `odo component status` command is stopped/restarted as needed.
Copy link
Member

Choose a reason for hiding this comment

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

If we do not design it to respond to changes that occur in route/app since first run of odo component status, this command would report failure in accessing the route/app, right? For example:

  • I pushed the component and executed odo component status -o json.
  • Now,
    • I deleted the URL and created another one instead, or
    • I change the port (less likely than URL deletion+creation scenario), or
    • I feel like adding another endpoint to the application /status that displays the status of my app.
  • If the user has setup some action to be performed in case of an URL/app being inaccessible, wouldn't this give a false positive?

This might be irrelevant right now, but it might become more relevant once #2756 starts moving ahead.

Copy link
Contributor Author

@jgwest jgwest May 20, 2020

Choose a reason for hiding this comment

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

Yep, the scenario you describe is exactly the problem with concurrent modification of the application while the status command is running, and I included this line to indicate this Note: This command will NOT, by design, respond to route/application changes that occur during or after it is first invoked. It is up to consuming tools to ensure that the odo component status command is stopped/restarted as needed.

How to handle this exact problem is a fundamental architectural constraint in the problem space of this proposal: we need a way to get always up-to-date status, and always up-to-date logs, but we also need the ability to deploy changes to the application via a different odo command (odo push, running in a different OS process). And we need to do this (ideally) without turning the odo tool into either a server, or an LSP-style process, or a multi-process application that needs to do IPC between various running instances of the odo tool. I'll go into more details in your next comment where you have added additional details.

Copy link
Member

Choose a reason for hiding this comment

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

I think we agree upon this being a problem since its the end-user who has to perform an action. And as you said elsewhere, this leads to a scenario of the problem being solved at many places instead of being solved once in odo. But that could be taken up in the next phase, I guess.

docs/proposals/event-notification.md Show resolved Hide resolved
@kadel
Copy link
Member

kadel commented May 25, 2020

/approve

This sounds like a good start and from my point of view we can start working on implementation.

@openshift-ci-robot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: kadel

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. Required by Prow. label May 25, 2020
Copy link
Member

@dharmit dharmit left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. Required by Prow. label May 26, 2020
@openshift-merge-robot openshift-merge-robot merged commit 0b45f7e into redhat-developer:parser-v2 May 26, 2020
adisky pushed a commit that referenced this pull request May 26, 2020
… status for IDE integration for devfile scenarios (#2550) (#3177)

* Add event notification proposal

[skip ci]

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md
adisky pushed a commit that referenced this pull request May 27, 2020
… status for IDE integration for devfile scenarios (#2550) (#3177)

* Add event notification proposal

[skip ci]

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md
adisky pushed a commit that referenced this pull request May 27, 2020
…lication status for IDE integration for devfile scenarios (#2550) (#3177)"

This reverts commit 0b45f7e.
adisky pushed a commit that referenced this pull request May 28, 2020
… status for IDE integration for devfile scenarios (#2550) (#3177)

* Add event notification proposal

[skip ci]

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md
adisky pushed a commit that referenced this pull request Jun 1, 2020
… status for IDE integration for devfile scenarios (#2550) (#3177)

* Add event notification proposal

[skip ci]

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md
adisky pushed a commit that referenced this pull request Jun 2, 2020
… status for IDE integration for devfile scenarios (#2550) (#3177)

* Add event notification proposal

[skip ci]

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md
openshift-merge-robot pushed a commit that referenced this pull request Jun 2, 2020
* Add Devfile Parser V2, Update Common Structs (#3188)

* Add Devfile Parser for Version 2.0.0

Added Devfile V2 Go Structures
Added converter for v2 ro common types

Signed-off-by: adisky <adsharma@redhat.com>

* Add example V2 devfile

added example nodejs V2 devfile

* Add Common Types as V2

Add common types as v2
Add Converter from common to v1

* Updated example devfile with group

* Fixes command.go and kubernetes adapter (#3194)

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Fixes utils of k8s adapter (#3195)

* Update Command Logic to use groups (#3196)

* Updates create logic to v2 (#3200)

* Fixes utils of docker docker adapter (#3198)

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Update Docker and Kubernetes adapter to use groups (#3206)

* Update Docker and Kubernetes adapter to use groups

* Update Some Validation

Incorporate some review comments for commands Map
Update Some Validation logic

* Updated Logs for V2 (#3208)

Fixed interface implementation for v2
Updated logs
refactored commands.go

* Avoid String Pointers (#3209)

While converting v1 to v2 types, string pointers are prone to cause
null pointer error. This PR updates struct fields from string
pointers to string

* Update commands check

* Fixes lower and upper case for commands (#3219)

* Fixes type of project and components for devfile v1 (#3228)

* Update testing utils (#3220)


* Update command tests

Updated Command tests to v2
Removed some cases like command type validation, that will be
validated by schema only.

* Fix common adapters tests

All devfile.adapters.common unit tests are fixed

* Add tests for Mismatched type

Fix devfile.adapters.Kubernetes.Component unit tests

* Add TestCase for default command

* Design proposal: Event notification support for build and application status for IDE integration for devfile scenarios (#2550) (#3177)

* Add event notification proposal

[skip ci]

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Fix Integration tests for devfile v2 (#3236)

* Fix Integration tests

Correct volume structure
Fix supervisord binary insertion for docker
Insert command and args in build container fr docker

* Fix Integration tests

Revert commands, args removal
Add commands, args in v2 common structs
Fix duplicate volume error

* Fixes unit tests (#3240)

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Add devfiles V2 examples (#3253)

Add devfiles v2 examples for springboot and nodejs

* Fix regression by sparse checkout dir PR (#3258)

fix regression caused by rebase to master.
Also add github, zip as supported project types.

* Address review comments (#3267)

* Address review comments part 2

fix log levels to v4
fix error formatting
add case no's in test cases
update some comments

* Address review comments part 2

Remove validation for group

Co-authored-by: Mrinal Das <mrinald7@gmail.com>
Co-authored-by: Jonathan West <jgwest@users.noreply.github.com>
bigkevmcd pushed a commit to rhd-gitops-example/odo that referenced this pull request Jun 27, 2020
* add mik-dass and dharmit as top level approvers (redhat-developer#3189)

* Add .gitignore files for jekyll / site (redhat-developer#3171)

**What type of PR is this?**
> Uncomment only one ` /kind` line, and delete the rest.
> For example, `> /kind bug` would simply become: `/kind bug`

/kind code-refactoring

**What does does this PR do / why we need it**:

Updates the `.gitignore` for html and jekyll information. As I kept
having to `git clean` the dir.

**Which issue(s) this PR fixes**:

N/A

**How to test changes / Special notes to the reviewer**:

N/A

Signed-off-by: Charlie Drage <charlie@charliedrage.com>

* Performance improvement for odo catalog list components when using devfiles (redhat-developer#3112)

* feat: parallel fetching of component types to improve performance

Fix redhat-developer#3105 as we now also fetch devfiles for completion, which was
previously prohibitively slow.

* fix: add missing mutex, rename existing one for clarity

* refactor: simplify getDevfileWith by computing link within function

* docs: add documentation, update existing one

* refactor: rename wg to devfileWG for clarity

* fix: improper test setup

* fix: only filter components if there's no error

* fix: re-implement using channels, handle error and timeout better

* fix: no need to pass error

* fix: populate base in GetDevfileIndex, use registry URL, hiding path

* fix: properly retrieve all devfiles

Performance is not that great so investigating better options.

* fix: use new ConcurrentTasks support, allowing proper error reporting

* fix: adapt to dynamic registries

* feat: simplify ConcurrentTask by hiding WaitGroup

It was too easy to forget calling Done in ToRun leading to deadlocks.

* fix: broken tests

* fix: wording

[skip ci]

* fix: remove unused function, added doc

[skip ci]

* fix: remove unused ErrorWrapper

[skip ci]

* fix: rename package import

[skip ci]

* fix: test getDevfileIndexEntries directly, remove now unused function

* JSON output for service list in experimental mode (redhat-developer#3186)

* JSON output for service list in experimental mode

* Changes to tests as per PR feedback

redhat-developer#3186 (review)

* Adds a document for debugging applications using devfiles (redhat-developer#3187)

* Adds a document for debugging applications using devfiles

* Updated syntax and improving the wording

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Actually wait for the project to be deleted.. (redhat-developer#2397)

Actually wait..

Signed-off-by: Charlie Drage <charlie@charliedrage.com>

* Run devfile docker url tests without kube config (redhat-developer#3223)

* Run devfile docker url tests without kube config

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Update target

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Fix typo

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Setting golang version uniformly accross repo and updating docs (redhat-developer#3204)

* Setting golang version uniformly accross repo and updating docs

 - All golang version references now uniformly updated to 1.12
 - Adding all golang version references to development.adoc

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Adding golang warning to admonition block

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Removing unnessasary space

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Adding back warning as github does not render admonition in normal view

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Fixing the warning to look better

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Fixing up the list title

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Fixing up admonishments

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Fixing commits as per @cdrage comments

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Fix odo describe not listing all the ports after first url is created (redhat-developer#3224)

* Fix odo describe not listing all the ports after first url is created

This PR fixes redhat-developer#3201.

Signed-off-by: Denis Golovin dgolovin@redhat.com

* update tests

Co-authored-by: Tomas Kral <tkral@redhat.com>

* Support listing devfile components with no devBuild command (redhat-developer#3172)

* Don't require devfiles to have a devBuild command

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Update integration tests

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Update integration test

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Update integration test for odo create

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Make devRun check case-insensitive

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* replace secured with secure (redhat-developer#3238)

A typo existing in sample file

* Running devfile integration tests on kubernetes cluster (redhat-developer#3233)

* Document to run tests on kubernetes cluster

* Addressed review comment

* Updated the doc as per reviewer request

* Modify operator hub tests to run in separate namespaces (redhat-developer#3239)

* Modify operator hub tests to run in separate namespaces

**What type of PR is this?**
/kind cleanup
/kind failing-test

**What does does this PR do / why we need it**:
This PR ensures that each test spec for operator hub is run in a
separate namespace. This is needed because these tests were written in a
stringent fashion which tied the hands while writing additional tests
for the feature.

This PR should help take the tests out of the "odo test statistics"
dashboard.

**Which issue(s) this PR fixes**:

Fixes redhat-developer#3193

**How to test changes / Special notes to the reviewer**:
CI should pass. Specially for Operator Hub tests under
`tests/integration/operatorhub`

* Changes as per PR review

* Remove createEtcdClusterService function and more separate specs

- Removed the function because it *seemed* to be leading to race
  conditions
- Separating specs for the same reason

* Loop for two operators

* Make operator hub tests sequential

We're doing this because parallel run is causing numerous failures in CI
and local. In spite of debugging it for some time, we're not able to fix
it. However, we're on a deadline because operator hub failures are
showing up across the PRs. Hence, for time being, we're making these
tests sequential.

redhat-developer#3244

* Add devfile command flags to watch (redhat-developer#3075)

* save non default devfile cmd in env.yaml for push and watch

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Add and update tests for envinfo

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Update watch test to incl new watch param

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* watch integration test

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Display msg when devfile commands are changed via odo push

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Change Logic for watch flag + feedback 1

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Update Watch tests with feedback

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* disable watch test on kube since we now use oc

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Watch test feedback 2

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Adding sparseCheckoutDir functionality to devfiles (redhat-developer#3042)

* Initial commit

* added devfile

* added tests

* commented out tests

* change to validpath statement

* changed method of extracting zip

* changed pathsToUnzip to pathToUnzip

* Added error message when no files are unzipped

* cleaned up conditional prefix trim

* Changes from feedback

* feedback changes and unit tests for util func

* check for empty pathToUnzip

* changed error message format

* cleaned up path separator for windows

* fixed return pathToUnzip

* use hassuffix

* moved to function

* fromslash

* minor fixes

* lowercase fix for test

* Run test locally against 4.* Cluster (redhat-developer#3218)

* Run test locally against 4.* Cluster

* Added review comments

* Added few more review comments

* Addressed review comments

* Addressed review comments

* Addressed correct format review comments

* Update samples for deploying a devfile in deploying-a-devfile-using-odo.adoc (redhat-developer#3163)

* Update devfile doc samples

[skip ci]

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Address review comments

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Fix formatting

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Replace multiple expect statement with MatchAllInOutput and DontMatchAllInOutput (redhat-developer#3251)

* Replaced multiple expect assert statement with MatchAllInOutput

* Replaced multiple expect check within same variable with MatchAllInOutput and DontMatchAllInOutput throughout the test

* Formatted string array which were exceeding 120 character

* add state to ingress list and describe (redhat-developer#3160)

* add state to ingress list and describe

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* use URL struct in url describe and list

* add unit tests

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* modify integration test and add more unit tests

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* remove types created

* address review comment

* delete removed tests

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* return error if the error is not notfound

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* list multiple ulrs in test

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* Don't prompt for namespace if pushtarget is Docker (redhat-developer#3248)

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Fix windows incompatibility with /tmp (redhat-developer#3252)

* Fix checkForImageStream to return correct result. (redhat-developer#3281)

* Add Support for Devfile V2 (redhat-developer#3216)

* Add Devfile Parser V2, Update Common Structs (redhat-developer#3188)

* Add Devfile Parser for Version 2.0.0

Added Devfile V2 Go Structures
Added converter for v2 ro common types

Signed-off-by: adisky <adsharma@redhat.com>

* Add example V2 devfile

added example nodejs V2 devfile

* Add Common Types as V2

Add common types as v2
Add Converter from common to v1

* Updated example devfile with group

* Fixes command.go and kubernetes adapter (redhat-developer#3194)

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Fixes utils of k8s adapter (redhat-developer#3195)

* Update Command Logic to use groups (redhat-developer#3196)

* Updates create logic to v2 (redhat-developer#3200)

* Fixes utils of docker docker adapter (redhat-developer#3198)

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Update Docker and Kubernetes adapter to use groups (redhat-developer#3206)

* Update Docker and Kubernetes adapter to use groups

* Update Some Validation

Incorporate some review comments for commands Map
Update Some Validation logic

* Updated Logs for V2 (redhat-developer#3208)

Fixed interface implementation for v2
Updated logs
refactored commands.go

* Avoid String Pointers (redhat-developer#3209)

While converting v1 to v2 types, string pointers are prone to cause
null pointer error. This PR updates struct fields from string
pointers to string

* Update commands check

* Fixes lower and upper case for commands (redhat-developer#3219)

* Fixes type of project and components for devfile v1 (redhat-developer#3228)

* Update testing utils (redhat-developer#3220)


* Update command tests

Updated Command tests to v2
Removed some cases like command type validation, that will be
validated by schema only.

* Fix common adapters tests

All devfile.adapters.common unit tests are fixed

* Add tests for Mismatched type

Fix devfile.adapters.Kubernetes.Component unit tests

* Add TestCase for default command

* Design proposal: Event notification support for build and application status for IDE integration for devfile scenarios (redhat-developer#2550) (redhat-developer#3177)

* Add event notification proposal

[skip ci]

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Update event-notification.md

* Fix Integration tests for devfile v2 (redhat-developer#3236)

* Fix Integration tests

Correct volume structure
Fix supervisord binary insertion for docker
Insert command and args in build container fr docker

* Fix Integration tests

Revert commands, args removal
Add commands, args in v2 common structs
Fix duplicate volume error

* Fixes unit tests (redhat-developer#3240)

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Add devfiles V2 examples (redhat-developer#3253)

Add devfiles v2 examples for springboot and nodejs

* Fix regression by sparse checkout dir PR (redhat-developer#3258)

fix regression caused by rebase to master.
Also add github, zip as supported project types.

* Address review comments (redhat-developer#3267)

* Address review comments part 2

fix log levels to v4
fix error formatting
add case no's in test cases
update some comments

* Address review comments part 2

Remove validation for group

Co-authored-by: Mrinal Das <mrinald7@gmail.com>
Co-authored-by: Jonathan West <jgwest@users.noreply.github.com>

* devfile push Integration test on kubernetes cluster (redhat-developer#3041)

* Running devfile push integration test on kubernetes cluster

* Updated xenial insecure registry path

* Modifying Runner variable name to cliRunner

* Common project Create and Delete function according to the running cluster

* Added checks for CI to copy kubeconfig to temp dir

* Skipping Kubeconfig set to temporary config file for prow

* Set Kubeconfig in temporary config file on kubernetes cluster only

* Fixes Kubeconfig code sync

* Separate out function for getting cliRunner

* Release 1.2.2 of odo (redhat-developer#3294)

**What type of PR is this?**
> Uncomment only one ` /kind` line, and delete the rest.
> For example, `> /kind bug` would simply become: `/kind bug`

/kind feature

**What does does this PR do / why we need it**:

Releases 1.2.1 of odo

**Which issue(s) this PR fixes**:

N/A

**How to test changes / Special notes to the reviewer**:

N/A

Signed-off-by: Charlie Drage <charlie@charliedrage.com>

* Fixes list and describe of secure URLs for not pushed components (redhat-developer#3269)

* Don't show imagestreams error on experimental mode (redhat-developer#3265)

* Don't show imagestreams error on experimental mode

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Remove unnecessary line

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Move where error message printed

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Use %q instead

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* remove openshift logo from readme (redhat-developer#3301)

* Remove unnecessary preference set (redhat-developer#3287)

* report error can't find the app (redhat-developer#2927)

* Update build/VERSION to 1.2.2 (redhat-developer#3306)

**What type of PR is this?**
> Uncomment only one ` /kind` line, and delete the rest.
> For example, `> /kind bug` would simply become: `/kind bug`

/kind feature

**What does does this PR do / why we need it**:

Updates the build version to 1.2.2

**Which issue(s) this PR fixes**:

N/A

**How to test changes / Special notes to the reviewer**:

N/A

Signed-off-by: Charlie Drage <charlie@charliedrage.com>

* Update tests to use java-openliberty (redhat-developer#3318)

* Removing install script and update other references (redhat-developer#3202)

* Removing installer scripts and references in other scripts and readme

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Removing installer reference from development.adoc

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Adding a message to installer script so as to not break it for existing users

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Removing unused variable which is no longer needed

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Removing installer again

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Removing unused secret directory (redhat-developer#3290)

* devfile delete Integration test on kubernetes cluster (redhat-developer#2913)

* Run devfile delete integration test on kubernetes cluster

* Adding insecure registry in Docker configuration xenial ubuntu

* Fix namespace issue for url create --now (redhat-developer#3321)

* Add --devfile flag support (redhat-developer#3118)

* feat: add --devfile flag support

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: fix gosec G307 issue

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: update error handling

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* style: Update help and error messages

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: Improve performance of error handling

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* style: Improve error message

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: Fix remove file error on Windows

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: Use existing structure to handle temp file

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* refactor: improve code readability and structure

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* docs: update variable comments

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* feat: --devfile value supports http(s)

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* feat: remove --devfile for all other commands

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* feat: add new design for existing devfile support

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: update TestCopyFile test cases

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: refactor file copy util function for test

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: fix TestCopyFile test cases

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: add integration tests for existing devfile

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: gosec issue

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: fix docker url integration tests

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: context support

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: fix docker url integration tests

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* fix: handle edge cases and add related tests

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* refactor: separate spinner for existing devfile

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: fix docker watch tests

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: fix url tests

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* Updating travis env variable and adding docker version info (redhat-developer#3068)

* 'odo login' command should suggest 'odo project list' instead of 'odo projects' (redhat-developer#3262)

* use a more specific error message for when image is not found (redhat-developer#3322)

* use a specific error message for when image is not found

* added amit's changes

* devfile create Interation test on kubernetes cluster using travis CI (redhat-developer#2884)

* Run devfile create Interation test on kubernetes cluster

* Skipping s2i image related test on kubernetes cluster

* Updating url delete to apply `--now` on devfile (redhat-developer#3139)

* Creating a function for setting devfile path

* updating url delete to do devfile push post delete

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Adding URL now flag delete test

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Fixing missing `-f`

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Changing position of copyexample

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Merging url delete with now with create

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Removing old devfilepath logic

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* Adding Devfile flag to url delete

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* CompleteDevfilePath now happens irrespective of now

Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>

* list devfile components catalog in json format (redhat-developer#3264)

* list catalog in json format for devfile components

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* list devfile registries in list

* combined two list into one single list

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* add omitempty

* Fix unsafe data race in ExecuteCommand (redhat-developer#3310)

**What type of PR is this?**

/kind bug

**What does does this PR do / why we need it**:

Fixes a potential flake with regards to when writing to cmdOutput at the
same time that log.ErrorF(...) is reading from it.

**Which issue(s) this PR fixes**:

Closes redhat-developer#2828

**How to test changes / Special notes to the reviewer**:

N/A, honestly not too sure

* Fix Docker Supervisord Vol Initialization (redhat-developer#3129)

* apply stashed supervisord docker changes from PR

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* rebase 1 with master

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Converts v1 devfiles to v2 (redhat-developer#3279)

* Converts v1 devfiles to v2

* Moves init tests to devfilesV1 folder

* Adding oc to bin path for multistage testing (redhat-developer#3351)

* Revert "Adding oc to bin path for multistage testing (redhat-developer#3351)" (redhat-developer#3360)

This reverts commit fa9f7b9.

* resolved the gosec issue failing unit tests (redhat-developer#3358)

* resolved the gosec issue failing unit tests

* resolved typo in the comment

* DRYed the code

* Warn if --app and --all-apps coexist (redhat-developer#2941)

* url list routes and ingress  (redhat-developer#3305)

* list routes and ingress

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* add unit tests

* add integration tests and describe partially works

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* finished unit test and integration for describe urls

* address review comments

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* add more unit tests

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* fix unit test failure

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* fix integration test failure

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* use ownerreference to distinguish real route vs route created from ingress

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* fix integration test

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* address review comment

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* fix a bug

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* fix a bug

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* also test secure state in url describe and list

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* try to avoid G404 error in unit test

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* Fix 'odo version' integration test. (redhat-developer#3326)

* Validate application exist before describe it (redhat-developer#3349)

* Update events (redhat-developer#3370)

**What type of PR is this?**
> Uncomment only one ` /kind` line, and delete the rest.
> For example, `> /kind bug` would simply become: `/kind bug`

/kind documentation
[skip ci]

**What does does this PR do / why we need it**:

Updates the events to list that they happened in the past

**Which issue(s) this PR fixes**:

N/A

**How to test changes / Special notes to the reviewer**:

N/A

Signed-off-by: Charlie Drage <charlie@charliedrage.com>

* Updates the v2 schema to the latest (redhat-developer#3352)

* fix: properly check that odo version contains the server URL (redhat-developer#3365)

* fix: properly check that odo version contains the server URL

Fixes redhat-developer#3342

* fix: simplify test by removing server url regexp check

* Create periodic script for odo periodic job (redhat-developer#3376)

* Adds debug command for devfiles (redhat-developer#3059)

* Adds debug command for devfiles

* Fixes comments and variable names

* Adds devfile debug test on kubernetes cluster

* Fixes adapter code for debug

Signed-off-by: mik-dass <mrinald7@gmail.com>

* Converts v1 debug test devfile to v2

* Moves container arg and command overriding to a new function

* Simplifies conditions in test

* Modifies execDevfile for kubernetes component adapter

* Simplies error checking logic in TestUpdateContainersWithSupervisord

* Removes unnecessary else if conditions

* Installs socat before running tests on kubernetes cluster

* Show error message if no registries are configured (redhat-developer#3339)

* Show error message if no registries are configured

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Clean up

Signed-off-by: John Collier <John.J.Collier@ibm.com>

* Added few supported container images to e2e image test (redhat-developer#3315)

* Fix multiple registry related issues (redhat-developer#3341)

* feat: fix registry issues

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* docs: improve error/help message

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: improve registry tests

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* feat: github raw url conversion support

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: refactor testing output format

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* test: fix breaking tests

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* refactor: add validation for raw url conversion

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* Update dependencies in glide.yaml for make to succeed in building odo binary (redhat-developer#3369)

* Execute `glide update -v` to update the dependencies

* Use ContainerJSON in place of Container struct

* Push support: Event notification support for build and application status for IDE integration for devfile scenarios (redhat-developer#3003)

* Add machine readable event logging support

* Add machine readable event logging support

* Add machine readable event logging support

* Add machine readable event logging support

* Add machine readable event logging support

* Add machine readable event logging support

* Add machine readable event logging support

* Remove --devfile

* Remove incorrect constraint

* Add odo push -o json example

* Rebase and add debug action logging to new methods

* Adding oc binary to bin path for multi stage test infra (redhat-developer#3362)

* Adding oc binary to bin path for multi stage test infra

* Added file permission locally and excluding it from docker file

* Created different dockerfile to avoid master break and proceed with multistage changes

* Update devfile log levels from 3 to 4 to be consistent (redhat-developer#3408)

Signed-off-by: Maysun J Faisal <maysun.j.faisal@ibm.com>

* Design proposal: secure registry support (redhat-developer#3329)

* docs: add secure registry design proposal

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* docs: add create component section

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* Add command design for basic auth

Signed-off-by: jingfu wang <jingfu.j.wang@ibm.com>

* Proposal for odo deploy (redhat-developer#3368)

* docs: Initial design proposal for odo deploy command

Initial design proposal for adding a odo deply command.

This is related to redhat-developer#3300

Signed-off by: Neeraj Laad <neeraj.laad@gmail.com>

* Updated future evolution

Updated future evolution

Signed-off-by: Neeraj Laad <neeraj.laad@gmail.com>

* Updates to design

Signed-off-by: Neeraj Laad <neeraj.laad@gmail.com>

* Update odo-deploy.md

* Updated metadata to attributes

Updated metadata to attributes

* Fixed formatting

Fixed formatting for yaml

* [skip ci] updated design doc

* [skip ci] made credentials flag optional

made credentials flag optional

* [skip ci] clarify the deplyment example

clarify the deplyment example

* [skip ci] Updated proposal to sue buildconfig / kaniko

* [skip ci] update attribites to metadata

* [skip ci] add `alpha.` suffix to metadata keys to indicate this is temporary

* [skip ci] Use COMPONENT_NAME  as placeholder

* Updating script path in Dockerfile for multistage test (redhat-developer#3412)

* Invalid ANSI colouring on Windows when doing devfile push (redhat-developer#3327)

* show catalog component list -o json as before if experimental mode is off (redhat-developer#3399)

Signed-off-by: Stephanie <stephanie.cao@ibm.com>

* removed deprecated and nodejs 8 images from e2e tests and README (redhat-developer#3414)

* removed deprecated and nodejs 8 images from e2e tests

* removed the unsupported images from readme and removed bucharest-gold/centos7-s2i-node from everywhere as the repo has been archived

* adjusted the table

* Update changelog script (redhat-developer#3421)

**What type of PR is this?**
> Uncomment only one ` /kind` line, and delete the rest.
> For example, `> /kind bug` would simply become: `/kind bug`

/kind code-refactoring

**What does does this PR do / why we need it**:

Updates the changelog script since we were having issues with changelog
not completing due to hitting the GitHub API limit.

**Which issue(s) this PR fixes**:

N/A

**How to test changes / Special notes to the reviewer**:

N/A

Signed-off-by: Charlie Drage <charlie@charliedrage.com>

* Release 1.2.3 (redhat-developer#3422)

**What type of PR is this?**
> Uncomment only one ` /kind` line, and delete the rest.
> For example, `> /kind bug` would simply become: `/kind bug`

/kind feature

**What does does this PR do / why we need it**:

Release 1.2.3 of odo

**Which issue(s) this PR fixes**:

N/A

**How to test changes / Special notes to the reviewer**:

N/A

Signed-off-by: Charlie Drage <charlie@charliedrage.com>

* fix 'Timeout out' typo and fix formatting (redhat-developer#3404)

* fix 'Timeout out' typo and fix formating

* fix typo

* pull changes from upstream master

* add wwhrd check execption for knative.dev/pkg/test/...

Co-authored-by: Tomas Kral <tkral@redhat.com>
Co-authored-by: Charlie Drage <charlie@charliedrage.com>
Co-authored-by: Chris Laprun <metacosm@users.noreply.github.com>
Co-authored-by: Dharmit Shah <shahdharmit@gmail.com>
Co-authored-by: Mrinal Das <mrinald7@gmail.com>
Co-authored-by: John Collier <John.J.Collier@ibm.com>
Co-authored-by: Mohammed Ahmed <mohammed.zee1000@gmail.com>
Co-authored-by: Denis Golovin <dgolovin@users.noreply.github.com>
Co-authored-by: ji chen <jichenjc@cn.ibm.com>
Co-authored-by: Priti Kumari <pkumari@redhat.com>
Co-authored-by: Maysun J Faisal <31771087+maysunfaisal@users.noreply.github.com>
Co-authored-by: CameronMcWilliam <Cameron.McWilliam@ibm.com>
Co-authored-by: Amit Rout <arout@redhat.com>
Co-authored-by: Stephanie Cao <stephanie.cao@ibm.com>
Co-authored-by: Zheng Xiao Mei <xmzheng@cn.ibm.com>
Co-authored-by: Aditi Sharma <adsharma@redhat.com>
Co-authored-by: Jonathan West <jgwest@users.noreply.github.com>
Co-authored-by: Jingfu Wang <jingfu.j.wang@ibm.com>
Co-authored-by: Devang Gaur <dgaur@redhat.com>
Co-authored-by: Girish Ramnani <gramnani@redhat.com>
Co-authored-by: Girish Ramnani <girishramnani95@gmail.com>
Co-authored-by: Neeraj Laad <neeraj.laad@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. Required by Prow. lgtm Indicates that a PR is ready to be merged. Required by Prow. ok-to-test Indicates a non-member PR verified by an org member that is safe to test.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants