Shared dependencies with HELM

11/6/2018

So, is it possible to share the same pod among helm packages with a common reference. Example:

Scenario:

Package A
   ...
   - requirements.yml
         require: C


Package B
   ...
   - requirements.yml
         require: C

When I run:

helm install A
helm install B

These two pods for A and B project use the same C pod. Is it possible? Theres a documentation to help me with that?

PS: The C package in my case is a broker, but both A & B package can be deployed separately.

Thank you!

-- Alvaro Cantador
kubernetes
kubernetes-helm

1 Answer

11/7/2018

This should work fine with Helm. A little bit of background here. One key aspect here is update:

  • created/updated in that order.

When you update an object, i.e, kubectl apply on a Pod/Deployment/Service/etc if the object exists it won't be changed, so you'll end up with the same object in the end.

Also, Kubernetes objects with the same name use the idempotency principle:

All objects will have a unique name to allow idempotent creation and retrieval

In your example:

helm install stable/packageA => which also installs PackageC
helm install stable/packageB => will update PackageC, but it's already present and won't change.

You have to make sure that the dependencies for PackageA for PackageB are exactly the same version of PackageC.

-- Rico
Source: StackOverflow