OpenShift - Tekton
Last updated
Last updated
O autor original desta página é Haroun
De acordo com a documentação: Tekton é uma estrutura poderosa e flexível de código aberto para criar sistemas de CI/CD, permitindo que os desenvolvedores construam, testem e implantem em provedores de nuvem e sistemas locais. Tanto Jenkins quanto Tekton podem ser usados para testar, construir e implantar aplicações, no entanto, Tekton é Nativo da Nuvem.
Com Tekton, tudo é representado por arquivos YAML. Os desenvolvedores podem criar Recursos Personalizados (CR) do tipo Pipelines
e especificar várias 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á gerado 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 se deve à configuração padrão global do tekton. Na verdade, a configuração global do tekton também é um YAML em um objeto do openshift chamado TektonConfig
que pode ser visto se você tiver alguns papéis de leitor 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 em yaml:
O operador tekton dará à conta de serviço do pipeline em 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
.
Esse rótulo é chamado de max-allowed