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

Fix Docker Supervisord Vol Initialization #3129

Merged
merged 2 commits into from
Jun 14, 2020

Conversation

maysunfaisal
Copy link
Contributor

@maysunfaisal maysunfaisal commented May 8, 2020

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

What type of PR is this?
/kind bug
/kind cleanup

What does does this PR do / why we need it:
Docker adapter uses one supervisord volume for all the odo components. However, if the supervisord volume is not initialized properly(for example, when someone presses Ctrl-C during odo push); future odo push is going to fail because supervisord may not have been copied to the volume

This PR:

  • copies the odo-init image to the supervisord volume when component does not exist
  • cleans up init container after vol has been initialized
  • refactor component project vol logic
  • spins up a supervisord vol per odo component instead of one for all odo components
  • delete the supervisord vol on odo delete
  • updated componentExist logic for docker adapter
  • clean up and new unit tests

Which issue(s) this PR fixes:

Fixes #3034
Partially Addresses #3015

How to test changes / Special notes to the reviewer:

  1. odo push and press Ctrl-C soon
  2. Make sure there is a supervisord volume docker volume ls
  3. odo push should succeed now

@openshift-ci-robot openshift-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. Required by Prow. kind/bug Categorizes issue or PR as related to a bug. kind/cleanup labels May 8, 2020
@openshift-ci-robot openshift-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. Required by Prow. label May 9, 2020
@openshift-ci-robot openshift-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. Required by Prow. label May 11, 2020
@maysunfaisal maysunfaisal marked this pull request as ready for review May 12, 2020 16:15
@openshift-ci-robot openshift-ci-robot 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 May 12, 2020
@codecov
Copy link

codecov bot commented May 12, 2020

Codecov Report

Merging #3129 into master will increase coverage by 0.27%.
The diff coverage is 79.90%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #3129      +/-   ##
==========================================
+ Coverage   45.57%   45.84%   +0.27%     
==========================================
  Files         111      110       -1     
  Lines       10972    10876      -96     
==========================================
- Hits         5000     4986      -14     
+ Misses       5483     5416      -67     
+ Partials      489      474      -15     
Impacted Files Coverage Δ
pkg/devfile/adapters/docker/component/utils.go 74.19% <72.13%> (+11.47%) ⬆️
pkg/devfile/adapters/docker/component/adapter.go 74.78% <73.33%> (-2.72%) ⬇️
pkg/lclient/containers.go 72.41% <81.25%> (+1.74%) ⬆️
pkg/devfile/adapters/docker/utils/utils.go 82.82% <100.00%> (+3.84%) ⬆️
pkg/lclient/fakeclient.go 77.98% <100.00%> (+11.05%) ⬆️
pkg/sync/sync.go 45.54% <0.00%> (-2.98%) ⬇️
pkg/devfile/adapters/common/utils.go 52.27% <0.00%> (-2.08%) ⬇️
...g/devfile/adapters/kubernetes/component/adapter.go 30.80% <0.00%> (-0.85%) ⬇️
pkg/envinfo/envinfo.go 60.65% <0.00%> (-0.59%) ⬇️
... and 14 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d04fb14...b93d172. Read the comment docs.

@johnmcollier
Copy link
Member

@maysunfaisal Do we need to copy the supervisord binary on every odo push, or just the odo pushes that require container start/restart?


return projectVolumeName, nil
}

// CreateAndInitSupervisordVolume creates the supervisord volume and initializes
// it with supervisord bootstrap image - assembly files and supervisord binary
Copy link
Member

Choose a reason for hiding this comment

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

Maybe mention that it returns the name of the volume that was created?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

projectVolumeName = projectVols[0].Name
} else if len(projectVols) > 1 {
return errors.Wrapf(err, "Error, multiple source volumes found for component %s", componentName)
return errors.Wrapf(err, "Unable to determine the project source volume for component %s", componentName)
Copy link
Member

Choose a reason for hiding this comment

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

We shouldn't capitalize the beginning of error messages

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

return componentExists, fmt.Errorf("Unable to find source volume for component %s", componentName)
} else if len(projectVols) > 1 {
return componentExists, errors.Wrapf(err, "Error, multiple source volumes found for component %s", componentName)
return componentExists, errors.Wrapf(err, "Unable to determine the project source volume for component %s", componentName)
Copy link
Member

Choose a reason for hiding this comment

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

error message should be lower case

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

// Get the supervisord volume
supervisordLabels := utils.GetSupervisordVolumeLabels()
supervisordVolumes, err := a.Client.GetVolumesByLabel(supervisordLabels)
a.supervisordVolumeName, err = utils.CreateAndInitSupervisordVolume(a.Client)
Copy link
Member

Choose a reason for hiding this comment

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

Couple questions around always initializing the supervisord volume:

  • Can we change it so that it's only on odo pushes that require a container start/restart? If the container is running and we just need to sync the code + exec some command, we shouldn't need to re-init the volume, no?
  • Does running this on every odo push impact performance?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Regd point 2, it takes only 1s when we init volume every time.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

addressed in review commit

@@ -233,6 +234,37 @@ func UpdateComponentWithSupervisord(comp *common.DevfileComponent, runCommand co
}
}

// CreateAndGetProjectVolume creates a project volume if absent and returns the
// name of the created project volume
func CreateAndGetProjectVolume(client lclient.Client, componentName string) (string, error) {
Copy link
Member

Choose a reason for hiding this comment

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

Nit: Maybe we should change the name since we're not always creating a volume? CreateProjectVolumeIfNeeded? Or something similar

Copy link
Member

Choose a reason for hiding this comment

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

Additionally, the only place where this function is called is in docker/adapters/component/utils.go, could we move this function there and also make it unexported?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

do you reckon i should move the supervisord stuff and make it unexported too since its only being used in component utils? 🤔

var projectVolumeName string
projectVolumeLabels := utils.GetProjectVolumeLabels(componentName)
projectVols, err := a.Client.GetVolumesByLabel(projectVolumeLabels)
projectVolumeName, err := utils.CreateAndGetProjectVolume(a.Client, componentName)
Copy link
Member

Choose a reason for hiding this comment

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

I'm wondering (and want your thoughts on this), if CreateAndGetProjectVolume returns an already existing volume (potentially with old/outdated/incomplete source code on it) during first-time push, should it overwrite the contents on the volume?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

so if its a first time push, i.e.; componentExists is false, we can force sync if a volume already exists. Yeah i like the idea, it sounds like we should do it

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it looks like our current master code already covers this.

If its first time push, componentExists = false, we sync. Doesn't matter if we are reusing volume.

if its update component, componentExists = true, we sync

  • if any of the container from devfile component is missing
  • if any of the container needs to be updated
  • if containers does not require update, files changed, file index present, indexer handles it
  • if containers does not require update, files changed, file index absent, indexer handles it.

So looks like i might not need to do anything.

return "", errors.Wrapf(err, "unable to create supervisord volume for component")
}
} else {
supervisordVolumeName = supervisordVolumes[0].Name
Copy link
Member

Choose a reason for hiding this comment

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

What happens if we overwrite the supervisord binary on the volume while another process is copying it to the container?

I guess, would it be better to have one supervisord volume per component, rather than for all of docker?

Copy link
Member

Choose a reason for hiding this comment

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

I guess, would it be better to have one supervisord volume per component, rather than for all of docker?

+100

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Honestly, I was trying to test this, I had the same concerns when writing this PR. I was trying to do simultaneous odo push at the same time. But I couldn't hit the issue.

I guess we can move it a supervisord volume per odo component, to be safe!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

addressed in review commit

if err != nil {
return err
}
if log.IsDebug() {
s.End(true)
}

err = client.RemoveContainer(containerID)
Copy link
Member

Choose a reason for hiding this comment

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

What's the reasoning behind removing the supervisord container?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Everytime we init, the container is left behind..

Even though its exits after initializing the volume, you can see a bunch of init containers when you run docker ps -a

@kadel
Copy link
Member

kadel commented May 13, 2020

Instead of initializing every time could we create some kind of indicator that would tell odo if the initialization was completed or not?
For example, we could just add a file to the volume that would contain the timestamp and odo version. This file would be created as the last step after everything has been copied to the volume.
Odo version can be later used to safely update the content of the supervisord volume if it changes in future odo versions.

@maysunfaisal
Copy link
Contributor Author

maysunfaisal commented May 13, 2020

@kadel we're creating the supervisord volume with supervisord version label.. so if a new version of supervisord was released, a new volume would be created. - https://github.com/openshift/odo/blob/master/pkg/devfile/adapters/docker/utils/utils.go#L165

As for the timestamp idea, yeah i was thinking maybe we can create a flag in the volume that says if supervisord vol was init or not. But, it looks like if we run init supervisord volume everytime, it takes about 1s for the operation to complete. So I am debating if its worth doing it the other way since currently the supervisord init container logic is same for all odo v1, odo v2 kube and odo v2 docker ie; cp from odo-init image container to supervisord volume(in docker) or pvc(in kubernetes)

But maybe @johnmcollier's idea also sounds fair #3129 (comment), we can initialize whenever we need to start the component only, then we wouldn't need to init everytime.

@openshift-ci-robot openshift-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. Required by Prow. label May 14, 2020
@openshift-ci-robot openshift-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. Required by Prow. label May 15, 2020
@maysunfaisal
Copy link
Contributor Author

@johnmcollier @kadel PR is up for re-review, thx

Copy link
Member

@johnmcollier johnmcollier left a comment

Choose a reason for hiding this comment

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

Mostly nits

componentExists := utils.ComponentExists(a.Client, a.ComponentName)
componentExists, err := utils.ComponentExists(a.Client, a.Devfile.Data, a.ComponentName)
if err != nil {
return errors.Wrapf(err, "unable to determine if component exists for component %s", a.ComponentName)
Copy link
Member

Choose a reason for hiding this comment

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

Nit: unable to determine if component %s exists

if typeVal := vol.Labels["type"]; typeVal == "projects" {
vols = append(vols, vol)
}
} else if typeVal := vol.Labels["type"]; typeVal == "projects" {
Copy link
Member

Choose a reason for hiding this comment

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

projects and supervisord should be constants

@@ -80,7 +56,7 @@ func (a Adapter) createComponent() (err error) {
}
dockerVolumeMounts = append(dockerVolumeMounts, volMount)
}
err = a.pullAndStartContainer(dockerVolumeMounts, projectVolumeName, comp)
err = a.pullAndStartContainer(dockerVolumeMounts, a.projectVolumeName, comp)
Copy link
Member

Choose a reason for hiding this comment

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

Nit: If pullAndStartContainer is a function that belongs to the adapter, we don't need to pass in a.projectVolumeName, as we can access it directly.

@@ -138,7 +101,7 @@ func (a Adapter) updateComponent() (componentExists bool, err error) {
log.Infof("\nCreating Docker resources for component %s", a.ComponentName)

// Container doesn't exist, so need to pull its image (to be safe) and start a new container
err = a.pullAndStartContainer(dockerVolumeMounts, projectVolumeName, comp)
err = a.pullAndStartContainer(dockerVolumeMounts, a.projectVolumeName, comp)
Copy link
Member

Choose a reason for hiding this comment

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

Nit: We don't need to pass in a.projectVolumeName, since we can access it as a.projectVolumeName from within pullAndStartContainer too.

@@ -256,7 +219,7 @@ func (a Adapter) startComponent(mounts []mount.Mount, projectVolumeName string,
// Create the docker container
s := log.Spinner("Starting container for " + *comp.Image)
defer s.End(false)
err = a.Client.StartContainer(&containerConfig, &hostConfig, nil)
_, err = a.Client.StartContainer(&containerConfig, &hostConfig, nil)
Copy link
Member

Choose a reason for hiding this comment

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

Just checking: We don't need to be doing anything with the container ID that's returned here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nope, we just return..

We only had to update this func for container id, so that we removed the supervisord init container after starting it, so that it doesn't clutter up docker ps -a

volume = "vol"
supervisordVolume = "supervisord"
projectsVolume = "projects"
projectSourceVolumeName = "odo-project-source"
)

// ComponentExists checks if Docker containers labeled with the specified component name exists
Copy link
Member

Choose a reason for hiding this comment

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

Might want to add a bit to the function description explaining the added component exists logic we discussed on slack. Or a component above the if-block

// CreateAndInitSupervisordVolumeIfReqd creates the supervisord volume and initializes
// it with supervisord bootstrap image - assembly files and supervisord binary
// returns the name of the supervisord volume and an error if present
func CreateAndInitSupervisordVolumeIfReqd(client lclient.Client, componentName string, componentExists bool) (string, error) {
Copy link
Member

Choose a reason for hiding this comment

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

Should we move CreateAndInitSupervisordVolumeIfReqd to the docker/component/utils.go file?

My thinking is that since CreateAndInitSupervisordVolumeIfReqd is only called from the component package, we probably don't need to keep it in a separate package. Then we can unexport it as well.


return supervisordVolumeName, nil
}

// StartBootstrapSupervisordInitContainer pulls the supervisord bootstrap image, mounts the supervisord
// volume, starts the bootstrap container and initializes the supervisord volume via its entrypoint
func StartBootstrapSupervisordInitContainer(client lclient.Client, supervisordVolumeName string) error {
supervisordLabels := GetSupervisordVolumeLabels()
func StartBootstrapSupervisordInitContainer(client lclient.Client, componentName, supervisordVolumeName string) error {
Copy link
Member

Choose a reason for hiding this comment

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

Function can be unexported

@maysunfaisal
Copy link
Contributor Author

/retest

@maysunfaisal
Copy link
Contributor Author

@johnmcollier @kadel Hi 👋 , could you pls take a look at this PR and re-review? I've updated the PR and addressed all the review comments!

@maysunfaisal
Copy link
Contributor Author

/retest

Copy link
Member

@johnmcollier johnmcollier left a comment

Choose a reason for hiding this comment

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

Changes look good and review comments addressed.

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. Required by Prow. label May 27, 2020
@kadel
Copy link
Member

kadel commented May 28, 2020

/approve

@maysunfaisal
Copy link
Contributor Author

/retest

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

24 similar comments
@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-merge-robot openshift-merge-robot merged commit 6cbe763 into redhat-developer:master Jun 14, 2020
cdrage pushed a commit to cdrage/odo that referenced this pull request Jun 17, 2020
* 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>
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>
@rm3l rm3l added the area/refactoring Issues or PRs related to code refactoring label Jun 16, 2023
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. area/refactoring Issues or PRs related to code refactoring kind/bug Categorizes issue or PR as related to a bug. 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.

[Docker] Hard to recover if supervisord volume is empty/corrupted
8 participants