OpenShift - Tekton
Last updated
Last updated
O autor original desta página é Haroun
De acordo com a documentação: Tekton é um framework open-source poderoso e flexível para criar sistemas de CI/CD, permitindo que os desenvolvedores construam, testem e implementem em provedores de nuvem e sistemas locais. Tanto Jenkins quanto Tekton podem ser usados para testar, construir e implantar aplicativos, no entanto, o Tekton é nativo da nuvem.
Com o Tekton, tudo é representado por arquivos YAML. Os desenvolvedores podem criar Recursos Personalizados (CR) do tipo Pipelines
e especificar vários Tasks
neles que desejam executar. Para executar um Pipeline, recursos do tipo PipelineRun
devem ser criados.
Quando o tekton é instalado, uma conta de serviço (sa) chamada pipeline é criada em cada namespace. Quando um Pipeline é executado, um pod será iniciado usando esta sa chamada pipeline
para executar as tarefas definidas no arquivo YAML.
Por padrão, a conta de serviço do pipeline pode usar a capacidade pipelines-scc
. Isso ocorre devido à configuração padrão global do tekton. Na verdade, a configuração global do tekton também é um arquivo YAML em um objeto openshift chamado TektonConfig
que pode ser visto se você tiver algumas funções de leitura no cluster.
Em qualquer namespace, se você conseguir obter o token da conta de serviço do pipeline, poderá usar pipelines-scc
.
O problema é que o scc padrão que a conta de serviço do pipeline pode usar é controlável pelo usuário. Isso pode ser feito usando um rótulo na definição do namespace. Por exemplo, se eu puder criar um namespace com a seguinte definição yaml:
O operador tekton dará à conta de serviço do pipeline no test-namespace
a capacidade de usar o scc privilegiado. Isso permitirá a montagem do nó.
Documentos do Tekton sobre como restringir a substituição do scc adicionando um rótulo no objeto TektonConfig
.
Este rótulo é chamado max-allowed