Skip to content

Commit fa40e61

Browse files
authored
Merge pull request #318 from vshn/fix/deletion_protection_unmanaged_non_converged
Fix a bug where unmanaged objects aren't protected
2 parents 4a20415 + 7432f57 commit fa40e61

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

.devcontainer/postCreateCommand.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,22 @@ source <(kubectl completion zsh)
1313
complete -F __start_kubectl k
1414
" >> $HOME/.zshrc
1515

16+
(
17+
set -x; cd "$(mktemp -d)" &&
18+
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
19+
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
20+
KREW="krew-${OS}_${ARCH}" &&
21+
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
22+
tar zxvf "${KREW}.tar.gz" &&
23+
./"${KREW}" install krew
24+
)
25+
26+
sudo ln -s "$HOME/.krew/bin/kubectl-krew" /usr/local/bin/kubectl-krew
27+
28+
kubectl krew install view-serviceaccount-kubeconfig
29+
30+
sudo ln -s "$HOME/.krew/bin/kubectl-view_serviceaccount_kubeconfig" /usr/local/bin/kubectl-view_serviceaccount_kubeconfig
31+
1632
make setup-kindev
1733

1834
cp .kind/.kind/kind-config ~/.kube/config

Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,7 @@ render-diff: ## Render diff between the cluster in KUBECONF and the local branch
230230

231231
setup-kindev: ## Setup kindev in the .kind folder, will always create a new instance
232232
rm -rf .kind && \
233-
git clone --depth=1 https://github.com/vshn/kindev .kind && \
233+
git clone https://github.com/vshn/kindev .kind && \
234234
cd .kind && \
235-
rm -rf .git && \
236235
make clean && \
237236
make vshnall

pkg/controller/webhooks/deletionprotection.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,8 @@ func checkManagedObject(ctx context.Context, obj client.Object, c client.Client,
120120
func checkUnmanagedObject(ctx context.Context, obj client.Object, c client.Client, cpClient client.Client, l logr.Logger) (compositeInfo, error) {
121121
namespace := &corev1.Namespace{}
122122

123-
if cpClient == nil {
124-
cpClient = c
125-
}
126-
127-
err := cpClient.Get(ctx, client.ObjectKey{Name: obj.GetNamespace()}, namespace)
123+
// we need to check namespaces against the local service cluster, otherwise they are never actually found
124+
err := c.Get(ctx, client.ObjectKey{Name: obj.GetNamespace()}, namespace)
128125
if err != nil {
129126
if apierrors.IsNotFound(err) {
130127
return compositeInfo{Exists: false}, nil

0 commit comments

Comments
 (0)