Search code examples
kuberneteskubernetes-helm

Shared dependencies with HELM


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.


Solution

  • 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.