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

Improve configurability for third party tools #1894

Closed
3 tasks done
TylerJewell opened this issue Jul 21, 2016 · 11 comments
Closed
3 tasks done

Improve configurability for third party tools #1894

TylerJewell opened this issue Jul 21, 2016 · 11 comments
Labels
kind/enhancement A feature request - must adhere to the feature request template. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed.

Comments

@TylerJewell
Copy link

TylerJewell commented Jul 21, 2016

It is currently challenging for third party tool providers to integrate with Che because most configuration is done in che.properties file. This requires the vendors to get a custom che.properties file, configure che to use that custom property file, and then manage changes between versions.

This epics is a series of improvements to support 12 factor app philosophy. The tasks are ordered in terms of implementation priority.

@TylerJewell TylerJewell added kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. team/enterprise labels Jul 21, 2016
@garagatyi
Copy link

che.workspace.http_proxy=
che.workspace.https_proxy=
che.workspace.no_proxy=

these are related not only to workspaces, but for che server too


che.workspace.projects.storage=/projects
che.workspace.storage=${che.home}/workspaces

Please note (and probably comment in this example) that these props are mutually exclusive. che.workspace.projects.storage takes precedence if configured.


che.machine.java_opts

I think it is related to ws-agent only, not the whole runtime. @riuvshin can you comment on that?


che.workspace.ssh_connection_timeout_ms

it is connected to ssh machine implementation. Please respect that fact in property name.


che.workspace.terminal_linux_amd64
che.workspace.terminal_linux_arm7

These are connected to agent. Please respect that fact.


TODO: is this per machine, or for the entire environment?

per machine


che.docker.registry=${CHE_REGISTRY_HOST}:5000
che.docker.always_pull_image=true
che.docker.privilege=false
che.docker.registry_for_snapshots=false
che.docker.namespace=NULL
che.docker.unused_containers_cleanup_min=60
che.docker.ip
che.docker.swap=-1

these properties are connected with machine implementation. Whereas next properties are not connected.

che.docker.api
che.docker.tcp_connection_timeout_ms
che.docker.tcp_connection_read_timeout_ms
docker.registry.auth.*

Please respect that fact in properties names. Other plugins also can use docker, so properties should not overlap.

@TylerJewell
Copy link
Author

TylerJewell commented Jul 22, 2016

@garagatyi

che.workspace.http_proxy=
che.workspace.https_proxy=
che.workspace.no_proxy=

For these options, how are they set for the Che server as well? The JVM has already started, so the -D proxy options would not be set. Or did you mean to imply that these items are set into the JVM startup parameters of the agent?

@garagatyi - I appreciate your point that many of the items are connected to a single, particular type of machine implementation. But the properties as a result become confusing to the end user. It seems that there were two ways to address the properties for machines.

  1. Have simplified names - where anything that is for a particular machine, is really just part of che.workspace.*.
  2. Have fully qualified names - where the properties would be che.workspace.environment.machine["docker"].<property>. While this would be more technically accurate, it's unnecessarily confusing for the end user.

So, in the naming of the properties above, I have offered simplifications that make sense. So while I understand that che.docker.registry and che.docker.api are technically connected to different abstractions in the product, the end user will not make such a distinction, and introducing complexity in the property names becomes unhelpful.

@benoitf
Copy link
Contributor

benoitf commented Jul 22, 2016

@TylerJewell
Copy link
Author

That property, machine.server.extra.volume is not in the current template, so it needs to be added. I would add it as che.workspace.volume. What does this property do?

@benoitf
Copy link
Contributor

benoitf commented Jul 22, 2016

it allows to mount an extra volume in workspace agent
machine.server.extra.volume=/my/host-system/folder:/folder-inside-agent

@TylerJewell
Copy link
Author

How does the agent mount the volume? Do you mean that it allows for the workspace container to mount an extra volume?

@benoitf
Copy link
Contributor

benoitf commented Jul 22, 2016

yes
it adds a -v parameter when launching docker agent machine

@TylerJewell
Copy link
Author

So, will add the parameter, che.workspace.volume as the parameter.

@garagatyi
Copy link

I think I was mistaken when said about proxy properties, sorry.

@TylerJewell
Copy link
Author

Ok, no problem!

@bmicklea bmicklea added the kind/enhancement A feature request - must adhere to the feature request template. label Nov 3, 2016
@garagatyi
Copy link

Closing since all sub tasks are completed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A feature request - must adhere to the feature request template. 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

5 participants