Skip to content

Instantly share code, notes, and snippets.

@youcefguichi
Created April 26, 2024 14:34
Show Gist options
  • Save youcefguichi/c4c280a3b2d571cd9c5912390be16d76 to your computer and use it in GitHub Desktop.
Save youcefguichi/c4c280a3b2d571cd9c5912390be16d76 to your computer and use it in GitHub Desktop.
# sh vcluster.sh bublebee-vcluster youcef 600Mi 2000m 300Mi 1000m
VCLUSTER=$1
NAMESPACE=$2
MEMORY_LIMIT=$3
CPU_LIMIT=$4
MEMORY_REQUEST=$5
CPU_REQUEST=$6
echo "Creating v-cluster ..."
vcluster create vcluster-$VCLUSTER --namespace $NAMESPACE&
sleep 60
cat <<EOF > vcluster-$NAMESPACE.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-traffic
namespace: $NAMESPACE
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
ingress: []
egress: []
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: qouta
namespace: $NAMESPACE
spec:
hard:
requests.cpu: $CPU_REQUEST
requests.memory: $MEMORY_REQUEST
limits.cpu: $CPU_LIMIT
limits.memory: $MEMORY_LIMIT
EOF
echo "Vcluster config has been written to vcluster-$NAMESPACE.yaml"
echo "Welcome to your vcluster $VCLUSTER"
echo "getting all namespaces ..."
kubectl get ns
kubectx k3d-vcluster
kubectl get secret -n $NAMESPACE vc-vcluster-$VCLUSTER --template={{.data.config}} | base64 -d > vc-$VCLUSTER.yaml
echo "Kubecofig context has been written to vc-$VCLUSTER.yaml"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment