-
Notifications
You must be signed in to change notification settings - Fork 244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
odo dev: react to changes as soon as possible #5933
odo dev: react to changes as soon as possible #5933
Conversation
✅ Deploy Preview for odo-docusaurus-preview canceled.
|
dd5940d
to
30c723f
Compare
4cfb015
to
1bc1cc7
Compare
1a4111c
to
4639f47
Compare
4639f47
to
577fa4f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was surely challending to review commit-by-commit. Not sure if I would want to do it regularly. 😕
for k := range volumeNameToVolInfo { | ||
keys = append(keys, k) | ||
} | ||
sort.Strings(keys) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we put this in a function since we are doing it twice in the same file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would even go as far and suggest we combine the two functions GetEphemeralVolumesAndVolumeMounts
, and GetPersistentVolumesAndVolumeMounts
into one, since the only thing that sets them apart is their use of getEmptyDir
, and getPVC
respectively.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameters volumeNameToVolInfo
/ephemerals
do not have the same type, it makes it difficult to replace with a unique function
5102b4e
to
73988b7
Compare
de7defb
to
2d2d7e9
Compare
You can set a high memory request (1Ti for example), so the scheduler won't be able to find it a node
This is pore an implementation detail, it is not visible at the user level, but you can check in the sources we are not waiting anymore for anything.
You should not ask yourself what is teh state of the app at any moment, and you should not have to use kubectl or other tool to beb able to understand what's the state of the component |
Kudos, SonarCloud Quality Gate passed!
|
The thing is that these items are in the acceptance criteria. If, as a reviewer, I can't test it, how can I approve it? |
I'm not sure acceptance criteria are for user level only. For the first point, you can check in the sources how it is implemented, and check that odo is not waiting anymore, like it was waiting before for a Pod to be started. For the second point, this is quite subjective, but you can make lots of manipulations, and check that you understand at any moment what is the state of the component. If, at any moment, you don't know if the component is running or not, the acceptance creteria is not respected |
/lgtm @dharmit agrees. |
/override ci/prow/v4.10-integration-e2e |
@valaparthvi: Overrode contexts on behalf of valaparthvi: ci/prow/v4.10-integration-e2e In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/override ci/prow/v4.10-integration-e2e Tests pass on IBM Cloud
|
@feloy: Overrode contexts on behalf of feloy: ci/prow/v4.10-integration-e2e In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
* Create auxialiary functions to find current deployment and pod name * Create auxialiary function for pushing Kubernetes components to cluster * Auxiliary function getPushDevfileCommands and remocve RunModeChanged flag as it is not possible anymore with long running dev command + move prelimiray tests at the beginning * Create auxiliary function updatePVCsOwnerReferences + move isMainStorageEphemeral inside aux. function * Watch for deployments in addition to watching for files during odo dev * - Check the Deployment Generation to return earlier when generation changed - Return earlier when pod is not ready * Push receives a Status that it can update, to indicate the status of the component when the function returns. This status is passed from Start to Watch * Use status to decide to sync files * Simplify getting pod * Status for PostStartEvents * - Touch .gitignore earlier so it is not synced - Add devstate.jso file to .gitignore * Fix the integration tests. * Make --no-watch work again * Get smaller volumes for tests * Quit when fail to exec port forwarding * Exponential delay after an error * Fix: get running pod * Remove testing odo dev stops when the build command fails. odo dev now gives a change to the user to fix the problem * Fix order or volumes and volume mounts in pod spec * Use server side apply for updating PVC when supported * Watch Devfile separately * Adapt tests for devfile handled separately * Update forwarded ports when necessary * Display kubernetes resources created only when created/updated * Do not set ResourceVersion when patching * TEMP: Add more logs on failing integrattests * Tests: select the *running* pod * Use forward slashes for .gitignore content, even on Windows * Rename GetOnePodFromSelector to GetRunningPodFromSelector * Cleanup logs * Fix 'odo log' integration test * Add log "Waiting for Kubernetes resources" * Fail if service bindings are not injected * Rename sources related watcher, timer * Fix delay after error * Display info about Pod * Disambiguate error messages * Display events related to components pod * Remove now unused functions used to wait for Deployment / Pod * Typos + function renaming * Do not watch devfile with --no-watch * Use type switch for Kubernertes watch event * Do not fail when watching Events is Forbidden * Do not fail when servicebinding resources are forbidden * Exit when build command fails on no-watch mode * Sync devfile.yaml by default, workaround when commands change on devfile * Rename to warningsWatcher * Fix comment
What type of PR is this:
/kind feature
What does this PR do / why we need it:
Which issue(s) this PR fixes:
Fixes partially #5867
PR acceptance criteria:
Unit test
Integration test
Documentation
How to test changes / Special notes to the reviewer:
Acceptance Criteria
odo dev
is runningodo dev
is running with theno-watch
flag, it should not watch for files but still continue to watch cluster resources