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

feat: implement deploy operator #161

Open
troian opened this issue Dec 14, 2023 · 3 comments
Open

feat: implement deploy operator #161

troian opened this issue Dec 14, 2023 · 3 comments
Assignees
Labels
P0 repo/provider Akash provider-services repo issues

Comments

@troian
Copy link
Member

troian commented Dec 14, 2023

Rn manifest processing and deploy phases are tied together, which was a good solution at the time, now however it is causing quite a pain:

The problem

  1. whenever processing manifest and deploying workloads fails for whatever reason, the provider tears deployment down including manifest. This is especially painful during the upgrade phase when a new version of the manifest is introduced.
  2. The manifest controller does not support multiple manifest versions, which again creates huge pain during the upgrade process.
  3. Hostnames and IPs processing are currently done in the deployment manager. Both features are cluster-specific, and yet again migration process with the current implementation is quite challenging.

The solution

Actual deployment of the Kubernetes objects must be done by the independent operator. It watches create/update/delete events of the manifest and makes changes to deployment based only on those events.
The operator must support multiple manifest versions and update to the latest possible whenever configuration allows it.
Failures during deployment must not affect the manifest.

The Kubernetes Client only processes manifests (derives hostnames and IPs if any) and stores/deletes them as CRD objects. Kubernetes Client must ensure the correctness of CRD to specification.
The Client must support multiple manifest versions.

@troian troian added repo/provider Akash provider-services repo issues P0 labels Dec 14, 2023
@troian troian self-assigned this Dec 14, 2023
@troian troian moved this to In Progress (prioritized) in Akash Cohesive Product / Engineering Roadmap Dec 14, 2023
@brewsterdrinkwater
Copy link
Collaborator

December 19th, 2023:

  • Artur will refactor some prior code
  • Scott will take over once Artur has refactored

@brewsterdrinkwater
Copy link
Collaborator

January 9th, 2024:

  • This is waiting for for feature discovery first.
  • Akash Node discovery will come afterward.
  • Code base is done. Just need to make sure it is stable.

@brewsterdrinkwater
Copy link
Collaborator

April 2nd:

  • Changes are done, but some things need to be rebased.
  • This will be pushed in the next few weeks. Ideally this should go out before provider configs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P0 repo/provider Akash provider-services repo issues
Projects
Status: In Progress (prioritized)
Development

No branches or pull requests

2 participants