Если у меня есть такое определение ресурса, как это:
$ kubectl get crd unifiedpushservers.push.aerogear.org
NAME CREATED AT
unifiedpushservers.push.aerogear.org 2019-06-05T13:39:23Z
Можно ли создать ResourceQuota
, который бы ограничивал количество пользовательских ресурсов этого типа до 1, отказываясь от попыток создания дополнительных?
Вот что я пробовал до сих пор:
apiVersion: v1
kind: ResourceQuota
metadata:
name: unifiedpushservers-limit
spec:
hard:
count/unifiedpushservers.push.aerogear.org: 1
Хотя это принято и создано, кажется, что подсчет не работает, и я могу создать более одного экземпляра.
Редактировать: Если я укажу целочисленное значение поля в спецификации, например:
apiVersion: v1
kind: ResourceQuota
metadata:
name: unifiedpushservers-limit
spec:
hard:
count/unifiedpushservers.push.aerogear.org: "1"
тогда я получаю следующее сообщение об ошибке при попытке создать хотя бы один экземпляр:
Error from server (Forbidden): error when creating "./deploy/crds/push_v1alpha1_unifiedpushserver_cr.yaml": unifiedpushservers.push.aerogear.org "example-unifiedpushserver" is forbidden: status unknown for quota: unifiedpushservers-limit
Это похоже на прогресс, но я мог бы уйти еще дальше, я не уверен.
Кроме того, я должен упомянуть, что я пробую это на кластере OpenShift v3.11, который возвращает следующую информацию о версии Kubernetes:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.0+d4cacc0", GitCommit:"d4cacc0", GitTreeState:"clean", BuildDate:"2018-10-10T16:38:01Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.0+d4cacc0", GitCommit:"d4cacc0", GitTreeState:"clean", BuildDate:"2018-11-09T15:12:26Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}