feat(exapp_development): add Kubernetes setup instructions#14121
feat(exapp_development): add Kubernetes setup instructions#14121
Conversation
50f0fea to
f986f22
Compare
There was a problem hiding this comment.
Could we also add documentation for the next env vars:
HP_K8S_NAMESPACE
HP_K8S_STORAGE_CLASS
HP_K8S_DEFAULT_STORAGE_SIZE
HP_K8S_BEARER_TOKEN_FILE
Besides the setup with kind app that usually used only for development, will we describe at least one type of production setup?
| .. note:: | ||
|
|
||
| You can also hit the agent directly on | ||
| ``http://127.0.0.1:8200/...`` for debugging, but that bypasses the |
There was a problem hiding this comment.
Should we mention that this port is only reachable from the inside of the HaRP container as it is the internal SPOE control API?
There was a problem hiding this comment.
I added a sentence to that note, but I'm not sure if I understand what the SPOE control API is or why it might be important.
There was a problem hiding this comment.
You are right to question this - after some thinking I agree that we should not mention SPOE here.
It is an HAProxy implementation detail that does not help readers.
WDYT about adding this instead:
.. note::
HaRP also has an internal HTTP control API on ``127.0.0.1:8200`` that handles ExApp lifecycle operations (create, start, stop, remove, expose).
You could ``docker exec`` into the HaRP container and curl it directly for low-level debugging, but this bypasses HAProxy's shared-key authentication and is not reachable from outside the container.
|
|
||
| .. note:: | ||
|
|
||
| The ``redeploy_host_k8s.sh`` script generates this token |
There was a problem hiding this comment.
Where should we mention that one important thing for dev setups that redeploy_host_k8s.sh script does is the connecting of the master_default and nc-exapps-control-plane networks so ExApp pods (running inside kind) can reach Nextcloud (running in Docker)?
There was a problem hiding this comment.
Added a step in step 4 when the script is executed, but to clarify, is the master_default network being connected to the control plane or to the node (as suggested in this line of the script)?
There was a problem hiding this comment.
In a default kind cluster (single node), the control-plane container IS the node - there's no separate container.
nc-exapps-control-plane serves both roles.
The command is: docker network connect master_default nc-exapps-control-plane
This bridges the two Docker networks so that ExApp pods (running inside kind) can route traffic to Nextcloud (running on master_default)
One small suggestion for step 3 - naming the actual network is clearer:
3. Connect the kind node to the ``master_default`` Docker network
| "http" "<GATEWAY_IP>:8780" "http://nextcloud.local" \ | ||
| --harp \ | ||
| --harp_shared_key "some_very_secure_password" \ | ||
| --harp_frp_address "<GATEWAY_IP>:8782" \ |
There was a problem hiding this comment.
The doc should clarify that --harp_frp_address is required syntactically but FRP is not used for K8s ExApp traffic
There was a problem hiding this comment.
"Required syntactically" meaning it's required by the occ command, but the value is not used anywhere in the whole cluster?
There was a problem hiding this comment.
yes, this value is not used by Kubernetes as we do not support FRP in the Kubernetes
Signed-off-by: Edward Ly <contact@edward.ly>
Signed-off-by: Edward Ly <contact@edward.ly>
f986f22 to
aec0743
Compare
Summary
.rstformat viapandocand cleaned up some of the text and formatting.Cosmetic changes such as converting text diagrams to Mermaid may be done at a later time.(done)🖼️ Screenshots