project-codeflare / codeflare-operator

Operator for installation and lifecycle management of CodeFlare distributed workload stack
Apache License 2.0
7 stars 41 forks source link

One-liner installation #307

Open astefanutti opened 11 months ago

astefanutti commented 11 months ago

Name of Feature or Improvement

Provide a one-liner installation for the CodeFlare operator, e.g.:

$ kubectl apply -f https://github.com/project-codeflare/codeflare-operator/releases/download/v1.0.0/manifests.yaml

This is now possible thanks to the operator redesign (#216).

Description of Problem the Feature Should Solve

Officially, the operator can only be installed via OLM / Operator Hub. While that's convenient on OpenShift clusters that comes with OLM support OOTB, it's impractical for other Kubernetes distributions.

Describe the Solution You Would Like to See

It's conventional for operator to support a one-liner installation from the command line.

This is usually done by rendering Kustomize manifests in a single file, that's attached to each release. That file can also be versioned as part of the code.

This would be the official replacement for the Helm charts (e.g. in MCAD), that have filled the gap for installing the stack up until now.

Additional Context

The (non-OLM) e2e tests setup will be updated to use that installation file, so it's covered and non-regression guaranteed.

tedhtchang commented 11 months ago

@astefanutti This will be awesome! Could we create this manifests.yaml as part the v1.0.0-rc2 release so we I can try it out. With this 1 liner, do we still need another command to install the raycluster ClusteRrole and ClusterRoleBinding?

tedhtchang commented 11 months ago

This will provide the best experience for the issue

astefanutti commented 11 months ago

@tedhtchang

Could we create this manifests.yaml as part the v1.0.0-rc2 release so we I can try it out.

Sure.

With this 1 liner, do we still need another command to install the raycluster ClusteRrole and ClusterRoleBinding?

This is for us to decide whether we include the Ray RBAC resources in it. This would better be done once project-codeflare/multi-cluster-app-dispatcher#635 is done. An alternative would be to publish two manifests files, one with only the core resources, and another one that'd also include the extra resources for Ray.

tedhtchang commented 11 months ago

@astefanutti Another question is now we have 2 controllers to handle AppWrapper CR:

  1. mcad-controller from mcad repo which also has deployment options and examples
  2. codeflare-operator 1 liner will be convenient but missing all the details. Which one should we tell user to adapt ?
tedhtchang commented 10 months ago

Anyone looked into this? I think we just need another target in the Makefile and run target in a workflow.

.PHONY: dump-resources
dump-resource: manifests kustomize
    cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
    $(KUSTOMIZE) build config/${ENV} > ./codeflare-stack-kind.yaml
    git restore config/*