Skip to content

Instantly share code, notes, and snippets.

View ialidzhikov's full-sized avatar

Ismail Alidzhikov ialidzhikov

  • Sofia, Bulgaria
View GitHub Profile
@ialidzhikov
ialidzhikov / add-constraint-to-shoot-status.sh
Last active May 20, 2025 06:38
Find Shoots with missing APIServerProxyUsesHTTPProxy constraint
#!/bin/bash
# Check if the correct number of arguments is provided
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <namespace> <shoot_name>"
exit 1
fi
NAMESPACE=$1
SHOOT_NAME=$2
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
TMP_DIR=$(mktemp -d -t run-XXXXXXXXXX)
echo "TMP_DIR=$TMP_DIR"
SEEDS=$(kubectl -n garden get shoots -o json | jq -r '.items[] | select(.status.hibernated == false) | .metadata.namespace + "," + .metadata.name')
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
image_size_for_linux_amd64() {
linux_amd64_entry=$(docker manifest inspect -v "$1" | jq -c 'if type == "array" then .[] else . end' | jq -r '. | select(.Descriptor.platform.os=="linux" and .Descriptor.platform.architecture=="amd64")')
echo "$linux_amd64_entry" | jq -c 'if has("SchemaV2Manifest") then .SchemaV2Manifest else .OCIManifest end' | jq -r '[ .layers[].size ] | add '; #| numfmt --to iec --format '%.2f';
}
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
[[ -z "$1" ]] && echo "no resource group passed" && exit 1
RESOURCE_GROUP="$1"
PVS=$(kubectl get pv -o json | jq -r '.items[] | select(.status.phase=="Failed") | .metadata.name')
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
TMP_DIR=$(mktemp -d -t run-XXXXXXXXXX)
echo "TMP_DIR=$TMP_DIR"
SHOOTS=$(kubectl -n garden get shoots -o json | jq -r '.items[] | select(.status.hibernated == false) | .metadata.namespace + "," + .metadata.name')
@ialidzhikov
ialidzhikov / main.go
Created April 12, 2023 12:27
ShootState `deletecollection`
package main
import (
"context"
"flag"
"fmt"
gardencoreversionedclientset "github.com/gardener/gardener/pkg/client/core/clientset/versioned"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/clientcmd"
package main
import (
"context"
"flag"
"fmt"
"time"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
"github.com/gardener/gardener/pkg/client/kubernetes"
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
while read NS; do
echo "> Checking $NS"
kinds=('configmaps' 'secrets' 'serviceaccounts' 'resourcequotas' 'backupentries.core.gardener.cloud' 'quotas.core.gardener.cloud' 'secretbindings.core.gardener.cloud' 'shoots.core.gardener.cloud' 'shootstates.core.gardener.cloud' 'terminals.dashboard.gardener.cloud' 'clusterboms.hub.k8s.sap.com' 'bastions.operations.gardener.cloud' 'rolebindings.rbac.authorization.k8s.io' 'roles.rbac.authorization.k8s.io')
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
vercomp () {
if [[ $1 == $2 ]]
then
return 0
{
"kind": "ClusterServicePlan",
"apiVersion": "servicecatalog.k8s.io/v1beta1",
"metadata": {
"name": "foo",
"creationTimestamp": null,
"ownerReferences": [
{
"apiVersion": "servicecatalog.k8s.io/v1beta1",
"kind": "ClusterServiceBroker",