Skip to content
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

Machine Agent specification and implementation #1823

Closed
11 tasks done
garagatyi opened this issue Jul 18, 2016 · 8 comments
Closed
11 tasks done

Machine Agent specification and implementation #1823

garagatyi opened this issue Jul 18, 2016 · 8 comments
Assignees
Labels
kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed.
Milestone

Comments

@garagatyi
Copy link

garagatyi commented Jul 18, 2016

We have new abstraction called agent to applying on Machine on start time
https://docs.google.com/document/d/1fEO8iY8JnfeGxYVEQV6TMIiGbiwNEYqvH1f_ctjATkc/edit
Agent essentialy means the script to call when Machine starts (using Docker exec in case of Docker Machine for ex).
For the time we talk about 3 types of agent:

  • Dev (which includes what we need to dev machine)
  • Terminal (web terminal)
  • Ssh
    After we consider Language Server to be processed as an Agent.

The goals are:

NOTE: for this iteration for simplification we suppose that all the ports mapping (if needed for agent) is declared in the servers section of environment, will see then.

@garagatyi garagatyi added the kind/task Internal things, technical debt, and to-do tasks to be performed. label Jul 18, 2016
@vkuznyetsov vkuznyetsov added status/open-for-dev An issue has had its specification reviewed and confirmed. Waiting for an engineer to take it. sprint/next team/enterprise labels Jul 18, 2016
@tolusha tolusha added status/in-progress This issue has been taken by an engineer and is under active development. and removed status/open-for-dev An issue has had its specification reviewed and confirmed. Waiting for an engineer to take it. labels Jul 19, 2016
@TylerJewell TylerJewell added kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. and removed kind/task Internal things, technical debt, and to-do tasks to be performed. labels Jul 20, 2016
@vkuznyetsov vkuznyetsov removed sprint/current status/in-progress This issue has been taken by an engineer and is under active development. labels Aug 4, 2016
@TylerJewell
Copy link

@gazarenkov @tolusha @vkuznyetsov - can we define a little more detail for the specification of done here?

1: How will stacks defined by users reference a minimum set of agents that are mandatory? I know that this agent concept is built into the workspace definition, but how does it map out to the stack level?

2: Will there be any user experience around the process of removing stacks where we communicate potential issues that the system may face when an agent is removed from a running workspace?

@gazarenkov
Copy link
Contributor

  1. The model is stack -> workspace -> environment -> agents. I.e. when you define stack you define all the chain.
  2. Agent's presence is sufficient for workspace/machine start time. After agent materialized to scripts/program installed and|or launched inside machine. So "removing agent from running workspace" makes no sense.

@TylerJewell
Copy link

What about the use case where a user has an existing workspace that is running and they wish to add a new agent to it. Specifically, user:
1: Creates new blank workspace.
2: Performs a git clone to get some code installed in a blank PT.
3: User opens a file with a .ts extension
4: We recognize that .ts has a language server agent available
5: We invite user to add ts language server - they say yes
6: We add language server.

Are we going to be able to avoid restarting workspace in this situation, as I think it is reasonable. And then the same would be true for user who wants to remove such agent.

@tolusha
Copy link
Contributor

tolusha commented Aug 12, 2016

Agent might require additional workspace configuration that can be done only before workspace is started.

@gazarenkov gazarenkov added the status/in-progress This issue has been taken by an engineer and is under active development. label Aug 12, 2016
@gazarenkov
Copy link
Contributor

@TylerJewell yes, in all of this cases workspace should be restarted. What we need for the cases like this is good UX.

@slemeur
Copy link
Contributor

slemeur commented Aug 12, 2016

I had this first draft mockup for managing the agents from a workspace.

1 - workspace details - agents - july 2016

I have few questions about the agents:

  • can the user get the complete list of available agents?
  • are the embedded stacks, providing a list of pre-defined active agents and a list of approved agents (by approve, I mean - agents that we know will work with the stack)
  • can the user upload an agent, to a workspace's machine or to the system?
  • in a multi-machine modes, is the user defining where the agents must be deployed? or they are always deployed in the dev-machine?

I understand the UX problem you are mentioning about reconfiguring a workspace which can be done accross multiple options and then having to restart the workspace to apply the new configuration. This is a separate issue we should not bother about for now - just focus on the use cases.

@tolusha
Copy link
Contributor

tolusha commented Aug 12, 2016

  • we can only provide list of Che agents but we keep in mind that user can inject any agent he wants by adding corresponding url.
  • agents have nothing with the stack. They belong to workspace.
  • clarify pls "upload agent" ?
  • they can be deployed on any machine

@gazarenkov
Copy link
Contributor

gazarenkov commented Aug 13, 2016

@slemeur do not overthink about Agent UI
In fact it is small part of Workspace Environment conf, I would say it is a list + field to add new (which may be dropdown list if/when we are able to retrieve all accessible agents from registry) in Environment configuration page.

@tolusha tolusha added status/pending-merge status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. and removed status/in-progress This issue has been taken by an engineer and is under active development. status/pending-merge labels Aug 30, 2016
@vkuznyetsov vkuznyetsov removed status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. team/enterprise labels Aug 31, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed.
Projects
None yet
Development

No branches or pull requests

7 participants