kubernetes-sigs / kubebuilder-declarative-pattern

A toolkit for building declarative operators with kubebuilder
Apache License 2.0
256 stars 85 forks source link

Cross namespace pruning is not working as intended #230

Closed JeffLuoo closed 1 year ago

JeffLuoo commented 2 years ago

What happened: Using WithApplyPrune in the operator doesn't prune the objects in different namespaces.

What you expected to happen: All objects in all namespaces with matching labels will be pruned.

How to reproduce it (as minimally and precisely as possible): Use the guestbook operator example and replace the manifest file with

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

to simplify the deployment.

Deploy the operator in the cluster and wait for the nginx-deployment to be deployed. Terminate the operator and update the namespace of the deployment to default and then restart the operator. I see that the nginx-deployment in the kube-system namespace still exists where the addons.example.org/guestbook: guestbook-sample is the common labels used by prune.

Anything else we need to know?:

Environment:

JeffLuoo commented 2 years ago

cc: @justinsb

k8s-triage-robot commented 2 years ago

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

JeffLuoo commented 1 year ago

/unstale

stephanhorsthemke commented 1 year ago

I wonder if the actual problem here is the different namespaces or if pruning generally did not work (also in the same namespace? I wonder if Deployments are by default whitelisted for pruning, if not, I guess that #274 might fix this. Did you try running the same command with kubectl manually and have you been able to prune the Deployment with that?

k8s-triage-robot commented 1 year ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

k8s-triage-robot commented 1 year ago

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues according to the following rules:

You can:

Please send feedback to sig-contributor-experience at kubernetes/community.

/close not-planned

k8s-ci-robot commented 1 year ago

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to [this](https://github.com/kubernetes-sigs/kubebuilder-declarative-pattern/issues/230#issuecomment-1385274742): >The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. > >This bot triages issues according to the following rules: >- After 90d of inactivity, `lifecycle/stale` is applied >- After 30d of inactivity since `lifecycle/stale` was applied, `lifecycle/rotten` is applied >- After 30d of inactivity since `lifecycle/rotten` was applied, the issue is closed > >You can: >- Reopen this issue with `/reopen` >- Mark this issue as fresh with `/remove-lifecycle rotten` >- Offer to help out with [Issue Triage][1] > >Please send feedback to sig-contributor-experience at [kubernetes/community](https://github.com/kubernetes/community). > >/close not-planned > >[1]: https://www.kubernetes.dev/docs/guide/issue-triage/ Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.