Consolidate platform deploy into control-plane#10
Conversation
Set COMPOSE_PROJECT_NAME and make compose-down tear down Kind links. Assisted-By: Claude (Anthropic) Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-By: Claude (Anthropic) Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-By: Claude (Anthropic) Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Code Review by Qodo
1.
|
PR Summary by QodoConsolidate DCM platform Compose + Helm deploy into control-plane repo WalkthroughsDescription• Add full platform Docker Compose stack including dcm-ui and optional service providers. • Migrate Helm chart into control-plane, removing Traefik/api-gateway and routing directly to control-plane. • Document local runbook and Kind networking setup for service provider profiles and demos. Diagramgraph TD
Dev([Developer]) --> MF["Makefile targets"] --> Cfg["deploy/compose.yaml"] --> CP["control-plane API"] --> DS[("Postgres + NATS")]
Cfg --> UI["dcm-ui"]
Cfg --> SP[["Service providers"]]
Dev --> Helm["deploy/helm/dcm"] --> K8s[("Kubernetes / OpenShift")]
K8s --> CP --> DS
K8s --> UI
K8s --> SP
subgraph Legend
direction LR
_act(["Actor"]) ~~~ _svc["Service"] ~~~ _db[("Datastore")] ~~~ _cfg["Config/Chart"]
end
High-Level AssessmentThe following are alternative approaches to this PR: 1. Keep api-gateway/Traefik as the public entrypoint
2. Publish Helm/Compose as a standalone 'deploy' repository or Helm dependency
Recommendation: The PR’s approach (owning Compose + Helm packaging in control-plane and routing directly to control-plane) is the simplest operational model now that control-plane is the monolith entrypoint. The main thing to watch is keeping UI/provider environment variables and image-tag pinning consistent across Compose and Helm; otherwise the consolidation is a net reduction in moving parts versus maintaining an api-gateway/Traefik layer. File ChangesEnhancement (1)
Documentation (6)
Other (16)
ⓘ You are approaching your monthly quota for Qodo. Upgrade your plan |
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Stop mounting k8s-container's secret when only three-tier kubeconfig is set. Assisted-By: Claude (Anthropic) Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Use engine-specific network disconnect and rm commands. Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Assisted-By: Claude (Anthropic) Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
|
Should the SP deployment files be there? I mean this is not related to the control plane in any way so it feels weird to have them here |
Same it was for api-gateway. We need to add it somewhere, either here, or have some |
Yes but in the api gateway it made sense as it was a collection of services that were "put into contact", here it's not the case If the goal is to deploy the SP, then the deployments files should be in the SP repo no? And in any case, the "how to deploy" should be documented in the website |
Api-gateway was used to connect the "internal" services, like placement, policy, srpm and catalog. It was not used to connect the SPs and the "control-plane", that has it's own API. The deployment of SPs should not be there, with same logic as it should not be here.
To me it's not. It should be more about deploy the control plane, and tell the user how to connect service providers. Rather then deploy everything in once, like we had it before. |
But the api gateway repo had the compôse file that started the core DCM components and the SP, I am not sure to follow you here
So IIUC, the helm charts related to the SP must be removed here and we should only keep the DCM control plane related ones, right?
so doc and then charts can be placed in the SP repo, no? |
|
Related to the discussion above - Keeping DCM control-plane deployment independent and separate from the SPs make more sense to me. |
|
Having one easy helm chart to use for deploy the full stack is helpful IMO.
@gabriel-farache, regarding this there are multiple SPs, so how do you want to handle that? Also, having the helm chart here and then moving them in a dedicated repo is feasible, so we may revise the decision later. I don't have a strong opinion TBH. Happy to follow what the majority prefers. |
@jenniferubah not sure, having a dedicated GH repo for each SP it's very modular and may mimic the "community style". Regarding the duplication, what part is concerning? for sure the registration and status update are duplicated, but what else? |
Sure we can revisit, my main concern is that this repo is about control-plane, not the SP, not the whole solution for demo I would put a chart in each SP repo with the proper doc on how to plug it to the control plane deployed resources. The SP may disappear and be replaced by the agent soon but the same would apply |
That's correct, the question is if the benefit of maintaining separate repo is worth it at current stage. In general when user want to deploy DCM, he would deploy This IMHO should be eventually documented way of depoying DCM. So long term this looks like an "dcm-install" repo, with relevant script. But for now, to me it looks no issue to have those scripts in any folder here, or what would be the problem? |
no problem in term of deployment but more in term of logic and then maintenance and support when the charts become deliverables. |
I've created this epic https://redhat.atlassian.net/browse/FLPATH-4400 Please take a look, and let me know what you think. |
gabriel-farache
left a comment
There was a problem hiding this comment.
with the epic to track the effort for PROD ready deployment (https://redhat.atlassian.net/browse/FLPATH-4400) I am good with this PR
Good point - I was mostly thinking from an organizational perspective since we own/manage these SPs but forgot that these are individual domains which need to be maintained independently.
I was thinking deployment and documentation as well. However, you're right, it makes sense to keep SPs in separate GH repos. |
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Summary
Move full-stack Compose and Helm packaging from api-gateway into
Details
:8080(no Traefik)compose-downdisconnects Kind and cleans up legacydeploy_defaultdeploy/Supersedes dcm-project/api-gateway#40
Fixes
FLPATH-4239
Assisted-By: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini gciavarrini@redhat.com