* Update main title in README
* Remove extra colon character
* Remove horizontal rules in README
Headings should suffice.
* Display demo video in README
This way, users can have a chance to have a quick preview of odo.
* Make UI not experimental
* Display API and UI URLs
* Remove link to old sources
* Fix integration tests
* Add UI to Usage Data
* Add a "Using the GUI to edit the Devfile" page to doc
* Add link to odo.dev specific page
* Apply suggestions from code review
Co-authored-by: Armel Soro <armel@rm3l.org>
* Change favicon with odo logo
* Display web console URL as part of the Dev status
* Update UI static files
* Document that Comments not supported
* Add UI screenshots
---------
Co-authored-by: Armel Soro <armel@rm3l.org>
* Remove kubeconfig flag
* Do not check file exists from KUBECONFIG, as KUBECONFIG can be a list of files and this is done by clientcmd library
* Fix odo --help
* Add integration test to check flag is not supported
* Add section explaining that users can use Podman without a cluster
* Update sample output of `npx express-generator` in Node.JS guide
* Add section for preparing the target platform with tabs for Podman, Kubernetes and OpenShift
On Podman, this means checking the prerequisites (e.g., min. version of odo, checking that Podman is detected with `odo version`).
On Kubernetes and OpenShift, this is about creating a namespace or project, as before.
* Update sample output for `odo dev` on cluster to reflect the current output
* Add Podman as new tab when running `odo dev` and include sample outputs
* Revert "Update sample output for `odo dev` on cluster to reflect the current output"
This reverts commit 96fb449f715969ddd791e1a5b906408a18bb4364.
* Fix typo in Quickstart intro
* Set Save button on top, enable it only when devfile changed
* Use snackbar to display parse errors
* Do not alert devfile modified when user clicks Save
* Update UI static files
* Update introduction message in Deploy guide
* Fix syntax highlighting for Shell commands
* Bump PrismJS to 1.29.0 to have syntax highlighting for things like Dockerfiles
* Enable syntax highlighting for Dockerfile content in the Deploy guides
* Update instructions on how to login to the container registry
* Add instructions on how to register the image registry in odo
This is to be able to use image selectors.
* Use a relative image name in the Devfile
* Add comment about the ingress domain name variable
* Update the deploy guide for .NET
* Highlight items that need to be changed in the Devfile
* Register the image registry first and make it clear that permissions might need to be updated
To make things simple, use a public registry like ttl.sh that does not require authentication.
* Add more details on how to access the application
* Do not regenerate apiserver-gen/go/routers.go
* Regenerate after changes done in pr#6989
* Do not regenerate apiserver-gen/go/logger.go
* Change logs
* Fix comments
* Set version in build/VERSION file
* Bump version in installation docs
* Add release blog post
* Update release doc
---------
Co-authored-by: feloy <feloy@users.noreply.github.com>
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Remove API Server from experimental mode, set UI Server as experimental
* Adapt api-server integration tests
* Disable --api-server by default in the tests
They are enabled only if `options.StartAPIServer`
is explicitly enabled.
This is to avoid potential port conflicting issue,
especially on Windows - see [1]
[1] https://github.com/redhat-developer/odo/issues/6939
* Error out if `--api-server-port` is set but `--api-server` is false
---------
Co-authored-by: Armel Soro <asoro@redhat.com>
* Let the OS assign a random ephemeral port if `--random-ports` is specified when running `odo dev` or `odo api-server`
This should hopefully fix the potential port conflict flaky
issue we are seeing, especially on Windows.
* Do not allow setting `--random-ports` and a specific port value
This applies to:
- `odo dev --random-ports --api-server --api-server-port=<port>`
- `odo api-server --random-ports --port=<port>`
* Load Segment module
* First events
* Add GET /telemetry epoint to API
* Init telemetry with data from API
* Add more tracking
* Update ui static files
* Send telemetry for tab changes
* Update UI static files
* Set IP to 0.0.0.0
* Update UI static files
* Add '/notifications' endpoint for subscribing to server-sent events
* Generate server and client
* Try implementing the notification service endpoint
* Revert "Try implementing the notification service endpoint"
This does not seem to work because the generated server always responds
with application/json, and it is not possible to respond with a
different content-type.
This reverts commit cf3ce83677649763b8166c4847501c37246dd757.
* Revert "Generate server and client"
This reverts commit b985c007a0561edbe185adc3b9582e12aa3f072b.
* Revert "Add '/notifications' endpoint for subscribing to server-sent events"
This reverts commit c5c903329f13dbe4ec096d83b1c8624fd622bef3.
* Implement 'GET /notifications' SSE endpoint and logic to detect and notify Devfile changes
* Leverage EventSource to subscribe to Server Sent Events
Here, this is being used to automatically reload the Devfile in the YAML view
whenever the API server notifies of filesystem changes in the Devfile
(and related resources).
* Add Preference Client to apiserver CLI
This is needed to be able to persist Devfiles from the UI to the filesystem
* Add E2E test case
* fixup! Leverage EventSource to subscribe to Server Sent Events
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Limit the round-trips by sending the whole Devfile content in the DevfileUpdated event data
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* [Cypress] Make sure to wait for APi responses after visiting the home page
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Generate static UI
* fixup! [Cypress] Make sure to wait for APi responses after visiting the home page
---------
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* refactor: Set the experimental mode env var in a single place for the '--api-server' related tests
* Add integration tests highlighting the expectations
* Make the state client return the API server ports per platform
'odo dev' might be running on both cluster and podman,
so we might end up with several API servers.
* Make 'odo describe component' return information about the API Server and web UI
This is viewable only when running 'odo describe component'
with the experimental mode enabled.
* fixup! refactor: Set the experimental mode env var in a single place for the '--api-server' related tests
* Unit-test describe#filterByPlatform logic
* Simplify logic for 'describe#filterByPlatform', as suggested in review
Co-authored-by: Philippe Martin <phmartin@redhat.com>
---------
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Generate static UI files from within a container, for more predictability
For some reason, Angular was not generating the same hash
for the `runtime*.js` file (even with the same content),
causing the 'check-ui-static-files' job to sometimes fail.
Leveraging a container (as we are already doing for the
'generate-apiserver' and 'generate-apifront' tasks)
should allow for more predictable output.
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Generate static UI
---------
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Update 'go.mod' with new location of the Alizer library
* Downgrade and pin conflicting versions of 'github.com/docker/{cli,distributions}'
Pinning it to the version we had before.
Otherwise, there were issues when running 'go mod tidy':
```
$ go mod tidy
go: downloading github.com/operator-framework/api v0.17.6
go: finding module for package github.com/docker/docker/pkg/term
github.com/redhat-developer/odo/pkg/auth imports
github.com/openshift/oc/pkg/cli/login imports
github.com/openshift/oc/pkg/helpers/term imports
github.com/docker/docker/pkg/term: module
github.com/docker/docker@latest found
(v24.0.4+incompatible), but does not contain
package github.com/docker/docker/pkg/term
```
* Fix expected output in quickstart guides doc automation tests
* Add a Troubleshooting page with most common issues and possible solutions
* Collapse the "Advanced Usage" section by default
This leaves room for more sections to be available.
* Start the API Server from the UI component itself
* Store Cypress screenshots and videos as test artifacts upon test failures
This should make it easier to understand and investigate.
* Increase timeout to find element via getByDataCy
The default timeout used to cause certain flakiness at times.
* Install Terminal Report Plugin [1] to log useful information about Cypress runs
It outputs actions, intercepted requests, console messages and errors directly to stdout in a convenient format.
[1] https://github.com/archfz/cypress-terminal-report
* Revert "Increase timeout to find element via getByDataCy"
This reverts commit 410b5c6c3f.
* Intercept network calls when clearing or saving DevState and wait until we get successful responses
In some cases, clicking too quickly led to inconsistent behavior, where for example the Containers tab would not be up-to-date yet
* Disable Angular telemetry when running 'ng serve'
* Set version in build/VERSION file
* Bump version in installation docs
* Add release blog post
* Fix order of "Using Helm with odo" blog post when there is no Git history
This was the case when running developing on the website with `odo dev`
* Update release blog post content
* Apply suggestions from code review
Co-authored-by: Philippe Martin <phmartin@redhat.com>
---------
Co-authored-by: rm3l <rm3l@users.noreply.github.com>
Co-authored-by: Armel Soro <asoro@redhat.com>
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Display the supported architectures in `odo registry` output
* Allow filtering by architectures
* Update documentation accordingly
* Add test cases
* fixup! Update documentation accordingly
* fixup! Allow filtering by architectures
Devfiles with no architecture declared are supposed to be compatible
with all known architectures.
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* fixup! Add test cases
---------
Co-authored-by: Philippe Martin <phmartin@redhat.com>
* Serve UI from api server
* Build UI static files + check generation with GHAction
* Update UI static files
* Use specific commit for verify-changed-files action
* Add pkg/apiserver-impl/ui to .gitattributes
* Ignore pkg/apiserver-impl/ui/** for sonar
* Serve /devfile
* Implement /devfile endpoints
* Load/Save devfile from UI
* Required metadata fields in the response
* Add an Apply button on 1st tab
* Fix: validate new devfile, not previous one
* Add generated UI files to gitattributes file
* Fix rebase
* Add new `--run-port` flag to `odo init` to set ports non-interactively
As depicted in [1], this leverages the default (or single non-default) run command to find the linked container component.
As such, it assumes that the command found is an exec command,
and that the linked component is a container component.
[1] https://github.com/redhat-developer/odo/issues/6925
* Add unit and integration tests highlighting the expectations
* Document the new `--run-port` flag
* Fix some typos and language correctness issues in the `odo init` doc
* Add doc automation test for the output of `odo init --run-port`
This ensures the output and sample in the doc are kept in sync with the code base.