Repository: openshift/odo
Pull request #3949 (2020-09-14 14:16:20)

Remove the namespace flag from odo
Signed-off-by: John Collier <jcollier@redhat.com>

**What type of PR is this?**
/kind cleanup

**What does does this PR do / why we need it**:
This PR removes the old `--namespace` flag from `odo push`. As `odo push` already supported the `--project` flag, this PR just removes the code that enables the namespace flag and updates some tests accordingly.

**Which issue(s) this PR fixes**:

Fixes https://github.com/openshift/odo/issues/3948

**PR acceptance criteria**:

- [ ] Unit test 

- [x] Integration test 

- [ ] Documentation 

- [x] I have read the [test guidelines](https://github.com/openshift/odo/blob/master/docs/dev/test-architecture.adoc)

**How to test changes / Special notes to the reviewer**:
1. `odo push --namespace` doesn't work anymore (invalid flag)
2. `odo push --project <project>` still works

openshift-ci-robot: [APPROVALNOTIFIER] This PR is **NOT APPROVED**

This pull-request has been approved by:
To complete the [pull request process](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process), please assign **cdrage**
You can assign the PR to them by writing `/assign @cdrage` in a comment when ready.

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=openshift%2Fodo).

<details open>
Needs approval from an approver in each of these files:

- **[OWNERS](https://github.com/openshift/odo/blob/master/OWNERS)**

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":["cdrage"]} -->
johnmcollier: @prietyc123 Updated
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | e7f97196e99d5918187e8bfe5f57c886ed275ed7 | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1305523656763379712) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
girishramnani: /approve
openshift-ci-robot: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/openshift/odo/pull/3949#issuecomment-692517463" title="Approved">girishramnani</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=openshift%2Fodo).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/openshift/odo/blob/master/OWNERS)~~ [girishramnani]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
codecov[bot]: # [Codecov](https://codecov.io/gh/openshift/odo/pull/3949?src=pr&el=h1) Report
> Merging [#3949](https://codecov.io/gh/openshift/odo/pull/3949?src=pr&el=desc) into [master](https://codecov.io/gh/openshift/odo/commit/3fcd3670e8320d73fdc14b67823b46ce14c8459b?el=desc) will **increase** coverage by `0.00%`.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/openshift/odo/pull/3949/graphs/tree.svg?width=650&height=150&src=pr&token=mebOWbUuQ4)](https://codecov.io/gh/openshift/odo/pull/3949?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master    #3949   +/-   ##
=======================================
  Coverage   44.82%   44.83%           
=======================================
  Files         143      143           
  Lines       13906    13908    +2     
=======================================
+ Hits         6234     6236    +2     
  Misses       7082     7082           
  Partials      590      590           
```


| [Impacted Files](https://codecov.io/gh/openshift/odo/pull/3949?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pkg/preference/preference.go](https://codecov.io/gh/openshift/odo/pull/3949/diff?src=pr&el=tree#diff-cGtnL3ByZWZlcmVuY2UvcHJlZmVyZW5jZS5nbw==) | `59.47% <0.00%> (+0.43%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/openshift/odo/pull/3949?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/openshift/odo/pull/3949?src=pr&el=footer). Last update [3fcd367...46435f4](https://codecov.io/gh/openshift/odo/pull/3949?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1305878270817865728) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1305951672014475264) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306017492447006720) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306066181345513472) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306069445063479296) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306072756231606272) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306076015604273152) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306079241707720704) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306082519195586560) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306095618111836160) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306098879158030336) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306102155081420800) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306105421441798144) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306108759520579584) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306112162422329344) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
openshift-bot: /retest

Please review the [full test history](https://prow.ci.openshift.org/pr-history/?org=openshift&repo=odo&pr=3949) for this PR and help us cut down flakes.
openshift-ci-robot: @johnmcollier: The following test **failed**, say `/retest` to rerun all failed tests:

Test name | Commit | Details | Rerun command
--- | --- | --- | ---
ci/prow/v4.5-integration-e2e | 46435f44ac1fcdc4a8dc486c548d5cdb41217e1b | [link](https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_odo/3949/pull-ci-openshift-odo-master-v4.5-integration-e2e/1306118577278947328) | `/test v4.5-integration-e2e`

[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=odo&pr=3949). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:johnmcollier).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
mik-dass: PR needs rebase
maysunfaisal: re added /lgtm after rebase
kadel: > re added /lgtm after rebase

the command needs to be on a separate line ;-)

/lgtm
openshift-ci-robot: New changes are detected. LGTM label has been removed.
maysunfaisal: re-add lgtm after rebase
/lgtm

Patch:
diff --git a/docs/public/community.adoc b/docs/public/community.adoc
index 17b68ef1f..2f7fd54a8 100644
--- a/docs/public/community.adoc
+++ b/docs/public/community.adoc
@@ -55,8 +55,7 @@ https://groups.google.com/forum/#!forum/odo-dev[odo-dev Google group].
 
 === Where do I start?
 
-odo is a complex project that touches both Kubernetes, OpenShift and
-Docker. We have a list of
+odo is a complex project that touches both Kubernetes and OpenShift. We have a list of
 https://github.com/openshift/odo/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22[good
 first issues] to help start.
 
diff --git a/docs/public/deploying-a-devfile-using-odo.adoc b/docs/public/deploying-a-devfile-using-odo.adoc
index df9883c0c..e04b3971b 100644
--- a/docs/public/deploying-a-devfile-using-odo.adoc
+++ b/docs/public/deploying-a-devfile-using-odo.adoc
@@ -10,7 +10,7 @@ With a devfile you can describe:
 * A list of pre-defined commands that can be run
 * Projects to initially clone
 
-odo takes this devfile and transforms it into a workspace of multiple containers running on OpenShift, Kubernetes or Docker.
+odo takes this devfile and transforms it into a workspace of multiple containers running on Kubernetes or OpenShift.
 
 Devfiles are YAML files with a defined https://devfile.github.io/devfile/_attachments/api-reference.html[schema].
 
diff --git a/docs/public/installing-odo.adoc b/docs/public/installing-odo.adoc
index 6fae53420..22ba7220b 100644
--- a/docs/public/installing-odo.adoc
+++ b/docs/public/installing-odo.adoc
@@ -1,8 +1,8 @@
 = Installing odo
 
-The following section describes how to install `odo` on different platforms using the CLI.
+The following section describes how to install `odo` on different platforms via CLI as well as IDEs.
 
-= Installing v2.0.0-beta-1 of odo
+= Installing the odo command-line tool (v2.0.0-beta-1)
 
 v2.0.0-beta-1 of odo uses **devfile** as its default deployment mechanism.
 
@@ -10,18 +10,20 @@ v2.0.0-beta-1 of odo uses **devfile** as its default deployment mechanism.
 
 === Binary installation
 
+[source,sh]
 ----
-# curl -L https://github.com/openshift/odo/releases/download/v2.0.0-beta-1/odo-linux-amd64 -o /usr/local/bin/odo
-# chmod +x /usr/local/bin/odo
+  # curl -L https://github.com/openshift/odo/releases/download/v2.0.0-beta-1/odo-linux-amd64 -o /usr/local/bin/odo
+  # chmod +x /usr/local/bin/odo
 ----
 
 == Installing odo on macOS
 
 === Binary installation
 
+[source,sh]
 ----
-# curl -L https://github.com/openshift/odo/releases/download/v2.0.0-beta-1/odo-darwin-amd64 -o /usr/local/bin/odo
-# chmod +x /usr/local/bin/odo
+  # curl -L https://github.com/openshift/odo/releases/download/v2.0.0-beta-1/odo-darwin-amd64 -o /usr/local/bin/odo
+  # chmod +x /usr/local/bin/odo
 ----
 
 == Installing odo on Windows
@@ -51,8 +53,17 @@ The following example demonstrates how to set up a path variable. Your binaries
 . Select *Path* from the *Variable* section and click *Edit*.
 . Click *New* and type `C:\go-bin` into the field or click *Browse* and select the directory, and click *OK*.
 
-= Installing v1.2.5 of odo
+= Installing odo in Visual Studio Code (VSCode)
 
-v1.2.5 of odo uses **Source-to-Image** as its default deployment mechanism.
+The https://marketplace.visualstudio.com/items?itemName=redhat.vscode-openshift-connector[OpenShift VSCode extension] uses both `odo` and the `oc` binary to interact with your Kubernetes or OpenShift cluster.
 
-Visit the latest link:https://docs.openshift.com/container-platform/4.5/cli_reference/developer_cli_odo/installing-odo.html[OpenShift documentation] for installation details.
+== Plugin installation
+
+. Launch VS Code Quick Open (Ctrl+P)
+
+. Paste the following command:
++
+[source,sh]
+----
+  $ ext install redhat.vscode-openshift-connector
+----
diff --git a/go.mod b/go.mod
index 4e6c85b1f..17cbed70a 100644
--- a/go.mod
+++ b/go.mod
@@ -58,6 +58,7 @@ require (
 )
 
 replace (
+	bitbucket.org/ww/goautoneg => github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d
 	github.com/apcera/gssapi => github.com/openshift/gssapi v0.0.0-20161010215902-5fb4217df13b
 	github.com/containers/image => github.com/openshift/containers-image v0.0.0-20190130162819-76de87591e9d
 	github.com/docker/docker => github.com/docker/docker v17.12.0-ce-rc1.0.20200309214505-aa6a9891b09c+incompatible
diff --git a/go.sum b/go.sum
index c9960a8c9..239000769 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,4 @@
 bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM=
-bitbucket.org/ww/goautoneg v0.0.0-20120707110453-75cd24fc2f2c/go.mod h1:1vhO7Mn/FZMgOgDVGLy5X1mE6rq1HbkBdkF/yj8zkcg=
 bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
diff --git a/pkg/odo/cli/component/common_push.go b/pkg/odo/cli/component/common_push.go
index bfdd34e27..a15416850 100644
--- a/pkg/odo/cli/component/common_push.go
+++ b/pkg/odo/cli/component/common_push.go
@@ -358,7 +358,7 @@ func retrieveKubernetesDefaultNamespace() (string, error) {
 	return client.Namespace, nil
 }
 
-// retrieveCmdNamespace retrieves the namespace from project or namespace, if neither of those are available
+// retrieveCmdNamespace retrieves the namespace from project flag, if unset
 // we revert to the default namespace available from Kubernetes
 func retrieveCmdNamespace(cmd *cobra.Command) (string, error) {
 	var componentNamespace string
@@ -370,12 +370,6 @@ func retrieveCmdNamespace(cmd *cobra.Command) (string, error) {
 		if err != nil {
 			return "", err
 		}
-	} else if cmd.Flags().Changed("namespace") {
-		// For "odo push" check to see if project has been passed
-		componentNamespace, err = cmd.Flags().GetString("namespace")
-		if err != nil {
-			return "", err
-		}
 	} else {
 		componentNamespace, err = retrieveKubernetesDefaultNamespace()
 		if err != nil {
diff --git a/pkg/odo/cli/component/push.go b/pkg/odo/cli/component/push.go
index 36602b081..05b4a1ce5 100644
--- a/pkg/odo/cli/component/push.go
+++ b/pkg/odo/cli/component/push.go
@@ -245,7 +245,6 @@ func NewCmdPush(name, fullName string) *cobra.Command {
 	pushCmd.Flags().BoolVar(&po.pushSource, "source", false, "Use source flag to only push latest source on to cluster")
 	pushCmd.Flags().BoolVarP(&po.forceBuild, "force-build", "f", false, "Use force-build flag to re-sync the entire source code and re-build the component")
 
-	pushCmd.Flags().StringVar(&po.namespace, "namespace", "", "Namespace to push the component to")
 	pushCmd.Flags().StringVar(&po.devfileInitCommand, "init-command", "", "Devfile Init Command to execute")
 	pushCmd.Flags().StringVar(&po.devfileBuildCommand, "build-command", "", "Devfile Build Command to execute")
 	pushCmd.Flags().StringVar(&po.devfileRunCommand, "run-command", "", "Devfile Run Command to execute")
diff --git a/pkg/odo/cli/url/describe.go b/pkg/odo/cli/url/describe.go
deleted file mode 100644
index fa9f13ae7..000000000
--- a/pkg/odo/cli/url/describe.go
+++ /dev/null
@@ -1,205 +0,0 @@
-package url
-
-import (
-	"fmt"
-	"os"
-	"path/filepath"
-	"strconv"
-	"text/tabwriter"
-
-	routev1 "github.com/openshift/api/route/v1"
-	"github.com/openshift/odo/pkg/config"
-	"github.com/openshift/odo/pkg/devfile"
-	adaptersCommon "github.com/openshift/odo/pkg/devfile/adapters/common"
-	"github.com/openshift/odo/pkg/envinfo"
-	"github.com/openshift/odo/pkg/lclient"
-	"github.com/openshift/odo/pkg/log"
-	"github.com/openshift/odo/pkg/machineoutput"
-	"github.com/openshift/odo/pkg/occlient"
-	"github.com/openshift/odo/pkg/odo/cli/component"
-	"github.com/openshift/odo/pkg/odo/genericclioptions"
-	odoutil "github.com/openshift/odo/pkg/odo/util"
-	"github.com/openshift/odo/pkg/odo/util/completion"
-	"github.com/openshift/odo/pkg/odo/util/pushtarget"
-	"github.com/openshift/odo/pkg/url"
-	"github.com/openshift/odo/pkg/util"
-	"github.com/pkg/errors"
-	"github.com/spf13/cobra"
-	ktemplates "k8s.io/kubectl/pkg/util/templates"
-)
-
-// DescribeRecommendedCommandName is the recommended describe command name
-const describeRecommendedCommandName = "describe"
-
-var describeExample = ktemplates.Examples(`  # Describe a URL
-%[1]s myurl
-`)
-
-// URLDescribeOptions encapsulates the options for the odo url describe command
-type URLDescribeOptions struct {
-	localConfigInfo  *config.LocalConfigInfo
-	componentContext string
-	url              string
-	*genericclioptions.Context
-	devfilePath string
-	isDevFile   bool
-}
-
-// NewURLDescribeOptions creates a new NewURLDescribeOptions instance
-func NewURLDescribeOptions() *URLDescribeOptions {
-	return &URLDescribeOptions{&config.LocalConfigInfo{}, "", "", &genericclioptions.Context{}, "", false}
-}
-
-// Complete completes URLDescribeOptions after they've been Listed
-func (o *URLDescribeOptions) Complete(name string, cmd *cobra.Command, args []string) (err error) {
-	o.devfilePath = filepath.Join(o.componentContext, component.DevfilePath)
-
-	if util.CheckPathExists(o.devfilePath) {
-		o.Context = genericclioptions.NewDevfileContext(cmd)
-		o.EnvSpecificInfo, err = envinfo.NewEnvSpecificInfo(o.componentContext)
-	} else {
-		o.Context = genericclioptions.NewContext(cmd)
-		o.localConfigInfo, err = config.NewLocalConfigInfo(o.componentContext)
-	}
-	if err != nil {
-		return errors.Wrap(err, "failed intiating local config")
-	}
-	o.url = args[0]
-	return
-}
-
-// Validate validates the URLDescribeOptions based on completed values
-func (o *URLDescribeOptions) Validate() (err error) {
-	return odoutil.CheckOutputFlag(o.OutputFlag)
-}
-
-// Run contains the logic for the odo url describe command
-func (o *URLDescribeOptions) Run() (err error) {
-	if util.CheckPathExists(o.devfilePath) {
-		if pushtarget.IsPushTargetDocker() {
-			client, err := lclient.New()
-			if err != nil {
-				return err
-			}
-			u, err := url.GetContainerURL(client, o.EnvSpecificInfo, o.url, o.EnvSpecificInfo.GetName())
-			if err != nil {
-				return err
-			}
-
-			if log.IsJSON() {
-				machineoutput.OutputSuccess(u)
-			} else {
-				tabWriterURL := tabwriter.NewWriter(os.Stdout, 5, 2, 3, ' ', tabwriter.TabIndent)
-				fmt.Fprintln(tabWriterURL, "NAME", "\t", "STATE", "\t", "URL", "\t", "PORT")
-				var urlString string
-				if u.Status.State == url.StateTypeNotPushed {
-					// to be consistent with URL for ingress and routes
-					// if not pushed, display URl as ://
-					urlString = "://"
-				} else {
-					urlString = fmt.Sprintf("%s:%s", u.Spec.Host, strconv.Itoa(u.Spec.ExternalPort))
-				}
-				// are there changes between local and cluster states?
-				outOfSync := false
-				fmt.Fprintln(tabWriterURL, u.Name, "\t", u.Status.State, "\t", urlString, "\t", u.Spec.Port)
-				if u.Status.State != url.StateTypePushed {
-					outOfSync = true
-				}
-				tabWriterURL.Flush()
-				if outOfSync {
-					log.Info("There are local changes. Please run 'odo push'.")
-				}
-			}
-		} else {
-			componentName := o.EnvSpecificInfo.GetName()
-			oclient, err := occlient.New()
-			if err != nil {
-				return err
-			}
-			oclient.Namespace = o.KClient.Namespace
-			routeSupported, err := oclient.IsRouteSupported()
-			if err != nil {
-				return err
-			}
-
-			devObj, err := devfile.ParseAndValidate(o.devfilePath)
-			if err != nil {
-				return errors.Wrap(err, "fail to parse the devfile")
-			}
-			containerComponents := adaptersCommon.GetDevfileContainerComponents(devObj.Data)
-			u, err := url.GetIngressOrRoute(oclient, o.KClient, o.EnvSpecificInfo, o.url, containerComponents, componentName, routeSupported)
-			if err != nil {
-				return err
-			}
-			if log.IsJSON() {
-				machineoutput.OutputSuccess(u)
-			} else {
-				tabWriterURL := tabwriter.NewWriter(os.Stdout, 5, 2, 3, ' ', tabwriter.TabIndent)
-				fmt.Fprintln(tabWriterURL, "NAME", "\t", "STATE", "\t", "URL", "\t", "PORT", "\t", "SECURE", "\t", "KIND")
-
-				// are there changes between local and cluster states?
-				outOfSync := false
-				if u.Spec.Kind == envinfo.ROUTE {
-					fmt.Fprintln(tabWriterURL, u.Name, "\t", u.Status.State, "\t", url.GetURLString(u.Spec.Protocol, u.Spec.Host, "", false), "\t", u.Spec.Port, "\t", u.Spec.Secure, "\t", u.Spec.Kind)
-				} else {
-					fmt.Fprintln(tabWriterURL, u.Name, "\t", u.Status.State, "\t", url.GetURLString(url.GetProtocol(routev1.Route{}, url.ConvertIngressURLToIngress(u, componentName)), "", u.Spec.Host, false), "\t", u.Spec.Port, "\t", u.Spec.Secure, "\t", u.Spec.Kind)
-				}
-				if u.Status.State != url.StateTypePushed {
-					outOfSync = true
-				}
-				tabWriterURL.Flush()
-				if outOfSync {
-					log.Info("There are local changes. Please run 'odo push'.")
-				}
-			}
-		}
-	} else {
-		u, err := url.Get(o.Client, o.localConfigInfo, o.url, o.Application)
-		if err != nil {
-			return err
-		}
-
-		if log.IsJSON() {
-			machineoutput.OutputSuccess(u)
-		} else {
-
-			tabWriterURL := tabwriter.NewWriter(os.Stdout, 5, 2, 3, ' ', tabwriter.TabIndent)
-			fmt.Fprintln(tabWriterURL, "NAME", "\t", "STATE", "\t", "URL", "\t", "PORT")
-
-			// are there changes between local and cluster states?
-			outOfSync := false
-			fmt.Fprintln(tabWriterURL, u.Name, "\t", u.Status.State, "\t", url.GetURLString(u.Spec.Protocol, u.Spec.Host, "", false), "\t", u.Spec.Port)
-			if u.Status.State != url.StateTypePushed {
-				outOfSync = true
-			}
-			tabWriterURL.Flush()
-			if outOfSync {
-				log.Info("There are local changes. Please run 'odo push'.")
-			}
-		}
-	}
-
-	return
-}
-
-// NewCmdURLDescribe implements the odo url describe command.
-func NewCmdURLDescribe(name, fullName string) *cobra.Command {
-	o := NewURLDescribeOptions()
-	urlDescribeCmd := &cobra.Command{
-		Use:         name + " [url name]",
-		Short:       "Describe a URL",
-		Long:        `Describe a URL`,
-		Example:     fmt.Sprintf(describeExample, fullName),
-		Args:        cobra.ExactArgs(1),
-		Annotations: map[string]string{"machineoutput": "json", "command": "url"},
-		Run: func(cmd *cobra.Command, args []string) {
-			genericclioptions.GenericRun(o, cmd, args)
-		},
-	}
-	urlDescribeCmd.SetUsageTemplate(odoutil.CmdUsageTemplate)
-	genericclioptions.AddContextFlag(urlDescribeCmd, &o.componentContext)
-	completion.RegisterCommandHandler(urlDescribeCmd, completion.URLCompletionHandler)
-	completion.RegisterCommandFlagHandler(urlDescribeCmd, "context", completion.FileCompletionHandler)
-
-	return urlDescribeCmd
-}
diff --git a/pkg/odo/cli/url/url.go b/pkg/odo/cli/url/url.go
index 19babb234..f8fed463e 100644
--- a/pkg/odo/cli/url/url.go
+++ b/pkg/odo/cli/url/url.go
@@ -24,22 +24,21 @@ func NewCmdURL(name, fullName string) *cobra.Command {
 	urlCreateCmd := NewCmdURLCreate(createRecommendedCommandName, odoutil.GetFullName(fullName, createRecommendedCommandName))
 	urlDeleteCmd := NewCmdURLDelete(deleteRecommendedCommandName, odoutil.GetFullName(fullName, deleteRecommendedCommandName))
 	urlListCmd := NewCmdURLList(listRecommendedCommandName, odoutil.GetFullName(fullName, listRecommendedCommandName))
-	urlDescribeCmd := NewCmdURLDescribe(describeRecommendedCommandName, odoutil.GetFullName(fullName, describeRecommendedCommandName))
 	urlCmd := &cobra.Command{
 		Use:   name,
 		Short: urlShortDesc,
 		Long:  urlLongDesc,
-		Example: fmt.Sprintf("%s\n\n%s\n\n%s\n\n%s",
+		Example: fmt.Sprintf("%s\n\n%s\n\n%s",
 			urlCreateCmd.Example,
 			urlDeleteCmd.Example,
 			urlListCmd.Example,
-			urlDescribeCmd.Example),
+		),
 	}
 
 	// Add a defined annotation in order to appear in the help menu
 	urlCmd.Annotations = map[string]string{"command": "main"}
 	urlCmd.SetUsageTemplate(odoutil.CmdUsageTemplate)
-	urlCmd.AddCommand(urlCreateCmd, urlDeleteCmd, urlListCmd, urlDescribeCmd)
+	urlCmd.AddCommand(urlCreateCmd, urlDeleteCmd, urlListCmd)
 
 	return urlCmd
 }
diff --git a/pkg/url/url.go b/pkg/url/url.go
index ae2535464..6466c7976 100644
--- a/pkg/url/url.go
+++ b/pkg/url/url.go
@@ -49,47 +49,6 @@ func (urls URLList) Get(urlName string) URL {
 
 }
 
-// Get returns URL definition for given URL name
-func Get(client *occlient.Client, localConfig *config.LocalConfigInfo, urlName string, applicationName string) (URL, error) {
-	remoteUrlName, err := util.NamespaceOpenShiftObject(urlName, applicationName)
-	if err != nil {
-		return URL{}, errors.Wrapf(err, "unable to create namespaced name")
-	}
-
-	// Check whether remote already created the route
-	remoteExist := true
-	route, err := client.GetRoute(remoteUrlName)
-	if err != nil {
-		remoteExist = false
-	}
-
-	localConfigURLs := localConfig.GetURL()
-	for _, configURL := range localConfigURLs {
-		localURL := ConvertConfigURL(configURL)
-		// search local URL, if it exist in local, update state with remote status
-		if localURL.Name == urlName {
-			if remoteExist {
-				clusterURL := getMachineReadableFormat(*route)
-				clusterURL.Status.State = StateTypePushed
-				return clusterURL, nil
-			} else {
-				localURL.Status.State = StateTypeNotPushed
-				return localURL, nil
-			}
-		}
-	}
-
-	if err == nil && remoteExist {
-		// Remote exist, but not in local, so it's deleted status
-		clusterURL := getMachineReadableFormat(*route)
-		clusterURL.Status.State = StateTypeLocallyDeleted
-		return clusterURL, nil
-	}
-
-	// can't find the URL in local and remote
-	return URL{}, errors.New(fmt.Sprintf("the url %v does not exist", urlName))
-}
-
 // GetIngressOrRoute returns ingress/route spec for given URL name
 func GetIngressOrRoute(client *occlient.Client, kClient *kclient.Client, envSpecificInfo *envinfo.EnvSpecificInfo, urlName string, containerComponents []common.DevfileComponent, componentName string, routeSupported bool) (URL, error) {
 	remoteExist := true
@@ -190,62 +149,6 @@ func GetIngressOrRoute(client *occlient.Client, kClient *kclient.Client, envSpec
 	return URL{}, errors.New(fmt.Sprintf("the url %v does not exist", urlName))
 }
 
-// GetContainer returns Docker URL definition for given URL name
-func GetContainerURL(client *lclient.Client, envSpecificInfo *envinfo.EnvSpecificInfo, urlName string, componentName string) (URL, error) {
-	localURLs := envSpecificInfo.GetURL()
-	containers, err := dockerutils.GetComponentContainers(*client, componentName)
-	if err != nil {
-		return URL{}, errors.Wrap(err, "unable to get component containers")
-	}
-	var remoteExist = false
-	var dockerURL URL
-	// iterating through each container's HostConfig, generate and cache the dockerURL if found a match urlName
-	for _, c := range containers {
-		containerJSON, err := client.Client.ContainerInspect(client.Context, c.ID)
-		if err != nil {
-			return URL{}, err
-		}
-		for internalPort, portbinding := range containerJSON.HostConfig.PortBindings {
-			remoteURLName := containerJSON.Config.Labels[internalPort.Port()]
-			if remoteURLName != urlName {
-				continue
-			}
-			// found urlName in Docker container's config
-			remoteExist = true
-			externalport, err := strconv.Atoi(portbinding[0].HostPort)
-			if err != nil {
-				return URL{}, err
-			}
-			dockerURL = getMachineReadableFormatDocker(internalPort.Int(), externalport, portbinding[0].HostIP, remoteURLName)
-		}
-	}
-
-	// iterating through URLs in local env.yaml
-	for _, localurl := range localURLs {
-		if localurl.Kind != envinfo.DOCKER || localurl.Name != urlName {
-			continue
-		}
-		localURL := getMachineReadableFormatDocker(localurl.Port, localurl.ExposedPort, dockercomponent.LocalhostIP, localurl.Name)
-		// found urlName in local env file
-		if remoteExist {
-			// URL is in both env file and Docker HostConfig
-			localURL.Status.State = StateTypePushed
-			return localURL, nil
-		} else {
-			// URL only exists in local env file
-			localURL.Status.State = StateTypeNotPushed
-			return localURL, nil
-		}
-	}
-	// URL only exists in pushed Docker container
-	if remoteExist {
-		dockerURL.Status.State = StateTypeLocallyDeleted
-		return dockerURL, nil
-	}
-	// can't find the URL in local env.yaml or Docker containers
-	return URL{}, errors.New(fmt.Sprintf("the url %v does not exist", urlName))
-}
-
 // Delete deletes a URL
 func Delete(client *occlient.Client, kClient *kclient.Client, urlName string, applicationName string, urlType envinfo.URLKind) error {
 	if urlType == envinfo.INGRESS {


Test patch:
diff --git a/pkg/url/url_test.go b/pkg/url/url_test.go
index b5d85d265..95a841dd2 100644
--- a/pkg/url/url_test.go
+++ b/pkg/url/url_test.go
@@ -1977,98 +1977,6 @@ func TestListDockerURL(t *testing.T) {
 	}
 }
 
-func TestGetContainerURL(t *testing.T) {
-	fakeClient := lclient.FakeNew()
-	fakeErrorClient := lclient.FakeErrorNew()
-	testURL1 := envinfo.EnvInfoURL{Name: "testurl1", Port: 8080, ExposedPort: 56789, Kind: "docker"}
-	testURL2 := envinfo.EnvInfoURL{Name: "testurl2", Port: 8080, ExposedPort: 54321, Kind: "docker"}
-	testURL3 := envinfo.EnvInfoURL{Name: "testurl3", Port: 8080, ExposedPort: 65432, Kind: "docker"}
-	esi := &envinfo.EnvSpecificInfo{}
-	err := esi.SetConfiguration("url", testURL1)
-	if err != nil {
-		// discard the error, since no physical file to write
-		t.Log("Expected error since no physical env file to write")
-	}
-	err = esi.SetConfiguration("url", testURL2)
-	if err != nil {
-		// discard the error, since no physical file to write
-		t.Log("Expected error since no physical env file to write")
-	}
-	tests := []struct {
-		name      string
-		client    *lclient.Client
-		component string
-		urlName   string
-		wantURL   URL
-		wantErr   bool
-	}{
-		{
-			name:      "Case 1: Successfully retrieve the not pushed URL object",
-			client:    fakeClient,
-			component: "golang",
-			urlName:   testURL1.Name,
-			wantURL: URL{
-				TypeMeta:   metav1.TypeMeta{Kind: "url", APIVersion: "odo.dev/v1alpha1"},
-				ObjectMeta: metav1.ObjectMeta{Name: testURL1.Name},
-				Spec:       URLSpec{Host: dockercomponent.LocalhostIP, Port: testURL1.Port, ExternalPort: testURL1.ExposedPort},
-				Status: URLStatus{
-					State: StateTypeNotPushed,
-				},
-			},
-			wantErr: false,
-		},
-		{
-			name:      "Case 2: Successfully retrieve the pushed URL object",
-			client:    fakeClient,
-			component: "golang",
-			urlName:   testURL2.Name,
-			wantURL: URL{
-				TypeMeta:   metav1.TypeMeta{Kind: "url", APIVersion: "odo.dev/v1alpha1"},
-				ObjectMeta: metav1.ObjectMeta{Name: testURL2.Name},
-				Spec:       URLSpec{Host: dockercomponent.LocalhostIP, Port: testURL2.Port, ExternalPort: testURL2.ExposedPort},
-				Status: URLStatus{
-					State: StateTypePushed,
-				},
-			},
-			wantErr: false,
-		},
-		{
-			name:      "Case 3: Successfully retrieve the locally deleted URL object",
-			client:    fakeClient,
-			component: "golang",
-			urlName:   testURL3.Name,
-			wantURL: URL{
-				TypeMeta:   metav1.TypeMeta{Kind: "url", APIVersion: "odo.dev/v1alpha1"},
-				ObjectMeta: metav1.ObjectMeta{Name: testURL3.Name},
-				Spec:       URLSpec{Host: dockercomponent.LocalhostIP, Port: testURL3.Port, ExternalPort: testURL3.ExposedPort},
-				Status: URLStatus{
-					State: StateTypeLocallyDeleted,
-				},
-			},
-			wantErr: false,
-		},
-		{
-			name:      "Case 4: Error retrieving the URL object",
-			client:    fakeErrorClient,
-			component: "golang",
-			urlName:   "",
-			wantURL:   URL{},
-			wantErr:   true,
-		},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			url, err := GetContainerURL(fakeClient, esi, tt.urlName, tt.component)
-			if !tt.wantErr == (err != nil) {
-				t.Errorf("expected %v, got %v", tt.wantErr, err)
-			}
-			if !reflect.DeepEqual(url, tt.wantURL) {
-				t.Errorf("Expected %v, got %v", tt.wantURL, url)
-			}
-		})
-	}
-}
-
 func TestListIngressAndRoute(t *testing.T) {
 	componentName := "testcomponent"
 	containerName := "testcontainer"
diff --git a/tests/integration/cmd_url_test.go b/tests/integration/cmd_url_test.go
index 3c7bbf4bc..81a1f38d8 100644
--- a/tests/integration/cmd_url_test.go
+++ b/tests/integration/cmd_url_test.go
@@ -95,47 +95,6 @@ var _ = Describe("odo url command tests", func() {
 		})
 	})
 
-	Context("Describing urls", func() {
-		It("should describe appropriate URLs and push message", func() {
-			var stdout string
-			url1 := helper.RandString(5)
-			componentName := helper.RandString(6)
-			helper.CmdShouldPass("odo", "create", "--s2i", "nodejs", "--context", context, "--project", project, componentName, "--ref", "master", "--git", "https://github.com/openshift/nodejs-ex", "--port", "8080,8000")
-
-			helper.CmdShouldPass("odo", "url", "create", url1, "--port", "8080", "--context", context)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1, "--context", context)
-			helper.MatchAllInOutput(stdout, []string{url1, "Not Pushed", url1, "odo push"})
-
-			helper.CmdShouldPass("odo", "push", "--context", context)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1, "--context", context)
-			helper.MatchAllInOutput(stdout, []string{url1, "Pushed"})
-			helper.DontMatchAllInOutput(stdout, []string{"Not Pushed", "odo push"})
-
-			helper.CmdShouldPass("odo", "url", "delete", url1, "-f", "--context", context)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1, "--context", context)
-			helper.MatchAllInOutput(stdout, []string{url1, "Locally Deleted", url1, "odo push"})
-		})
-
-		It("should be able to describe a url in CLI format and machine readable json format for a secure url", func() {
-			helper.CmdShouldPass("odo", "create", "--s2i", "nodejs", "nodejs", "--app", "myapp", "--project", project, "--git", "https://github.com/openshift/nodejs-ex", "--context", context)
-			helper.CmdShouldPass("odo", "url", "create", "myurl", "--secure", "--context", context)
-
-			actualURLDescribeJSON := helper.CmdShouldPass("odo", "url", "describe", "myurl", "-o", "json", "--context", context)
-			desiredURLDescribeJSON := `{"kind":"url","apiVersion":"odo.dev/v1alpha1","metadata":{ "name": "myurl","creationTimestamp": null},"spec":{"port": 8080,"secure": true,"path": "/", "kind": "route"},"status": {"state": "Not Pushed"}}`
-			Expect(desiredURLDescribeJSON).Should(MatchJSON(actualURLDescribeJSON))
-
-			helper.CmdShouldPass("odo", "push", "--context", context)
-
-			// odo url describe -o json
-			actualURLDescribeJSON = helper.CmdShouldPass("odo", "url", "describe", "myurl", "-o", "json", "--context", context)
-			// get the route URL
-			fullURLPath := helper.DetermineRouteURL(context)
-			pathNoHTTP := strings.Split(fullURLPath, "//")[1]
-			desiredURLDescribeJSON = fmt.Sprintf(`{"kind":"url","apiVersion":"odo.dev/v1alpha1","metadata":{ "name": "myurl","creationTimestamp": null},"spec":{"host":"%s","protocol": "https","port": 8080,"secure": true, "path": "/", "kind": "route"},"status": {"state": "Pushed"}}`, pathNoHTTP)
-			Expect(desiredURLDescribeJSON).Should(MatchJSON(actualURLDescribeJSON))
-		})
-	})
-
 	Context("when listing urls using -o json flag", func() {
 		JustBeforeEach(func() {
 			originalDir = helper.Getwd()
diff --git a/tests/integration/devfile/cmd_devfile_push_test.go b/tests/integration/devfile/cmd_devfile_push_test.go
index 49d0d86d0..bfb59ba96 100644
--- a/tests/integration/devfile/cmd_devfile_push_test.go
+++ b/tests/integration/devfile/cmd_devfile_push_test.go
@@ -58,7 +58,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "springboot", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "springboot", "devfile-with-metadataname-foobar.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			output := helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldPass("odo", "push", "--project", namespace)
 			Expect(output).To(ContainSubstring("Executing devfile commands for component " + name))
 		})
 
@@ -67,12 +67,12 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "springboot", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "springboot", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			output := helper.CmdShouldPass("odo", "push", "--namespace", namespace, name)
+			output := helper.CmdShouldPass("odo", "push", "--project", namespace, name)
 			Expect(output).To(ContainSubstring("Executing devfile commands for component " + name))
 		})
 
 		It("should error out on devfile flag", func() {
-			helper.CmdShouldFail("odo", "push", "--namespace", namespace, "--devfile", "invalid.yaml")
+			helper.CmdShouldFail("odo", "push", "--project", namespace, "--devfile", "invalid.yaml")
 		})
 
 	})
@@ -386,7 +386,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-valid-events.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			output := helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldPass("odo", "push", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{"PreStart commands have been added to the component"})
 
 			firstPushPodName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
@@ -397,7 +397,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.MatchAllInOutput(strings.Join(firstPushInitContainers, ","), expectedInitContainers)
 
 			// Need to force so build and run get triggered again with the component already created.
-			output = helper.CmdShouldPass("odo", "push", "--namespace", namespace, "-f")
+			output = helper.CmdShouldPass("odo", "push", "--project", namespace, "-f")
 			helper.MatchAllInOutput(output, []string{"PreStart commands have been added to the component"})
 
 			secondPushPodName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
@@ -442,11 +442,11 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-valid-events.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			output := helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldPass("odo", "push", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{"Executing mypoststart command \"echo I am a PostStart\"", "Executing secondpoststart command \"echo I am also a PostStart\""})
 
 			// Need to force so build and run get triggered again with the component already created.
-			output = helper.CmdShouldPass("odo", "push", "--namespace", namespace, "-f")
+			output = helper.CmdShouldPass("odo", "push", "--project", namespace, "-f")
 			helper.DontMatchAllInOutput(output, []string{"Executing mypoststart command \"echo I am a PostStart\"", "Executing secondpoststart command \"echo I am also a PostStart\""})
 			helper.MatchAllInOutput(output, []string{
 				"Executing devbuild command",
@@ -462,7 +462,7 @@ var _ = Describe("odo devfile push command tests", func() {
 
 			helper.ReplaceString("devfile.yaml", "secondpoststart", "secondpoststart12345")
 
-			output := helper.CmdShouldFail("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldFail("odo", "push", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{"does not map to a valid devfile command"})
 		})
 
@@ -475,7 +475,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.ReplaceString("devfile.yaml", "secondpoststart", "wrongPostStart")
 			helper.ReplaceString("devfile.yaml", "runtime #wrongruntime", "wrongruntime")
 
-			output := helper.CmdShouldFail("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldFail("odo", "push", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{"the command \"wrongpoststart\" does not map to a container component"})
 		})
 
@@ -488,7 +488,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.ReplaceString("devfile.yaml", "secondpoststart", "myWrongCompCmd")
 			helper.ReplaceString("devfile.yaml", "secondPreStop #secondPreStopisWrong", "secondPreStopisWrong")
 
-			output := helper.CmdShouldFail("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldFail("odo", "push", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{"does not exist in the devfile"})
 		})
 
@@ -538,9 +538,9 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-hotReload.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			helper.CmdShouldPass("odo", "push", "--project", namespace)
 
-			helper.CmdShouldPass("odo", "push", "--debug", "--namespace", namespace)
+			helper.CmdShouldPass("odo", "push", "--debug", "--project", namespace)
 
 			logs := helper.CmdShouldPass("odo", "log")
 
@@ -557,13 +557,13 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-debugrun.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			output := helper.CmdShouldPass("odo", "push", "--debug", "--namespace", namespace)
+			output := helper.CmdShouldPass("odo", "push", "--debug", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{
 				"Executing devbuild command",
 				"Executing debugrun command",
 			})
 
-			output = helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			output = helper.CmdShouldPass("odo", "push", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{
 				"Executing devbuild command",
 				"Executing devrun command",
@@ -577,7 +577,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-volumes.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			output := helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldPass("odo", "push", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{
 				"Executing devbuild command",
 				"Executing devrun command",
@@ -637,7 +637,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "springboot", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "springboot", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			output := helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldPass("odo", "push", "--project", namespace)
 			Expect(output).To(ContainSubstring("Changes successfully pushed to component"))
 
 			// 2) Rename the pom.xml, which should cause the build to fail if sync is working as expected
@@ -646,7 +646,7 @@ var _ = Describe("odo devfile push command tests", func() {
 
 			// 3) Ensure that the build fails due to missing 'pom.xml', which ensures that the sync operation
 			// correctly renamed pom.xml to pom.xml.renamed.
-			output = helper.CmdShouldFail("odo", "push", "-f", "--namespace", namespace)
+			output = helper.CmdShouldFail("odo", "push", "-f", "--project", namespace)
 			helper.MatchAllInOutput(output, []string{"no POM in this directory"})
 		})
 
@@ -662,12 +662,12 @@ var _ = Describe("odo devfile push command tests", func() {
 			fmt.Fprintf(GinkgoWriter, "Testing with force push %v", shouldForcePush)
 
 			// 1) Push a standard spring boot project
-			output := helper.CmdShouldPass("odo", "push", "--namespace", namespace)
+			output := helper.CmdShouldPass("odo", "push", "--project", namespace)
 			Expect(output).To(ContainSubstring("Changes successfully pushed to component"))
 
 			// 2) Update the devfile.yaml, causing push to redeploy the component
 			helper.ReplaceString("devfile.yaml", "memoryLimit: 768Mi", "memoryLimit: 769Mi")
-			commands := []string{"push", "-v", "4", "--namespace", namespace}
+			commands := []string{"push", "-v", "4", "--project", namespace}
 			if shouldForcePush {
 				// Test both w/ and w/o '-f'
 				commands = append(commands, "-f")
@@ -822,7 +822,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CmdShouldPass("odo", "create", "nodejs", "--project", namespace, cmpName)
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-multiple-defaults.yaml"), filepath.Join(context, "devfile.yaml"))
-			output := helper.CmdShouldPass("odo", "push", "--build-command", "firstbuild", "--run-command", "singleenv", "--namespace", namespace, "--context", context)
+			output := helper.CmdShouldPass("odo", "push", "--build-command", "firstbuild", "--run-command", "singleenv", "--context", context)
 			Expect(output).To(ContainSubstring("mkdir $ENV1"))
 
 			podName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
@@ -835,7 +835,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CmdShouldPass("odo", "create", "nodejs", "--project", namespace, cmpName)
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-multiple-defaults.yaml"), filepath.Join(context, "devfile.yaml"))
-			output := helper.CmdShouldPass("odo", "push", "--build-command", "firstbuild", "--run-command", "multipleenv", "--namespace", namespace, "--context", context)
+			output := helper.CmdShouldPass("odo", "push", "--build-command", "firstbuild", "--run-command", "multipleenv", "--context", context)
 			Expect(output).To(ContainSubstring("mkdir $ENV1 $ENV2"))
 
 			podName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
@@ -848,7 +848,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CmdShouldPass("odo", "create", "nodejs", "--project", namespace, cmpName)
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-multiple-defaults.yaml"), filepath.Join(context, "devfile.yaml"))
-			output := helper.CmdShouldPass("odo", "push", "--build-command", "firstbuild", "--run-command", "envwithspace", "--namespace", namespace, "--context", context)
+			output := helper.CmdShouldPass("odo", "push", "--build-command", "firstbuild", "--run-command", "envwithspace", "--context", context)
 			Expect(output).To(ContainSubstring("mkdir \\\"$ENV1\\\""))
 
 			podName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
@@ -866,7 +866,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			// devfile with clonePath set in project field
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-projects.yaml"), filepath.Join(context, "devfile.yaml"))
 
-			helper.CmdShouldPass("odo", "push", "--namespace", namespace, "--context", context, "--v", "5")
+			helper.CmdShouldPass("odo", "push", "--context", context, "--v", "5")
 			podName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
 			// source code is synced to $PROJECTS_ROOT/clonePath
 			// $PROJECTS_ROOT is /projects by default, if sourceMapping is set it is same as sourceMapping
@@ -885,7 +885,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.ReplaceString(filepath.Join(context, "devfile.yaml"), "clonePath: webapp/", "# clonePath: webapp/")
 			helper.ReplaceString(filepath.Join(context, "devfile.yaml"), "workingDir: ${PROJECTS_ROOT}/webapp", "workingDir: ${PROJECTS_ROOT}/nodeshift")
 
-			helper.CmdShouldPass("odo", "push", "--namespace", namespace, "--context", context)
+			helper.CmdShouldPass("odo", "push", "--context", context)
 
 			podName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
 			output := cliRunner.ExecListDir(podName, namespace, "/apps/nodeshift")
@@ -897,7 +897,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile-with-multiple-projects.yaml"), filepath.Join(context, "devfile.yaml"))
-			helper.CmdShouldPass("odo", "push", "--namespace", namespace, "--context", context)
+			helper.CmdShouldPass("odo", "push", "--context", context)
 			podName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
 			// for devfile-with-multiple-projects.yaml source mapping is not set so $PROJECTS_ROOT is /projects
 			// multiple projects, so source code would sync to /projects
@@ -910,7 +910,7 @@ var _ = Describe("odo devfile push command tests", func() {
 			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
 
 			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
-			helper.CmdShouldPass("odo", "push", "--namespace", namespace, "--context", context)
+			helper.CmdShouldPass("odo", "push", "--context", context)
 			podName := cliRunner.GetRunningPodNameByComponent(cmpName, namespace)
 			output := cliRunner.ExecListDir(podName, namespace, "/projects")
 			helper.MatchAllInOutput(output, []string{"package.json"})
diff --git a/tests/integration/devfile/cmd_devfile_url_test.go b/tests/integration/devfile/cmd_devfile_url_test.go
index fe96cc13c..688de087b 100644
--- a/tests/integration/devfile/cmd_devfile_url_test.go
+++ b/tests/integration/devfile/cmd_devfile_url_test.go
@@ -264,55 +264,6 @@ var _ = Describe("odo devfile url command tests", func() {
 
 	})
 
-	Context("Describing urls", func() {
-		It("should describe appropriate Ingress URLs", func() {
-			url1 := helper.RandString(5)
-			host := helper.RandString(5) + ".com"
-
-			helper.CmdShouldPass("odo", "create", "nodejs", "--project", namespace, componentName)
-
-			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
-			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
-
-			helper.CmdShouldPass("odo", "url", "create", url1, "--port", "8080", "--host", host, "--ingress")
-
-			stdout := helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1 + "." + host, "Not Pushed", "false", "ingress", "odo push"})
-
-			helper.CmdShouldPass("odo", "push", "--project", namespace)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1 + "." + host, "Pushed", "false", "ingress"})
-			helper.CmdShouldPass("odo", "url", "delete", url1, "-f")
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1 + "." + host, "Locally Deleted", "false", "ingress"})
-
-			helper.CmdShouldPass("odo", "url", "create", url1, "--port", "9090", "--host", host, "--secure", "--ingress")
-			helper.CmdShouldPass("odo", "push", "--project", namespace)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1 + "." + host, "Pushed", "true", "ingress"})
-		})
-
-		It("should describe Ingress URL in json format", func() {
-			url1 := helper.RandString(5)
-			host := helper.RandString(5) + ".com"
-
-			helper.CmdShouldPass("odo", "create", "nodejs", "--project", namespace, componentName)
-
-			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
-			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
-			// remove the endpoint came with the devfile
-			// need to create an ingress to be more general for openshift/non-openshift cluster to run
-			helper.CmdShouldPass("odo", "url", "delete", "3000/tcp", "-f")
-			helper.CmdShouldPass("odo", "url", "create", url1, "--port", "3000", "--host", host, "--ingress")
-			helper.CmdShouldPass("odo", "push", "--project", namespace)
-
-			// odo url describe url1 -o json
-			stdout := helper.CmdShouldPass("odo", "url", "describe", url1, "-o", "json")
-			desiredURLListJSON := fmt.Sprintf(`{"kind":"url","apiVersion":"odo.dev/v1alpha1","metadata":{"name":"%s","creationTimestamp":null},"spec":{"host":"%s","port":3000,"secure": false,"path": "/", "kind":"ingress"},"status":{"state":"Pushed"}}`, url1, url1+"."+host)
-			Expect(desiredURLListJSON).Should(MatchJSON(stdout))
-		})
-	})
-
 	Context("Testing URLs for OpenShift specific scenarios", func() {
 		JustBeforeEach(func() {
 			if os.Getenv("KUBERNETES") == "true" {
@@ -401,32 +352,6 @@ var _ = Describe("odo devfile url command tests", func() {
 			Expect(output).Should(ContainSubstring("3000-tcp"))
 		})
 
-		It("should describe appropriate Route URLs", func() {
-			url1 := helper.RandString(5)
-
-			helper.CmdShouldPass("odo", "create", "nodejs", "--project", namespace, componentName)
-
-			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
-			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
-
-			helper.CmdShouldPass("odo", "url", "create", url1, "--port", "8080")
-
-			stdout := helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Not Pushed", "false", "route", "odo push"})
-
-			helper.CmdShouldPass("odo", "push", "--project", namespace)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Pushed", "false", "route"})
-			helper.CmdShouldPass("odo", "url", "delete", url1, "-f")
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Locally Deleted", "false", "route"})
-
-			helper.CmdShouldPass("odo", "url", "create", url1, "--port", "9090", "--secure")
-			helper.CmdShouldPass("odo", "push", "--project", namespace)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Pushed", "true", "route"})
-		})
-
 		It("should create a url for a unsupported devfile component", func() {
 			url1 := helper.RandString(5)
 
diff --git a/tests/integration/devfile/docker/cmd_docker_devfile_url_test.go b/tests/integration/devfile/docker/cmd_docker_devfile_url_test.go
index df6015d7d..897ab8872 100644
--- a/tests/integration/devfile/docker/cmd_docker_devfile_url_test.go
+++ b/tests/integration/devfile/docker/cmd_docker_devfile_url_test.go
@@ -155,51 +155,4 @@ var _ = Describe("odo docker devfile url command tests", func() {
 		})
 	})
 
-	Context("Describing urls", func() {
-		It("should describe URL with appropriate state", func() {
-			var stdout string
-			url1 := helper.RandString(5)
-			helper.CmdShouldPass("odo", "create", "nodejs", cmpName)
-
-			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
-			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
-
-			helper.CmdShouldPass("odo", "url", "create", url1)
-
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Not Pushed"})
-
-			helper.CmdShouldPass("odo", "push")
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Pushed"})
-
-			helper.CmdShouldPass("odo", "url", "delete", url1, "-f")
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Locally Deleted"})
-		})
-
-		It("should be able to describe url in machine readable json format", func() {
-			var stdout string
-			url1 := helper.RandString(5)
-
-			helper.CmdShouldPass("odo", "create", "nodejs", cmpName)
-
-			helper.CopyExample(filepath.Join("source", "devfiles", "nodejs", "project"), context)
-			helper.CopyExampleDevFile(filepath.Join("source", "devfiles", "nodejs", "devfile.yaml"), filepath.Join(context, "devfile.yaml"))
-
-			stdout = helper.CmdShouldFail("odo", "url", "describe", url1)
-			Expect(stdout).To(ContainSubstring("the url " + url1 + " does not exist"))
-
-			httpPort, err := util.HTTPGetFreePort()
-			Expect(err).NotTo(HaveOccurred())
-			freePort := strconv.Itoa(httpPort)
-			helper.CmdShouldPass("odo", "url", "create", url1, "--exposed-port", freePort, "--now")
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1)
-			helper.MatchAllInOutput(stdout, []string{url1, "Pushed"})
-
-			desiredURLListJSON := fmt.Sprintf(`{"kind":"url","apiVersion":"odo.dev/v1alpha1","metadata":{"name":"%s","creationTimestamp":null},"spec":{"host":"127.0.0.1","port": 3000,"secure":false,"externalport":%s},"status":{"state":"Pushed"}}`, url1, freePort)
-			stdout = helper.CmdShouldPass("odo", "url", "describe", url1, "-o", "json")
-			Expect(desiredURLListJSON).Should(MatchJSON(stdout))
-		})
-	})
 })