Conectando-se ao seu provedor de atributos personalizados

Depois de criar um servidor API de provedor de atributos personalizados, você deve se conectar IBM® Software Hub ao provedor de atributos personalizados.

Quem precisa concluir esta tarefa?
Para concluir esta tarefa, você deve ser:
  • Um administrador de cluster
  • Um administrador de instância
Quando você precisa concluir essa tarefa?

Conclua esta tarefa se desejar usar um provedor de atributos personalizado para anexar automaticamente atributos ao perfil do IBM Software Hub usuário.

Antes de iniciar

Melhor prática: você pode executar muitos dos comandos desta tarefa exatamente como estão escritos se configurar variáveis de ambiente para sua instalação. Para obter instruções, consulte Configurando variáveis de ambiente de instalação.

Certifique-se de obter as variáveis de ambiente antes de executar os comandos nesta tarefa.

Você deve ter um servidor API de provedor de atributos personalizados existente.

Procedimento

Para se conectar ao seu provedor de atributos personalizados, execute as seguintes etapas:

  1. Configure as variáveis de ambiente a seguir:
    1. Defina a variável CONFIGMAP_NAME de ambiente com o nome que deseja usar para identificar a configuração.

      O exemplo a seguir usa o nome recomendado: cpd-custom-attribute-provider-extension

      export CONFIGMAP_NAME=cpd-custom-attribute-provider-extension
    2. Defina a variável API_SERVER_URL de ambiente como o URL e do provedor de atributos personalizados:
      export API_SERVER_URL=<URL>
    3. Defina a variável DISPLAY_NAME de ambiente como o nome de exibição que você deseja usar para identificar a configuração no banco de dados onde IBM Software Hub os metadados são armazenados.
      export DISPLAY_NAME="Custom Attribute Provider"
  2. Crie uma attribute_provider extensão:

    O servidor API não requer nenhuma autenticação
    cat <<EOF |oc apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        icpdata_addon: "true"
      name: ${CONFIGMAP_NAME}
      namespace: ${PROJECT_CPD_INST_OPERANDS}
    data:
      extensions: |
        [
          {
            "extension_point_id": "attribute_provider",
            "extension_name": "custom_attribute_provider"
            "display_name": "${DISPLAY_NAME}",
            "order_hint": 600,
            "details": {
              "url": "${API_SERVER_URL}"
            }
          }
        ]
    EOF

    O servidor API requer um token portador para autenticação
    cat <<EOF |oc apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        icpdata_addon: "true"
      name: ${CONFIGMAP_NAME}
      namespace: ${PROJECT_CPD_INST_OPERANDS}
    data:
      extensions: |
        [
          {
            "extension_point_id": "attribute_provider",
            "extension_name": "custom_attribute_provider"
            "display_name": "${DISPLAY_NAME}",
            "order_hint": 600,
            "details": {
              "url": "${API_SERVER_URL}"
              "secretTokenKey": "custom_attribute_provider_token"
            }
          }
        ]
    EOF

    O servidor API requer um certificado TLS para autenticação
    cat <<EOF |oc apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        icpdata_addon: "true"
      name: ${CONFIGMAP_NAME}
      namespace: ${PROJECT_CPD_INST_OPERANDS}
    data:
      extensions: |
        [
          {
            "extension_point_id": "attribute_provider",
            "extension_name": "custom_attribute_provider"
            "display_name": "${DISPLAY_NAME}",
            "order_hint": 600,
            "details": {
              "url": "${API_SERVER_URL}"
              "secretCertificateKey": "custom_attribute_provider_certificate"
            }
          }
        ]
    EOF

    O servidor API requer um token portador e um certificado TLS para autenticação
    cat <<EOF |oc apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      labels:
        icpdata_addon: "true"
      name: ${CONFIGMAP_NAME}
      namespace: ${PROJECT_CPD_INST_OPERANDS}
    data:
      extensions: |
        [
          {
            "extension_point_id": "attribute_provider",
            "extension_name": "custom_attribute_provider"
            "display_name": "${DISPLAY_NAME}",
            "order_hint": 600,
            "details": {
              "url": "${API_SERVER_URL}"
              "secretCertificateKey": "custom_attribute_provider_certificate"
              "secretTokenKey": "custom_attribute_provider_token"
            }
          }
        ]
    EOF

  3. Se o seu servidor API exigir autenticação, defina as seguintes variáveis de ambiente:
    1. Se o seu servidor API exigir um token portador para autenticação, defina a variável BEARER_TOKEN de ambiente com o valor do token portador:
      export BEARER_TOKEN=<bearer-token>
    2. Se o seu servidor API exigir um certificado TLS para autenticação, defina a variável TLS_CERTIFICATE de ambiente como o nome completo do certificado TLS:
      export TLS_CERTIFICATE=<fully-qualified-tls-certificate-name>
  4. Crie um segredo chamado zen-ext-attribute-provider-secret:

    O servidor API não requer nenhuma autenticação
    oc create secret generic zen-ext-attribute-provider-secret \
    -n ${PROJECT_CPD_INST_OPERANDS}

    O servidor API requer um token portador para autenticação
    oc create secret generic zen-ext-attribute-provider-secret \
    -n ${PROJECT_CPD_INST_OPERANDS} \
    --from-literal=custom_attribute_provider_token=${BEARER_TOKEN}

    O servidor API requer um certificado TLS para autenticação
    oc create secret generic zen-ext-attribute-provider-secret \
    -n ${PROJECT_CPD_INST_OPERANDS} \
    --from-file=custom_attribute_provider_certificate=${TLS_CERTIFICATE}

    O servidor API requer um token portador e um certificado TLS para autenticação
    oc create secret generic zen-ext-attribute-provider-secret \
    -n ${PROJECT_CPD_INST_OPERANDS} \
    --from-literal=custom_attribute_provider_token=${BEARER_TOKEN} \
    --from-file=custom_attribute_provider_certificate=${TLS_CERTIFICATE}

O quê fazer em seguida

Agora que você se conectou IBM Software Hub ao seu provedor de atributos personalizados, está pronto para concluir a especificação dos atributos personalizados a serem usados em IBM Software Hub.