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

Update manifests and create_resources #222

Closed
orfeas-k opened this issue Oct 10, 2023 · 0 comments
Closed

Update manifests and create_resources #222

orfeas-k opened this issue Oct 10, 2023 · 0 comments
Labels
technical Technical information about implementation

Comments

@orfeas-k
Copy link
Contributor

orfeas-k commented Oct 10, 2023

Context

Since release 1.7, upstream KF has changed the way they deploy seldon-core component. Essentially, they stopped applying resouces manually(configmap, crds, webhook etc) and instead used the create_resources args in the container's exec command. What this means is that the controller will go ahead and initialize resources by itself using this initiliazer function.

Ideally, we would like to follow what upstream KF does. This would eliminate the work we 'll have to do on each update as we would not have to maintain our own manifests but rather update only the controller's version (plus some authorization manifests).

Issue

Unfortunately, this is not possible in our case. Seldon controller creates resources (webhook, webhook-service) and expects find the specific hardcoded labels which is not the case for us. It also expects to find a deployment with a specific name, thus we would get a failed to find my deployment error. We do not use a deployment, instead we have the charm creating the container and the service pointing to its pod.

What we 'll do

Thus, we will diverge from upstream and keep applying resources manually, while also setting this env variable explicitly to false. During updates, what we can do is:

  1. In a clean cluster, apply upstream KF manifests using kustomize build seldon-core-operator/base | kubectl apply -n kubeflow -f - from the kubeflow/manifests/contrib/seldon directory.
  2. Check what resources have been created in the cluster (we can verify those by looking in the initializer function)
  3. Go ahead and update our manifests accordingly

Note that:

  • we will still need to do a diff between old and new version KF manifests (as described in the Release handbook) for other manifests apart from those resources, like auth_manifests.
  • as with all sidecar charms, we do not include the deployment resource in our manifests since Pebble is responsible for creating the workload container in our case. However, we should consult any changes in the deployment that affect the container (e.g. its environment or command arguments).
  • we can view the CRD by kustomize building manifests from seldon-core/operator/config/default
@orfeas-k orfeas-k added the technical Technical information about implementation label Oct 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
technical Technical information about implementation
Projects
Development

No branches or pull requests

1 participant