honeycombio / helm-charts

Helm repository and charts for Honeycomb
Apache License 2.0
30 stars 39 forks source link

Configure separate affinities for refinery and refinery-redis deployments #56

Closed alexgenco closed 3 years ago

alexgenco commented 3 years ago

I want to prevent refinery pods from being scheduled on the same node, but allow them to be scheduled on the same node as the refinery-redis pod. I have this right now:

affinity:
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      - topologyKey: "kubernetes.io/hostname"
        labelSelector:
          matchExpressions:
            - key: "app.kubernetes.io/name"
              operator: In
              values: [refinery]

But this doesn't work because it applies to both the refinery and refinery-redis deployments, so the refinery-redis pod doesn't allow any refinery pods to be scheduled on its node. Is there a workaround here I'm missing, or would this require splitting out the affinities in the values file? I'm pretty new to k8s affinities.

Thanks!

MikeGoldsmith commented 3 years ago

Thanks for creating the issue @alexgenco.

I'm not sure how we'd get around this. Maybe @robbkidd and @puckpuck have some better insight into this?

puckpuck commented 3 years ago

I'm concerned about people using the Redis deployed with the Refinery chart in a production environment. Going over the docs, it's not clear that the default Redis deployed with this chart is an older version, and not configured in a high availability fashion.

Ideally in a production environment, you have a hardened and highly available Redis configuration setup that you can point Refinery to use instead.