Caboto, o kit de ferramentas de análise semântica Kubernetes. Ele contém uma biblioteca Python leve para análise semântica de Kubernetes simples se manifesta sem executar um cluster.
Internamente, o Caboto representa todos os objetos K8S em uma estrutura gráfica baseada no Networkx, que permite a seguir as bordas e entender as relações entre os objetos.
Para começar, carregue arquivos de manifestos simples no CABOTO. Por favor, lembre -se de que você terá que gerar gráficos de leme em manifestos simples de Kubernetes (em formato YAML) para carregá -los.
Dica: você pode renderizar seus gráficos de comando em um arquivo YAML como assim:
helm template my-charts -n my-namespace my-charts/ -f values.yaml > ~ /my-manifests/output.yaml O Caboto carrega vários documentos YAML de um arquivo se eles forem separados de acordo com a especificação YAML. Ligue para caboto.api.create_graph_from_path(path) que constrói o gráfico de Caboto carregando recursivamente todos os arquivos YAML do caminho. Posteriormente, descubra e represente todas as relações suportadas com caboto.api.discover_relations(...) .
A idéia é preparar uma coleção de funções de análise de construção, por exemplo,
list_applications(...) - Retorna uma lista de todos os aplicativos e seus objetos associadoslist_containerimages(...) - Retorna uma lista de todas as imagens de contêiner e os pods executando -oslist_services(...) - Retorna uma lista de todos os objetos de serviço Kubernetes, e os pods que os serviamUma lista completa das funções de análise de construção pode ser encontrada na documentação.
Você pode executar o Caboto como um script da CLI usando:
python caboto [ARGUMENTS] Por exemplo, você pode plotar o gráfico de Caboto usando MathPlotlib com python caboto -p . Se os arquivos de manifesto não estiverem localizados no diretório de trabalho atual, especifique o caminho usando a opção --manifests/-m . Execute uma função de análise com o argumento --run/-r mais o nome da função, como So python caboto -r list_applications
O gráfico de Caboto para um projeto médio de Kubernetes pode ser assim: 
Caboto recebeu o nome de Giovanni Caboto, o explorador europeu mais conhecido da América do Norte costeiro desde o nórdico. Por favor, leia em: https://en.wikipedia.org/wiki/john_cabot