Estou tentando instalar o Unifi em um servidor de cluster Kubernetes (K3S) usando Ansible e tive problemas ao tentar definir uma reivindicação de volume persistente.
Estou usando o módulo Kubernetes.Core e defini minha tarefa como:
- name: Define storage space for Unifi
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: unifi-cluster-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 100Mi
No entanto, quando executo meu manual, recebo o seguinte erro:
TASK [unifi : Define storage space for Unifi]
***********************************************************************
fatal: [central.example.com]: FAILED! => {"changed": false, "msg":
"Failed to create object: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",
\"metadata\":{},\"status\":\"Failure\",\"message\":\"PersistentVolumeClaim
\\\\\"unifi-cluster-pvc\\\\\" is invalid: spec.resources[storage]: Required
value\",\"reason\":\"Invalid\",\"details\":{\"name\":\"unifi-cluster-pvc\",
\"kind\":\"PersistentVolumeClaim\",\"causes\":[{\"reason\":\"FieldValueRequired\",
\"message\":\"Required value\",\"field\":\"spec.resources[storage]\"}]},\"code\":422}\\n'",
"reason": "Unprocessable Entity"}
Existe alguém que possa explicar o que está acontecendo?
Porque se eu criar um arquivo yaml chamado test.yml
com o seguinte conteúdo:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: unifi-cluster-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 100Mi
e execute o comando: kubectl apply -f test.yml
no meu controlador
Então recebo a mensagem de volta:
persistentvolumeclaim/unifi-cluster-pvc created
O erro indica que o
resource
bloco é necessário para criar o PVC .Parece que você perdeu o recuo do arquivo de definição de pvc no
resources
bloco porqueresources
é um subbloco despec
. Você pode atualizar a tarefa conforme mencionado abaixoPara obter informações mais detalhadas sobre a definição de pvc, verifique este documento oficial do Kubernetes em Persistent Volume Claim .