...

/

Adding Application Dependencies

Adding Application Dependencies

Adding all the dependencies needed to proceed with our use case.

Problem statement

Helm allows us to define templates. While that works great for our applications, it might not be the best idea for third-party apps.

Our application requires a database. To be more precise, it needs MongoDB. Now, we might say, “It should be easy to define the resources for MongoDB,” but that could quickly turn into a false statement.

Running MongoDB is not only about creating a Kubernetes StatefulSet and a Service. It’s much more than that. We also might need to have a Deployment when it’s running as a single replica, and a StatefulSet when it’s running in ReplicaSet mode. We might need to set up auto-scaling. We might need an operator that will join replicas into a ReplicaSet.

We might need different storage options, and we might need to be able to choose not to use storage at all. There are many other things that we might need to define or, even worse, to write a custom operator for that will tie different resources and make sure they’re working as expected.

But, the real question is not whether we can define everything we need to deploy and manage MongoDB. Rather, the question is whether that’s a worthwhile investment. More often than not, it’s not worth our time. Whenever possible, we should focus on what brings differentiating value. In most cases, that means we should focus mostly on developing, releasing, and running our own applications, and using services from other vendors and community knowledge for everything else. MongoDB is not an exception.

Adding the dependencies

Helm contains a massive library of charts ...