-
- Downloads
Remote Development
- The initial release of the Remote Development feature - !105783 Changelog: added Skeleton stub for /internal/kubernetes/remote_dev/work endpoint DISABLE auth, error handling, and change to GET WIP - more tweaks WIP - structure of request and response matches current agentk structure make request and response structure match agent setting up persistence and graphql api add workspaces table and services, rename refactors, etc send config_to_apply as a single yaml string tweaks, user is current user and not passed in params, change migration More tweaking migrations and workspace model WIP - NOT WORKING YET - start implementing reconciliation logic Add error handling to work around current_user bug Starting to write spec for state_reconciliation_service check in correct structure.sql (workspaces was missing name, etc) Working unit test for reconciliation service Fix linting errors so we can push without LEFTHOOK=0 Write basic state machine with tests clean up rubymine warnings Cleanup and refactor, extract core logic from service to Processor class rename refactors to clear things up before adding more logic Refactoring, translate phase into state pull out shared context with configs to test drive processor uncomment kubernetes.rb authenticate_gitlab_kas_request update database schema refactors, add tests for processor fix rubocop errors Fix ActiveRecord inverse_of associations Handle receiving untracked workstations info from agent Restructure spec contexts Refactor spec and factories - to be consistent with fixture workspace state Add logic and tests for desired != actual state Change args interface b/w service and processor Attempt to set up EE model and associations correctly Add minimial spec for grape API declaration Extract actual info parser logic Move services to EE Move lib files under EE Add debug logs, handle missing phase Add exploratory testing helper scripts Get to 100 percent coverage Improve k8s watch script Switch devworkspace config example to ttyd Add running/failed states, vscode->ttyd Remove state machine, add consts Extract config generator, test coverage Remove sleep from watch_rails_workspaces.sh Handle case where no WS exist in k8s Make scripts executable Switch create_workspace script to ruby Add spec for DesiredConfigGenerator Fix scripts, and handling of namespace/version Suppress false rubymine inspection errors Add validation for states in model Add support for storing URL Make update test script do validation Add basic graphql support - needs tests Fix query_type_spec.rb Update graphql docs More GraphQL functionality - group association Minimal UI to list workspaces Fix navbar specs Add polling for workspaces list Regenerate locale/gitlab.pot Add Starting as supported actual_state Helper script to run specs Move Workspace out of EE namespace Move graphql classes out of EE namespace Add devfile in create_workspace helper script Fix rubocop linting error Add editor field to Workspace Move js app under correct directory Change workspace URL to link Fix rubocop failure Pass editor in desired_config_generator.rb Graphql create mutation, and other fixes Minimal create form with hardcoded agent ID Add clusterAgentId text field Update queries, pots, and api index Move services under Workspaces namespace Rename fullPath to groupFullPath Add TERMINATED state Make desiredStates a dropdown Agent field dropdown, other improvements Add missing test coverage for graphql Add update mutation and service Create graphql update query, other query/schema cleanup Order workspaces finder by ID Add loading state, fix list query name Fix list query, remove unneeded query type method Update form working UpdaTE pots Support terminated state Switch to source editor for devfile field Rename var and fix spec Add routes for vue to make reload work Make list update instantly after add Switch to graphql subscriptions - For workspace list update, instead of Apollo polling Fix local cyclic dependency classload errors See https://docs.gitlab.com/ee/development/api_graphql_styleguide.html#testing-tips-and-tricks and search 'cyclic' Fix group_updated_spec copy-pasta error Fix rubocop errors Fix ee version of subscription_type_spec Support Devfile in project, other cleanup - Includes other cleanup/fixes for upstream remote_dev branch Do not create Workspaces without devfiles Fix migration WIP - adding project support Fix handling of devfile options radio Devfile in project now working (*) - (*) Not yet tested with full GA4K integration running Fix some state-management bugs Fix spec Add index migration for project_id Single migration and reset db script Fix failing create mutation spec - Change WorkspaceType#agent to #cluster_agent Run gettext:regenerate Clean up / add Workspace GraphQL associations Improve workspace resolver and finder Move branch_hooks_service to EE Fix failing specs Add coverage for create/update mutations Add todo about detecting devfile changes Support selective updates of workspace attributes Update graphql docs for WorkspaceUpdateInput Update layout to fix linting error Fix linting error Update db/structure.sql Update scripts Fix rubocop errors Manually fix structure.sql Simplify graphql type - Thanks Paul Add test coverage for model terminated? method Remove unnecessary non-EE routes entry Fixing failing graphql mutation specs - See https://gitlab.slack.com/archives/C6MLS3XEU/p1677716828645539?thread_ts=1677710256.031839&cid=C6MLS3XEU Fix Workspace factory associations Remove feature specs from remote dev spec script Make devfile and editor immutable - Removes hook and worker for devfile in repo Remove DWO dependency Use devfile gem to create k8s resources instead of devworkspace resource. Remove references to default namespace. move labels and annotations to devfile gem. fix tests. add size for the ephemeral volume. add editor components in the spec fixture. add ingress class name while generating k8s resources update editor image tag Update gemfile to use git repository of devfile gem Extract workspace url during config generation add actual state calculator add edge cases around deployment completion and workspace failure Add nil default. Add specs for actual state calculator Refactor devfile processing Fix tests Remove unrequired lines Fix typo Fix error with factory duplicate name - See note in code, workspace factory was creating duplicated names for different workspaces, which failed validation when attempting to save them. Move shared context file to ee dir Update gemfile checksum Add specs to convenience script Fix rubocop complaints Update gemfile Update gemfile checksum Add domain template Update gemfile Add trailing whitespace to yaml to fix tests Add tests and fix typos Fix failing CI pipeline Remove fast_spec_helper from actual_state_calculator_spec.rb - It's causing problems, see notes Remove unreachable code - to fix undercoverage failure Fix create workspace script Change agent domain suffix to localdev.me Replace ttyd with webide Support workspace ordering by updated_at Fix spec that verifies finder behavior with id Temporarily disable pagination Re-enable pagination Fix linting issues Fix danger error Temp dev workspace url fix Remove all references of devworkspace Use assertions that dont trigger dangerbot warning Refactor shared context and devfile fixtures Pass terminated flag in WorkspaceAgentInfo Cleanup displayed state Cleanup devfile fixtures more Write a happy-path feature spec for rails regression coverage Add wip e2e spec to verify workspace creation Complete e2e spec to verify workspace creation Refactor to extract reusable logic into a flow Remove redundant log Support cleanup of created workspaces in spec Remove unnecessary todo Add comment describing how to run the spec Temporarily update kas version for verification Quarantine the e2e spec Update spec to use hardcoded devfile project Fix minor linting issue Update spec to create new devfile project Use webide as the editor instead of vscode Fix project reference Fix linting issues Fix the flakiness of the spec Fix more linting issues Fix issues from the static-analysis pipeline Fix all lint issues (finally) Update testcase description Update with link to testcase Revert changes to kas version Fix quarantine type Add --tag description to comment doc and move it Archive devfile project during teardown Add helper script and make the spec parameterizable Increase retries to reduce flakiness Fix comments for clarity Add TODO to reduce duplication Add tests for workspace url Rename sent_to_agent_at field to responded_to_agent_at Fix n+1 query problem in reconcile loop Rewrite actual state calculator spec with fixtures - TODO: some cases are failing and skipped. Rewrite actual state calculator spec with fixtures - TODO: some cases are failing and skipped. Add more test coverage for reconciliation scenarios - Missed these files in previous commit Add workspace_updates_processor_reconciliation_scenarios_spec.rb to script Remove unnecessary disable_ddl_transaction Remove unnecessary ActiveSupport::Concern Only allow webide as editor Adds support to propogate Agent Configuration to rails - New table and model called Remote Develelopment Agent Config - Changes to the Agent config API to write to this table Caw clean up service layer interfaces Improve error handling if cluster agent has no remote dev config Rename agent communication api fields Introduce namespacing to domain layer Split out migration foreign keys Add failure for no components in the devfile Add structured logging and some cleanup Post-rebase integration fixes Regenerate gitlab.pot Remove commented code Fix specs Address review and danger feedback Add Remote Development feature flag checks Switch back to single global feature flag Fix failing CE spec that is picking up EE-only graphql field Add some explanatory comments on fields in reconcilation payloads Fix failing workspace_spec.rb Updates to workspaces table migration Update structure.sql Set arbitrary user id for all containers and init containers Remove TODOs for authorization Since these services are only called from internal endpoints relying on the existing authentication is sufficient. Contributes to: #409038 Remove unused scopes from workspace.rb Refactor workspace model validation test Update description to reflect validation being tested Respond with devfile validation errors Add more devfile validations Make graphql workspace field definitions more appropriate Update workspace metadata labels and annotations Add arch standards link to service constructor TODOs Delete unused scripts
Showing
- Gemfile 3 additions, 0 deletionsGemfile
- Gemfile.checksum 3 additions, 0 deletionsGemfile.checksum
- Gemfile.lock 2 additions, 0 deletionsGemfile.lock
- app/assets/javascripts/graphql_shared/constants.js 1 addition, 0 deletionsapp/assets/javascripts/graphql_shared/constants.js
- app/graphql/types/user_interface.rb 2 additions, 0 deletionsapp/graphql/types/user_interface.rb
- db/docs/remote_development_agent_configs.yml 10 additions, 0 deletionsdb/docs/remote_development_agent_configs.yml
- db/docs/workspaces.yml 10 additions, 0 deletionsdb/docs/workspaces.yml
- db/migrate/20221225010101_create_workspaces_table.rb 44 additions, 0 deletionsdb/migrate/20221225010101_create_workspaces_table.rb
- db/migrate/20221225010102_create_workspaces_user_foreign_key.rb 18 additions, 0 deletions...rate/20221225010102_create_workspaces_user_foreign_key.rb
- db/migrate/20221225010103_create_workspaces_project_foreign_key.rb 18 additions, 0 deletions...e/20221225010103_create_workspaces_project_foreign_key.rb
- db/migrate/20221225010104_create_workspaces_cluster_agent_foreign_key.rb 18 additions, 0 deletions...1225010104_create_workspaces_cluster_agent_foreign_key.rb
- db/migrate/20221225010105_create_remote_development_agent_configs_table.rb 16 additions, 0 deletions...25010105_create_remote_development_agent_configs_table.rb
- db/migrate/20221225010106_create_remote_development_agent_config_agent_foreign_key.rb 16 additions, 0 deletions...eate_remote_development_agent_config_agent_foreign_key.rb
- db/schema_migrations/20221225010101 1 addition, 0 deletionsdb/schema_migrations/20221225010101
- db/schema_migrations/20221225010102 1 addition, 0 deletionsdb/schema_migrations/20221225010102
- db/schema_migrations/20221225010103 1 addition, 0 deletionsdb/schema_migrations/20221225010103
- db/schema_migrations/20221225010104 1 addition, 0 deletionsdb/schema_migrations/20221225010104
- db/schema_migrations/20221225010105 1 addition, 0 deletionsdb/schema_migrations/20221225010105
- db/schema_migrations/20221225010106 1 addition, 0 deletionsdb/schema_migrations/20221225010106
- db/structure.sql 94 additions, 0 deletionsdb/structure.sql
... | ... | @@ -587,6 +587,9 @@ gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' |
# Work with RPM packages | ||
gem 'arr-pm', '~> 0.0.12' | ||
# Remote Development | ||
gem 'devfile', '~> 0.0.15.pre.alpha1' | ||
# Apple plist parsing | ||
gem 'CFPropertyList', '~> 3.0.0' | ||
gem 'app_store_connect' | ||
... | ... |
db/docs/remote_development_agent_configs.yml
0 → 100644
db/docs/workspaces.yml
0 → 100644
db/schema_migrations/20221225010101
0 → 100644
db/schema_migrations/20221225010102
0 → 100644
db/schema_migrations/20221225010103
0 → 100644
db/schema_migrations/20221225010104
0 → 100644
db/schema_migrations/20221225010105
0 → 100644
db/schema_migrations/20221225010106
0 → 100644
Please register or sign in to comment