* Update odo to use go 1.18
Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
* Update golangci-lint version in Makefile
Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
* Use go 1.18, not go 1.19
Erroneously I had used go 1.19 at various places.
Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
* Rearrange imports; fix golangci-lint errors
Fixed a bunch of golangci-lint errors like below:
`File is not `gofmt`-ed with `-s``
using the command: `golangci-lint run --fix`
Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
* Use go install instead of go get
This is because with go 1.18, `go get` behaves as `go get -d` by
default. Which means that it will only download, but not install.
Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
Signed-off-by: Dharmit Shah <shahdharmit@gmail.com>
* remove golangci-lint installation from test script
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* download golint in test script
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* use makefile to download golangci-lint
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* use official method to install linter
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* reduce test make targets, organize test file structure
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* remove report collection
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* Document golangci-lint configuration options
* Do not limit the number of issues reported per linter
* Add check preventing the use of the deprecated 'github.com/pkg/errors' package
* Upgrade golangci-lint to 1.37.0, so we can use 'revive' Linter
- revive is a drop-in replacement for the deprecated golint Linter
- revive will allow to check for error strings
Note: We are purposely not using the latest golangci-lint (1.45.0)
but the minimum version from which revive is available.
This is because the latest 1.45.0 reports additional linting issues
(from govet and staticcheck for example). And fixing those side errors
is outside of the scope of this issue.
Also some of those issues are already fixed in #5497 (update to Go 1.17).
* Configure revive to check for error strings
More rules can be added later on if needed
* Fix issues reported by revive's error-strings rule
Some rules are purposely ignored when the
error messages represent top-level errors that are
displayed to be displayed as is to end users
* Fix more error-strings issues
For some reason, those were not reported by revive's error-strings rule,
but only by GoLand inspection tool.
* Fix missing `revive:disable:error-strings` comment directive
Also replace "fmt.Errorf" by "errors.New" when the error message is static
* Update vendoring for coloring to add NO_COLOR
* Updates odo init output / adds logo
<!--
Thank you for opening a PR! Here are some things you need to know before submitting:
1. Please read our developer guideline: https://github.com/redhat-developer/odo/wiki/Dev:-odo-Dev-Guidelines
2. Label this PR accordingly with the '/kind' line
3. Ensure you have written and ran the appropriate tests: https://github.com/redhat-developer/odo/wiki/Dev:-Writing-and-running-tests
4. Read how we approve and LGTM each PR: https://github.com/redhat-developer/odo/wiki/Pull-Requests:-Review-guideline
Documentation:
If you are pushing a change to documentation, please read: https://github.com/redhat-developer/odo/wiki/Documentation:-Contributing
-->
**What type of PR is this:**
<!--
Add one of the following kinds:
/kind bug
/kind cleanup
/kind tests
/kind documentation
Feel free to use other [labels](https://github.com/redhat-developer/odo/labels) as needed. However one of the above labels must be present or the PR will not be reviewed. This instruction is for reviewers as well.
-->
/kind feature
**What does this PR do / why we need it:**
We have the logo appearing in `odo dev` and `odo deploy`
Those 3 commands are the most used with `odo`, and the ones that are
most used. All three should have similar and consistent output that
contains:
* What the component is doing (first line)
* What's detected (in odo init, it's the files, in odo deploy and dev
it's the component name)
* odo version that is being used / outputted.
```sh
$ odo init
__
/ \__ Initializing a new component
\__/ \ Files: No source code detected, a starter project will be created in the current directory
/ \__/ odo version: v2.5.0
\__/
Interactive mode enabled, please answer the following questions:
? Select language: javascript
? Select project type: Next.js
✓ Downloading devfile "nodejs-nextjs" from registry "DefaultDevfileRegistry" [450ms]
? Which starter project do you want to use? nodejs-nextjs-starter
? Enter component name: my-nodejs-nextjs-app
✓ Downloading starter project "nodejs-nextjs-starter" [516ms]
Your new component 'my-nodejs-nextjs-app' is ready in the current directory.
To start editing your component, use 'odo dev' and open this folder in your favorite IDE.
Changes will be directly reflected on the cluster.
```
**Which issue(s) this PR fixes:**
<!--
Specifying the issue will automatically close it when this PR is merged
-->
N/A
**PR acceptance criteria:**
- [X] Unit test
- [X] Integration test
- [X] Documentation
**How to test changes / Special notes to the reviewer:**
N/A
Signed-off-by: Charlie Drage <charlie@charliedrage.com>
* Update based on reviews
Signed-off-by: Charlie Drage <charlie@charliedrage.com>
* Update based on review
Signed-off-by: Charlie Drage <charlie@charliedrage.com>
* Remove `odo url` from CLI layer
* Adapt tests
* Adapt test from deleted `cmd_devfile_delete_test.go`
This test still makes sense, as it tests the removal
of URL-related resources, like Services and Ingresses.
* Remove call to `odo project set ...` in test, as suggested in review
This command will get removed in the near future.
* Remove places where URL manipulation could modify Devfiles
Also remove dead code
* Remove unused `updateURL` field from EnvInfo struct
* Adapt test by mimicking some behavior that `odo url create` used to perform
`odo url` used to modify the `env.yaml` file,
and `odo dev` currently creates Kubernetes/OCP resources related to URLs.
We may remove this test later on if `odo dev`
no longer needs to create such Ingresses and Routes.
* Remove all places where URLs, Ingresses and Routes are manipulated
* Port test in cmd_dev_test instead and make sure no Ingress/Route is created
* Remove no-longer `test-cmd-devfile-url` target from Makefile
The corresponding test file has been deleted.
* Remove `create url` command reference from V3 docs, as suggested in review
* Use existing `devfile-with-multiple-endpoints.yaml` Devfile in test, as suggested in review
* Cleanup create code
* Add missing integration tests from odo create to odo init
* Add CreateLocalEnv to create .odo/env/env.yaml file for commands that require it but cannot create it
* Remove 'odo create' usages from integration tests
* Remove create reference from the Makefile
* REmove create doc from v3
Signed-off-by: Parthvi Vala <pvala@redhat.com>
* Remove test files
* Fix CI failure
Signed-off-by: Parthvi Vala <pvala@redhat.com>
* remove odo catalog command
- move devfile registry relevant code to pkg/registry
* remove odo catalog page form docs
* remove a few forgotten uses of catalog from clientset.go
* fix typos in docs
This is because such targets run tests that rely on the `odo` binary
to execute subcommands in separate processes.
While iterating on the code, we could often end up with situations where
the `odo` binary is no longer up-to-date, should we forget to `make install` before.
* POC for odo interactive testing
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* add interactive tests to make target test-integration
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* [WIP] use func to pass test instructions
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* cleanup comments/test
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* cleanup minor changes
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* fix unit test failure
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* skip for windows
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* skip for windows by not compiling, cleanup
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* cleanup, and add the make target to test files
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* incorporate review, adding comments, cleanup
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* fix failing make validate
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* update test dependency, and possible fix for windows
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* Revert "update test dependency, and possible fix for windows"
This reverts commit 55580b7dc5.
* Final cleanup
Signed-off-by: anandrkskd <anandrkskd@gmail.com>
* Use an image with pre-installed oc/kubectl/ibmcloud for IBM Pipelines
* Increase time for unit tests (very long on single CPU VM)
* Dockerfile for build image
* Scripts for PSI minishift tests
* added line at end of script
* added line at end of script
* emoved info as requested
* Updates as per review feedback
* deleting unwanted script as it was replaced with other files
* Scripts for PSI minishift tests
* Applied workaround to use env variable to select minikube or minishift
* Set CLUSTER env variable to appply workaround for firewall not taking parameters
* added curl for missing script and added misiing /, removed unnecessary cd
* Separating minishift from merged minikube-minishift scripts due to firewall not taking parameters for script execution
* Changes to run tests in IBM Cloud, changed TEST_EXEX_NODES=24
* remove non required changes (old stuff) and remove non required scripts (old stuff)
* Modified and added scripts to run tests in IBM Cloud cluster
* Additional changes for to run K8S test in IBM Cloud
* Removed unnecessary line
* changes to run tests on K8S cluster in IBM Cloud
* ncorportaed changes based on feedback for IBM Cloud tests
* Chnages based in feedback for IBM Cloud
* updated string for home dir
* removing test-integration-devfile as it ends with failures
* Fixed if statement
* changes to Makefile for number of nodes
* added requested comment to Makefile about nodes if running in IBM Cloud
* Removing cli layer and integration tests related to service catalog
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Fixing missing error msg
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Fixing golint errors
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Fixing error for interactive mode
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Moving interactive mode error to top
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Fixing
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Fixing interactive mode error condition
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Removing some more service related code
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Fixing golint
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Removing service catalog backend part 1
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Updating changelogs
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Removing some more of the service catalog related code
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Updating as per comments in review
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Update pkg/odo/cli/service/create.go
Co-authored-by: Parthvi Vala <pvala@redhat.com>
* Fixing gofmt
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Adding kube to cli docs
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Updating changelog as per comments by @dharmit
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Removing some unnessasary stuff
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Updating docs based changes as per review
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Fixing test
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Update pkg/odo/cli/catalog/describe/service.go
Co-authored-by: Philippe Martin <contact@elol.fr>
* Update pkg/odo/cli/service/list.go
Co-authored-by: Philippe Martin <contact@elol.fr>
Co-authored-by: Parthvi Vala <pvala@redhat.com>
Co-authored-by: Philippe Martin <contact@elol.fr>
* Do not deploy sbr at `odo link` time, save it in devfile
* Changelog
* Fix remove duplicates
* Do not set owner references again
* Fix wait for pod terminating
* Simplify env vars deduplication
* Add comment
* Dont use oc
* link type
* fix
* Fix spinner
* Fix tests
* Fic error message for link/unlink
* Review
* No spinner
* export GOFLAGS=-mod=vendor in Makefile
* use go get instead of go install
for installing test dependencies
* use tools approach to manage testing dependencies
When using this apporoach we can make sure that all dependencies in a
proper version are vendored with the source code.
* go mod vendor
* add wwhrd expection for github.com/hinshun/vt10x
* implement devfile conversion ( with --now support) on --s2i without --git flag
* fix unit tests
* resolve failing tests
* small fix
* more test fixes
* more failing tests
* fix multiple tests
* forgot to push
* fix debug port error
* fix failures
* resolve no ports error
* more test fixes
* fixing more failures in tests
* fix more tests
* small fix
* changes
* update more tests
* fix more tests
* more tests
* fix more tests
* more test resolved
* add comment on test
* remove and updated tests
* fixed more tests
* removed FIt
* Removed FIt
* fix tests
* fix unit test
* fix more tests
* more tests fixed
* fix some e2e tests
* commented some tests
* add images back
* change --git links
* more images
* comment
* fix comments
* fix e2e images test
* address tests
* add requested test and helpers
* more cleanup
* remove dependence on kubectl
* use different port
Co-authored-by: Tomas Kral <tkral@redhat.com>
* Updating segment varialbe= dev key as default overrideable with ldflags
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* Changing const to var
Signed-off-by: Mohammed Zeeshan Ahmed <mohammed.zee1000@gmail.com>
* #3377 adding odo devfile support test
* #3377 replaced spaces with a Tab
* #3377 updated focus value
* #3377 addressed all Priti's comments in PR
* #3377 addressed additional comments from Priti's comments in PR
* #3377 adding make test-e2e-devfile
* Status support: Event notification support for build and application status for IDE integration for devfile scenarios
* Status support: Event notification support for build and application status for IDE integration for devfile scenarios
* Status support: Event notification support for build and application status for IDE integration for devfile scenarios
* Status support: Event notification support for build and application status for IDE integration for devfile scenarios
* Status support: Event notification support for build and application status for IDE integration for devfile scenarios
* Status support: Event notification support for build and application status for IDE integration for devfile scenarios
* Status support: Event notification support for build and application status for IDE integration for devfile scenarios
* Rebase
* Rebase
* Respond to review comments
* Make gofmt happy
* Add podwatcher unit tests
* Fix go vet
* Fix linter issues
* Rebase
* Fix unit test
* Fix unit test
* Fix unit test
* Respond to review comments
* Make linter happy
* Rebase
* Use latest URL APIs
* Response to API changes
* Fix rebase artifacts
* Fix rebase artifacts
* Respond to API changes
* Remove experimental flag
* Rebase to latest
* Adds app commands for devfile components
* Fixes log messages and comments
* Fixes s2i app test script
* Fixes s2i local config components
* Removes devfile test for help
* Adds unit test cases for List()
* Updates integration tests
* Fixed alias in import
* feat: add GetName and GetNamespace methods to LocalConfigProvider
* refactor: remove redundant resolveProject
This is accomplished by making resolveNamespace take a
LocalConfigProvider instance instead of LocalConfigInfo.
Also record the project/namespace when creating a devfile context.
* refactor: rename and improve resolveComponent, set component on devfile
Renamed to resolveAndSetComponent making it an internalContext method,
taking a LocalConfigProvider instead of LocalConfigInfo. Also now set
the resolved component on the receiver context.
* fix: make describe Complete work with devfiles, simplify
* refactor: make LocalConfigInfo.GetURL return EnvInfoURL
* fix: typo
* feat: add GetDebugPort and GetURL to LocalConfigProvider
* refactor: rename ConfigFileExists & EnvInfoFileExists to Exists
* feat: add Exists method to LocalConfigProvider
* feat: add GetEnv method to LocalConfigProvider & implementations
* fix: revert adding GetEnv because it introduces import cycle
It's impossible to parse a devfile within the envinfo package because
the parser package now depends on the config package which I think it
shouldn't depend on. :(
* feat: first implementation supporting describe for devfiles
* fix: error format
* fix: break from loop as soon as project is found
* fix: properly set namespace of clients
* fix: handle error
* refactor: use map, initialized only once and not per call
* fix: use oc client if k8s client failed
* fix: typos
* fix: allow creating components with invalid namespaces
Not sure why this should be working but that's what the tests say…
* fix: revert resolveProject function
Seems like having a single function to resolve the namespace should be
enough but it gets too complicated too quickly and cleaning up this
mess is not the goal of this PR anyway… :sad:
* fix: properly set project on context
* fix: properly retrieve the state based on deployment availability
* fix: check DC if deployment doesn't exist :(
* fix: no need to return a pointer
* fix: change type to `devile: <component name>`
* feat: export GetLocalDevfileStorage to be able to reuse it
* feat: add URL and storage output to describe for devfiles
* fix: typos
* chore: add integration test
* feat: always set discovery client on fakeclient
* feat: cache result of isResourceSupported
* feat: make it possible to create a client from an existing config
* refactor: simplify validateSourceType
* feat: make ListIngressAndRoute work with an optional LocalConfigProvider
* feat: abstract the cluster representation of the component
* fix: only use devfile name
* fix: sort URLs by name to have consistent output
* fix: use action's name to return proper DC instead of relying on count
* feat: make describe integration test plain k8s only, add pushed test
* fix: use PushedComponent to make describe work on k8s and when pushed
* feat: add make target for devfile describe integration tests
* fix: return an error instead of panicking
* feat: add GetComponentNames to avoid building full components and use it
* fix: utility packages shouldn't depend on cli packages
* feat: make occlient link to kclient to be able to use it when needed
* feat: make PushedComponent return URLs as well
* fix: getRemoteComponentMetadate now retrieves URLs from PushedComponent
* fix: typo
* fix: only retrieve routes if they are supported
* fix: no need to keep pointer to Deployment/DeploymentConfig
* fix: removed unused code
* fix: removed unused code
* fix: stupid mistake
* chore: add doc
[skip ci]
* chore: add doc
[skip ci]
* fix: deal with URLs uniformly between s2i and devfile
* fix: URLs are routes unless otherwise specified
* fix: do not set path by default
* fix: sort component names
* test: check to see if that makes test work better that way…
* TMP: panic on unknown GetPushedComponent error to get a stack
* fix: allow unauthorized and forbidden errors to fall back to DC check
* fix: ignore some errors when trying to get URLs or PushedComponents
* fix: lazy init URLs so that they're only retrieved when needed
* refactor: simplify ListIngressAndRoute signature
* fix: also check cause in case the error is wrapped
* switch to go modules
* update vendor (go mod vendor)
* swithing to go mod: update docs and makefile
* update goget-tools
* use go mod verify to check vendor
* Update goget-tools
- pin goget-tools versions
- update gikgo to 1.14.0
- reset GOFLAGS for goget-tools
- fix ginkgo get for Prow
* go mod: replace github.com/kr/pty with github.com/creack/pty
* update vendor (go mod vendor)
* fix make cross target
-mod=vendor was not used for corss compiling
* Run missing debug command against 4.x cluster
* Updated travis file with respect to the changes
* Fixing job timeout
* Updated test target
* Updated test timeout
* Updated review comment
* clean up
* clean up
* CI time balancing
* CI time balancing and cleanup
* add feature complete odo set and unset
* added json output
* added json output for odo config
* resolved golint
* addressed some comments
* separated out devfile and s2i run sections
* Add example and descriptions
* some spacing
* added integration tests
* only odo injected ports can be managed
* typo resolved and DRYed the config tests
* updated desc and use dns friendly component name
* add devfile config tests to travis
* resolved the panic
* format the help for all config flows
* now a user can remove all ports
* resolved failing tests
* added the format test back
* not pushing in intg test
* added unit tests for devfile config
* unique portname for different protocol
* removed a comment
* Adds storage create and delete commands for devfiles.
* Uses a existing error type and creates a new NotFoundError type
* fixes order of errors while creating volumes
* adds json output for storage delete and adds tests
* fixes capitalization of error messages and comments and uses constants in the code
* Adds support for context flag
* Fixes unit test for devfile writer and updates yaml tags for devfile endpoint fields
* Adds context flag in s2i test