O setup-instance comando falha quando as assinaturas do operador não estão vinculadas
O cpd-cli
manage
setup-instance comando instala e atualiza IBM Cloud Pak foundational services e IBM Software
Hub. O comando falha se alguma das assinaturas do operador estiver desvinculada.
Sintomas
O cpd-cli
manage
setup-instance comando retorna o seguinte erro:
[✘] Error ...: Timeout after 10 minutes waiting for operator <operator-name> to be upgraded
[ERROR] ... cmd.Run() failed with exit status 1
[ERROR] ... Command exception: The setup-instance command failed (exit status 1). You may find output and logs in the /tmp/work/cpd-cli-workspace/olm-utils-workspace/work directory.
[ERROR] .. RunPluginCommand:Execution error: exit status 1
Causas
cpd-cli
manage
setup-instance comando falha porque uma ou mais das seguintes assinaturas de operador não estão vinculadas a uma versão do serviço de cluster ( CSV ):cpd-platform-operatoribm-iam-operatorNot applicableibm-commonui-operatoribm-namespace-scope-operatoroperand-deployment-lifecycle-manager
Diagnosticando o Problema
- Confirme se a assinatura do operador existe.
Use as informações retornadas pelo
cpd-cli manage setup-instancecomando para determinar qual operador é afetado.- Assinatura do
Not applicable oc get sub Not applicable \ --namespace=${PROJECT_CPD_INST_OPERATORS}- Assinatura do
ibm-namespace-scope-operator oc get sub ibm-namespace-scope-operator \ --namespace=${PROJECT_CPD_INST_OPERATORS}- Assinatura do
operand-deployment-lifecycle-manager oc get sub operand-deployment-lifecycle-manager \ --namespace=${PROJECT_CPD_INST_OPERATORS}
- Assinatura do
- Confirme se você vê oconstraints not satisfiableerro na assinatura
YAML.- Assinatura do
Not applicable oc get sub Not applicable \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o yaml- Assinatura do
ibm-namespace-scope-operator oc get sub ibm-namespace-scope-operator \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o yaml- Assinatura do
operand-deployment-lifecycle-manager oc get sub operand-deployment-lifecycle-manager \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o yaml
Procure a seguinte mensagem:
message: 'constraints not satisfiable: subscription <subscription-name> requires opencloud-operators/operator-ns/v<N.N>/<subscription-name>.v<N.N.N>, subscription <subscription-name> exists, clusterserviceversion <subscription-name>.v<N.N.N> exists and is not referenced by a subscription, opencloud-operators/operator-ns/v<N.N>/<subscription-name>.v<N.N.N> and @existing/operator-ns//<subscription-name>.v<N.N.N> originate from package ibm-namespace-scope-operator' reason: ConstraintsNotSatisfiable - Assinatura do
- Verifique o valor do campo
status.installedCSVna assinatura:- Assinatura do
Not applicable oc get sub Not applicable \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o jsonpath='{.metadata.creationTimestamp}{"\t"}{.status.installedCSV}{"\n"}'- Assinatura do
ibm-namespace-scope-operator oc get sub ibm-namespace-scope-operator \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o jsonpath='{.metadata.creationTimestamp}{"\t"}{.status.installedCSV}{"\n"}'- Assinatura do
operand-deployment-lifecycle-manager oc get sub operand-deployment-lifecycle-manager \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o jsonpath='{.metadata.creationTimestamp}{"\t"}{.status.installedCSV}{"\n"}'
- Se a assinatura estiver vinculada a um CSV, a resposta terá o seguinte formato:
<timestamp> <operator-name>.vN.N.NSe a assinatura estiver vinculada, o
cpd-cli manage setup-instancecomando está falhando por um motivo diferente. Analise os arquivoscpd-clide log para determinar a causa raiz. - Se a assinatura não estiver vinculada, a resposta terá o seguinte formato:
<timestamp>Se a assinatura não estiver vinculada, continue para Resolvendo o problema.
- Assinatura do
Resolvendo o problema
- Se você tiver permissões suficientes para excluir pods no
openshift-operator-lifecycle-managerprojeto, reinicie ocatalog-operatorpod noopenshift-operator-lifecycle-managerprojeto:oc delete $(oc get pods -l app=catalog-operator -o NAME --namespace=openshift-operator-lifecycle-manager) \ --namespace=openshift-operator-lifecycle-managerObservação: se você não tiver permissões suficientes para excluir pods noopenshift-operator-lifecycle-managerprojeto, vá para a etapa 3. - Verifique o valor do campo
status.installedCSVna assinatura:- Assinatura do
Not applicable oc get sub Not applicable \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o jsonpath='{.metadata.creationTimestamp}{"\t"}{.status.installedCSV}{"\n"}'- Assinatura do
ibm-namespace-scope-operator oc get sub ibm-namespace-scope-operator \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o jsonpath='{.metadata.creationTimestamp}{"\t"}{.status.installedCSV}{"\n"}'- Assinatura do
operand-deployment-lifecycle-manager oc get sub operand-deployment-lifecycle-manager \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ -o jsonpath='{.metadata.creationTimestamp}{"\t"}{.status.installedCSV}{"\n"}'
- Se a assinatura estiver vinculada a um CSV, a resposta terá o seguinte formato:
<timestamp> <operator-name>.vN.N.NSe a assinatura estiver vinculada a um CSV, execute novamente o
cpd-cli manage setup-instancecomando. - Se a assinatura não estiver vinculada, a resposta terá o seguinte formato:
<timestamp>Se a assinatura não estiver vinculada, prossiga para a próxima etapa.
- Assinatura do
- Obtenha o nome do CSV :
Not applicableCSVoc get csv \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ | grep Not applicableibm-namespace-scope-operatorCSVoc get csv \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ | grep ibm-namespace-scope-operatoroperand-deployment-lifecycle-managerCSVoc get csv \ --namespace=${PROJECT_CPD_INST_OPERATORS} \ | grep operand-deployment-lifecycle-manager
- Exclua o CSV retornado na etapa anterior:
oc delete csv <csv-name> \ --namespace=${PROJECT_CPD_INST_OPERATORS}Operator Lifecycle Manager (OLM) recria o CSV e vincula-o à assinatura.
- Execute novamente o
cpd-cli manage setup-instancecomando.