Detecção de Erro de Ajuste Fino
SUSE® Rancher Prime Continuous Delivery monitora o campo status de recursos implantados para determinar se um Bundle está saudável ou com erro. Em certos casos, SUSE® Rancher Prime Continuous Delivery pode interpretar uma condição no campo de status como um erro, mesmo que seja esperado ou inofensivo.
Você pode ajustar esse comportamento de duas maneiras:
-
Ignorar condições em
fleet.yaml -
Personalizar mapeamentos de erro com variáveis de ambiente
NOTA:
Você raramente deve precisar configurar a detecção de prontidão em SUSE® Rancher Prime Continuous Delivery com variáveis de ambiente. Se precisar, abra uma issue ou envie um pull request para ajudar a melhorar a detecção de prontidão padrão.
Ignorar condições em fleet.yaml
Use a configuração ignore.conditions no arquivo fleet.yaml para informar ao SUSE® Rancher Prime Continuous Delivery para ignorar condições específicas.
# from ref-fleet-yaml
# Ignore fields when monitoring a Bundle. This can be used when {product_name} thinks
# some conditions in Custom Resources makes the Bundle to be in an error state
# when it shouldn't.
ignore:
# Conditions to be ignored
conditions:
# In this example a condition will be ignored if it contains
# {"type": "Active", "status", "False"}
- type: Active
status: "False"
Esse método é útil quando um recurso ou controlador personalizado define condições que fazem com que SUSE® Rancher Prime Continuous Delivery marque um Bundle como falhado, mesmo que o recurso esteja saudável.
Configure o mapeamento de erro com variáveis de ambiente
Em SUSE® Rancher Prime Continuous Delivery v0.13, a detecção de erro foi aprimorada para lhe dar mais controle. Você pode usar a variável de ambiente CATTLE_WRANGLER_CHECK_GVK_ERROR_MAPPING para personalizar como as condições de recursos são interpretadas.
Essa variável permite que você defina, por Group, Version, Kind (GVK), quais valores de condição devem ser tratados como erros ou explicitamente não tratados como erros.
Defina essa variável na implantação do seu gráfico Helm do Fleet (values.yaml) usando extraEnv. O valor deve ser JSON.
# Extra environment variables passed to the fleet pods.
# extraEnv:
# - name: OCI_STORAGE
# value: "false"
NOTA:
Essa configuração é global para todos os controladores do Fleet e se aplica a cada GitRepo. Se você precisar ajustar o tratamento de erros apenas para um Bundle específico, use a opção ignoreConditions em fleet.yaml em vez disso.
Comportamento de mesclagem
Quando você substitui mapeamentos com CATTLE_WRANGLER_CHECK_GVK_ERROR_MAPPING:
-
Novas condições são mescladas com condições predefinidas.
-
Os valores das condições são substituídos para qualquer condição que você redefinir.
Por exemplo, considere o mapeamento padrão:
HelmChart.Failed=["True"]
Isso significa que Failed=True é tratado como um erro.
Quando você substitui com:
-
HelmChart.Failed=["False"] -
HelmChart.Ready=["False"]
Isso resulta em:
-
Failed=["False"]substitui o mapeamento padrão. Isso significa queFailed=Falseagora é tratado como um erro. -
Ready=["False"]é adicionado, entãoReady=Falsetambém é tratado como um erro. -
Outras condições inalteradas.
Exemplo de desativação da interpretação de erros
Suponha que cada valor de Failed foi anteriormente interpretado como um erro, por exemplo:
{ "type": "Failed", "status": ["True", "False"] }
Você pode restringir esse mapeamento para tratar apenas Failed=True como um erro definindo:
[
{
"gvk": "sample.cattle.io/v1, Kind=Sample",
"conditionMappings": [
{ "type": "Failed", "status": ["True"] }
]
}
]
Essa configuração significa que apenas Failed=True é tratado como um erro. Failed=False não é mais considerado um erro.
Você também pode desativar erros para qualquer valor de Failed fazendo:
{ "type": "Failed", "status": [""] }
Essa configuração garante que nenhum valor de Failed é tratado como um erro.
NOTA:
Substituir condições afeta apenas os mapeamentos de erro padrão (consulte Mapeamentos de erro padrão). SUSE® Rancher Prime Continuous Delivery ainda pode marcar um recurso como um erro porque outras verificações, como aquelas da biblioteca kstatus, continuam a ser executadas após sua personalização.
Mapeamentos de erro padrão
SUSE® Rancher Prime Continuous Delivery adiciona mapeamentos de erro padrão para interpretar certas condições de recurso no campo status como erros. Esses mapeamentos são aplicados além de outras verificações de prontidão, como aquelas realizadas pela biblioteca kstatus do Kubernetes.
Os seguintes mapeamentos padrão se aplicam:
-
HelmChart (
helm.cattle.io/v1) -
JobCreated: NemTruenemFalsesão considerados um erro. -
Failed:Trueé considerado um erro. -
Nó (
v1) -
OutOfDisk:Trueé considerado um erro. -
MemoryPressure:Trueé considerado um erro. -
DiskPressure:Trueé considerado um erro. -
NetworkUnavailable:Trueé considerado um erro. -
Implantação (
apps/v1) -
ReplicaFailure:Trueé considerado um erro. -
Progressing:Falseé considerado um erro. -
ReplicaSet (
apps/v1) -
ReplicaFailure:Trueé considerado um erro.