创建要为存储库中的每个 Namspace 部署的 ResourceQuota 对象

问题描述

需要创建新的 ResourceQuota 对象,每个命名空间一个

每个命名空间的认 ResourceQuota 应为 2 cpu10 GB

针对上述情况的任何解决方案。

我试过的例子:

apiVersion: v1
kind: ResourceQuota
Metadata:
  name: mem-cpu-demo
spec:
  hard:
    requests.cpu: "2"
    requests.memory: 10Gi
    limits.cpu: "2"
    limits.memory: 10Gi

解决方法

没有内置的解决方案,但作为一种选择,您可以使用 bash 脚本来实现它。

这将在除 ResourceQuota 之外的所有命名空间中创建 kube-system 对象:

#!/bin/bash

for ns in $(kubectl get ns -o jsonpath="{.items[*].metadata.name}"); # get all namespaces in cluster
do
  if [ $ns != kube-system ] # check if it's not kube-system namespace
  then 
  cat <<EOF | kubectl apply -f - # body of kubectl apply -f
  apiVersion: v1
  kind: ResourceQuota
  metadata:
    name: resource-quota-$ns
    namespace: $ns
  spec:
    hard:
      requests.cpu: "2"
      requests.memory: 10Gi
      limits.cpu: "2"
      limits.memory: 10Gi
EOF
  fi
done

有用的链接: