Atualização Engineering Lifecycle Management correção provisória do operador usando Kubernetes CLI

Para instalar a correção provisória na instância Engineering Lifecycle Management instância, você precisa atualizar o operador Engineering Lifecycle Management para a versão compatível com a correção provisória necessária usando o método Kubernetes CLI.

Antes de começar

  1. Certifique-se de que a configuração existente Engineering Lifecycle Management a configuração existente está funcionando sem nenhum erro e todos os Engineering Lifecycle Management aplicativos estejam acessíveis.
  2. Verifique se há as permissões apropriadas para atualizar o operador do Engineering Lifecycle Management. Para obter mais informações sobre funções de usuário, consulte Mapeamento de funções de usuário em Engineering Lifecycle Management on Hybrid Cloud
  3. Estratégia de aprovação de assinaturas
    Identifique a estratégia installPlanApproval para a assinatura instalada usando o seguinte comando
    kubectl get subscriptions <subscription-name> -o jsonpath="{.spec.installPlanApproval}'" -n <namespace-name>
    Substitua os espaços reservados para subscription-name e namespace-name. Por exemplo:
    kubectl get subscriptions ibm-elm-operator -o jsonpath="{.spec.installPlanApproval}'" -n example

Procedimento

  1. Faça login no seu cluster usando o comando suportado pela plataforma de contêineres.
    kubectl login --username=<cluster admin user> --password=<cluster admin password>
  2. Defina o projeto padrão (namespace) como aquele que contém o operador a ser atualizado usando o seguinte comando:
    kubectl project <namespace> 
  3. Obtenha uma lista de todas as assinaturas nesse projeto/espaço de nome usando o seguinte comando:
    kubectl get subscriptions 

    Esta etapa retorna as listas de assinaturas no namespace

    Nome Pacote Origem Canal
    ibm-elm-operator ibm-elm-operator ibm-elm-manifests release-elm7.1

    Na lista de informações recebidas, identifique o nome da assinatura do operador que precisa ser atualizado (na coluna Nome) e o nome do pacote correspondente (na coluna Pacote)

  4. Confirme se o canal para o qual você deseja fazer upgrade está disponível. Para obter as versões disponíveis do canal do operador para essa versão, substitua o nome do pacote no comando a seguir, usando as informações retornadas na etapa anterior
    kubectl get packagemanifests --selector=catalog=<catalog-source-name> -o jsonpath='Avaiable Channels : {"\n\n"}{range .items[*].status.channels[*]}{.name}{"\n"}{end}' -n <catalog-source-namespace>
    Substitua os espaços reservados para catalog-source-name e catalog-source-namespace. Por exemplo:
    kubectl get packagemanifests --selector=catalog=ibm-elm-manifests -o jsonpath='Avaiable Channels : {"\n\n"}{range .items[*].status.channels[*]}{.name}{"\n"}{end}' -n example
    O comando retorna uma lista de canais, portanto, você precisa confirmar que o canal a ser atualizado está disponível.
  5. O administrador do cluster ou um usuário com as permissões necessárias precisa corrigir a assinatura para mudar para a versão disponível do operador.
    kubectl patch subscription <subscription-name> --patch '{"spec":{"startingCSV":"<available-operator-version>"}}' --type=merge -n <namespace-name>

    Substitua os espaços reservados para subscription-name, available-operator-version e namespace-name. Por exemplo:

    kubectl patch subscription ibm-elm-operator --patch '{"spec":{"startingCSV":"ibm-elm-operator.v1.1.0"}}' --type=merge -n example
    Verifique se o canal está atualizado para a assinatura usando o seguinte comando.
    kubectl get subscription <subscription-name> -o jsonpath='Update channel : {.spec.channel}' -n <namespae-name
    Substitua os espaços reservados para subscription-name e namespace-name. Por exemplo:
    kubectl get subscription ibm-elm-operator -o jsonpath='Update channel : {.spec.channel}' -n example
  6. Identificar a estratégia de aprovação de assinaturas
    1. Assinatura com uma estratégia de aprovação automática

      Uma estratégia de aprovação automática para implantações de operadores significa que a nova versão de um operador é automaticamente atualizada para a versão mais recente disponível no canal selecionado. O upgrade ocorre sem intervenção manual e aprovação de um administrador de cluster ou usuário com as permissões necessárias.

      Valide se a versão do operador instalada é a versão mais recente disponível no canal usando o seguinte comando
      kubectl get subscription <subscription-name> -o jsonpath='Installed Operator Version : {.status.installedCSV} {"\n"}Available Operator Version : {.status.currentCSV}' -n <namespace-name>
      Substitua os espaços reservados para subscription-name e namespace-name. Por exemplo:
      kubectl get subscription ibm-elm-operator -o jsonpath='Installed Operator Version : {.status.installedCSV} {"\n"}Available Operator Version : {.status.currentCSV}' -n example
    2. Assinatura com uma estratégia de aprovação manual

      A estratégia de aprovação manual para implantações de operadores significa que a nova versão de um operador não é atualizada para a versão mais recente disponível no canal selecionado. Requer intervenção manual e aprovação de um administrador de cluster ou usuário com as permissões necessárias. O administrador do cluster ou o usuário com as permissões necessárias precisa corrigir a assinatura para mudar para a versão disponível do operador.

      Liste a versão do operador disponível no canal atual usando o seguinte comando
      kubectl get subscription <subscription-name> -o jsonpath='Installed Operator Version : {.status.installedCSV} {"\n"}Available Operator Version : {.status.currentCSV}' -n <namespace-name>
      Substitua os espaços reservados para subscription-name e namespace-name. Por exemplo:
      kubectl get subscription ibm-elm-operator -o jsonpath='Installed Operator Version : {.status.installedCSV} {"\n"}Available Operator Version : {.status.currentCSV}' -n <namespace-name>
      Corrige a versão do operador disponível no canal atual.
      kubectl patch subscription <subscription-name> --patch '{"spec":{"startingCSV":"<available-operator-version>"}}' --type=merge -n <namespace-name>
      Substitua os espaços reservados para subscription-name e namespace-name. Por exemplo:
      kubectl patch subscription ibm-elm-operator --patch '{"spec":{"startingCSV":"ibm-elm-operator.v1.1.0"}}' --type=merge -n example
  7. Aprovar InstallPlan

    O InstallPlan precisa ser aprovado manualmente por um administrador de cluster ou por um usuário com as permissões necessárias. Quando aprovados, os recursos são criados para atender aos requisitos dos componentes especificados no plano.

    1. Obter InstallPlan
      kubectl patch installplan <installplan-name> --patch '{"spec":{"approved":true}}' --type=merge -n <namespace-name>

      Substitua os espaços reservados para subscription-name e namespace-name. Por exemplo:

      kubectl patch installplan install-4hm69 --patch '{"spec":{"approved":true}}' --type=merge -n example
    2. Aprovar InstallPlan
      kubectl patch installplan <installplan-name> --patch '{"spec":{"approved":true}}' --type=merge -n <namespace-name>

      Substitua os espaços reservados para installplan-name e namespace-name. Por exemplo:

      kubectl patch installplan install-4hm69 --patch '{"spec":{"approved":true}}' --type=merge -n example
  8. Verificar a atualização do operador
    No upgrade bem-sucedido, se você descobrir que as versões instaladas e disponíveis do operador são as mesmas. Você precisa executar novamente o comando para verificar a atualização e verificar a versão do operador instalada usando o seguinte comando.
    kubectl get subscription <subscription-name> -o jsonpath='Installed Operator Version : {.status.installedCSV} {"\n"}Available Operator Version : {.status.currentCSV}' -n <namespace-name>
    Substitua os espaços reservados para subscription-name e namespace-name. Por exemplo:
    kubectl get subscription ibm-elm-operator -o jsonpath='Installed Operator Version : {.status.installedCSV} {"\n"}Available Operator Version : {.status.currentCSV}' -n example