Gerenciamento de configuração para o Orchestration Pipelines
O gerenciamento de configuração oferece recursos centralizados de configuração para o Orchestration Pipelines. Ele expõe uma API gRPC baseada em protobuf com uma interface REST (por meio do grpc-gateway) e oferece suporte a ambientes multilocatários. O serviço oferece suporte a ambientes multilocatários e garante uma configuração consistente nos âmbitos do sistema, do locatário e do contêiner de ativos.
Modelo de resolução de configuração
Os valores de configuração são avaliados seguindo uma ordem de precedência rígida e determinística. O sistema não combina valores entre escopos. Ordem de resolução: Configurações do contêiner de ativos (substituição no nível do projeto) Configurações do locatário (valores padrão para o locatário) Padrões integrados do sistema O primeiro valor definido nessa sequência é retornado e utilizado.
Exemplo: Resolução de default_pipeline_job_name_suffix
- Se o contêiner de ativos definir um valor, esse valor será retornado.
- Se o contêiner de ativos não definir um valor e o locatário definir um, o valor do locatário será retornado.
- Se nenhum dos dois definir um valor, o sistema retorna o valor padrão:
".Pipeline job"
Resolução no nível do locatário
As configurações do locatário não são herdadas de outros locatários ou sistemas:
- Se um valor for explicitamente armazenado, esse valor é retornado.
- Se nenhum valor for armazenado, é retornado um valor padrão predefinido.
Valores padrão e estado inicial do sistema
Em uma nova instalação, o sistema é inicializado com configurações padrão predefinidas. Nesta fase, não há configurações específicas para cada locatário. Os seguintes padrões se aplicam:
default_pipeline_job_name_suffix = ".Pipeline job"nested_job_execution_mode = INDEPENDENT_JOBS_MODE
Configuração padrão do contêiner de ativos:
{
"allowed_operational_scope": "WIDE_SCOPE",
"resource_reference_type": "EXACT_BY_ID",
"pipeline_save_mode": "AUTO_SAVE",
"jobs_deletion_mode": "LEAVE_ORPHAN_JOBS",
"runner_type": "PIPELINE_RUNNER",
"nested_job_execution_mode": "INDEPENDENT_JOBS_MODE",
"default_pipeline_job_name_suffix": ".Pipeline job"
}
Endpoints da API para recuperar dados de configuração
O serviço disponibiliza pontos de extremidade REST que refletem a API subjacente do gRPC.
Recuperar configurações do locatário
GET /apis/v1/tenant_settings
Retorna todos os valores de configuração no nível do locatário.
Recuperar configurações do contêiner de ativos
GET /apis/v1/asset_container_settings?project_id=<project_id>
Retorna a configuração do contêiner de ativos especificado. Se uma configuração não estiver definida neste nível, o valor efetivo deverá ser determinado com base na hierarquia definida.
Interface de linha de comando para gerenciar configurações de locatário
As configurações do tenant estão disponíveis por meio da cpdctl CLI a partir da versão 1.8.227
Recuperação das configurações do locatário por meio da CLI
cpdctl pipeline get-settings [setting_name_or_prefix]
Comportamento:
- Se nenhum argumento for fornecido, o comando retorna todas as configurações do locatário.
- Se for fornecido um prefixo, o comando retorna todas as configurações correspondentes.
- Se for fornecido um nome completo de configuração, o comando retorna um único valor.
Exemplos:
cpdctl pipeline get-settings
cpdctl pipeline get-settings default_pipeline_settings
cpdctl pipeline get-settings default_pipeline_settings.appearance.auto_save_frequency
--descriptionVocê pode usar o sinalizador opcional, que exibe as descrições das configurações além dos valores.
Atualização das configurações do locatário por meio da CLI
Use o comando a seguir se quiser atualizar as configurações do locatário:
cpdctl pipeline update-settings [setting_name_or_prefix] value
Os seguintes formatos são suportados:
- JSON embutido:
cpdctl pipeline update-settings \
'{"default_asset_container_settings":{"allowed_operational_scope":"WIDE_SCOPE"}}'
- Entrada baseada em arquivo:
cpdctl pipeline update-settings @tenant-settings.json
- Atualização com escopo usando um arquivo:
cpdctl pipeline update-settings default_pipeline_settings @default-pipeline-settings.json
Atualização de uma única configuração com vários valores
Se você quiser atualizar uma única configuração, execute este comando:
cpdctl pipeline update-settings \
default_pipeline_settings.execution_cache.caching_conditions \
RETRY_ON_FAILURE,PIPELINE_UNCHANGED,INPUTS_UNCHANGED
Validação e compatibilidade
Regras de validação
Cada configuração aplica regras de validação rigorosas:
- As configurações enumeradas aceitam apenas valores predefinidos.
- As configurações baseadas em lista aceitam apenas elementos da lista compatíveis.
- Uma entrada inválida resulta na rejeição da solicitação.
O serviço não aplica atualizações parciais. Cargas inválidas são rejeitadas sem alterar os valores existentes.
Compatibilidade e extensibilidade
O serviço oferece suporte a extensões compatíveis com versões anteriores:
- Novas configurações podem ser implementadas sem afetar os clientes existentes.
- Os clientes ignoram os campos desconhecidos retornados pela API.
- A evolução do esquema do Protobuf garante a compatibilidade entre as versões.