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

Provide PodDisruptionBudget spec #178

Open
porscheme opened this issue Feb 14, 2023 · 8 comments
Open

Provide PodDisruptionBudget spec #178

porscheme opened this issue Feb 14, 2023 · 8 comments
Labels
type/feature req Type: feature request

Comments

@porscheme
Copy link

Please check the FAQ documentation before raising an issue

Describe the bug (required)

  • Current charts does not provided PodDisruptionBudget spec. Withtout this, nebula cluster reliability goes down in the cloud deployments.

Please refer to bug 5335 on Nebula repo

Your Environments (required)
v3.3.0

@wey-gu
Copy link
Contributor

wey-gu commented Feb 16, 2023

@MegaByte875 could you please take a look at this? thanks

@porscheme
Copy link
Author

Can you prioritize this, its happened again today.

I wonder how product team does it? without PDB?

@MegaByte875
Copy link
Contributor

MegaByte875 commented Feb 16, 2023

@porscheme Actually nebula-operator haven't support it yet, I think do a loseless upgrade with k8s nodes need consider many things, I will provide you the PDB configuration in charts asap.

@porscheme
Copy link
Author

Thanks for opening, looking forward for PDB instructions.

@porscheme
Copy link
Author

Any update?

@MegaByte875
Copy link
Contributor

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: nebula-storaged-pdb
  namespace: nebula
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      app.kubernetes.io/cluster: nebula
      app.kubernetes.io/component: storaged
      app.kubernetes.io/managed-by: nebula-operator
      app.kubernetes.io/name: nebula-graph

Here is a reference @porscheme

@porscheme
Copy link
Author

managed-by

Thanks for the spec @MegaByte875

Where would this go?

  • 'nebula-operator/charts/nebula-cluster/templates/' folder?
  • 'nebula-operator/charts/nebula-operator/templates/' folder?

Also, your comments 5335 are bit confusing

  • Are you suggesting, we have to implement them on our own?
  • nebula-operator charts already has the ValidatingAdmissionWebhook?
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: nebula-storaged-pdb
  namespace: {{ template "nebula-cluster.namespace" . }}
spec:
  maxUnavailable: 1
  selector:
    matchLabels:
      app.kubernetes.io/cluster: {{ template "nebula-cluster.name" . }}
      app.kubernetes.io/component: storaged
      app.kubernetes.io/managed-by: nebula-operator
      app.kubernetes.io/name: nebula-graph

@MegaByte875
Copy link
Contributor

MegaByte875 commented Apr 3, 2023

  1. Put pdb yamls in nebula-cluster/templates/ folder
  2. We haven't implemented the full solution in operator yet, if your business need the feature, we can plan the it ahead.
  3. The existing ValidatingAdmissionWebhook is used for validating replicas, your case webhook is used for prevent draining stateful pods until the states on which transfer successfully @porscheme

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/feature req Type: feature request
Projects
None yet
Development

No branches or pull requests

4 participants