-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Enable to set che.api.internal . #15682
Enable to set che.api.internal . #15682
Conversation
Signed-off-by: Masaki Muranaka <[email protected]>
Signed-off-by: Masaki Muranaka <[email protected]>
Why do we need this change (I understand that we can't set it from the configuration, I mean what are the user-story behind it)? How it would be used? Should we document that? |
@skabashnyuk At least it's strange that And the viewpoint of processes in containers, there is no merit to access API via Ingress and external load-balancer. Actually they will suppress performance, decrease reliability. Of course end users must access API via Ingress because they are out of K8s/OpenShift cluster. Referring to code of Che-Theia, it supports |
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 support the addition of internal communication as an option in Che, particularly because I've run into use cases where a cluster interferes with a cluster-internal pod communicating with an external-facing endpoint. However there are a few issues:
- Che is not built with internal communication in mind, so many components don't distinguish when external vs internal API endpoints should be used
- It's a documentation and setup burden, as some configurations of OpenShift/Kubernetes don't allow for inter-namespace communication via service.
- I don't think maintaining support for equivalent env vars
CHE_API
andCHE_API_EXTERNAL
is a good idea -- one of these should be removed.
Even so, I think this is a good addition.
@@ -28,7 +28,8 @@ | |||
private final String cheServerEndpoint; | |||
|
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.
Javadoc for this class should be updated ("URL of Che API" is unclear if we're supporting both public endpoint and internal service).
...c/main/java/org/eclipse/che/api/workspace/server/spi/provision/env/CheApiEnvVarProvider.java
Show resolved
Hide resolved
@amisevsk Nice catch.
In transitional, plan |
I created new PR #15697 similar to this PR. I think that will be more acceptable than this. |
Can one of the admins verify this patch? |
Issues go stale after Mark the issue as fresh with If this issue is safe to close now please do so. Moderators: Add |
What does this PR do?
Enables to set
che.api.internal
that is used by in-container pods.This property will be passed to pods as the environment variable named
CHE_API_INTERNAL
in pods.Almost all users don't need to care about this because the default value is set.
che.api
is bound to the environment variableCHE_API
andCHE_API_EXTERNAL
.It is same as the current implementation.
Note that
che.api.external
have not existed until now. And it won't provided in the future also.What issues does this PR fix or reference?
che.api.{external,internal}
if exist. #13774 .CHE_API_INTERNAL
. #15663 .