Pular para o conteúdo principal
O ChatCLI publica seus Helm charts no ArtifactHub, o registro público oficial de pacotes para o ecossistema Cloud Native. Isso permite que qualquer pessoa descubra, instale e mantenha os charts atualizados diretamente pelo catálogo do ArtifactHub ou via CLI do Helm.

Charts Disponíveis

ChatCLI Server

Gateway gRPC multi-provedor de LLMs com modo agente, K8s watcher, MCP e AIOps. Registry OCI: oci://ghcr.io/diillson/charts/chatcli

ChatCLI Operator

Operator Kubernetes para detecção autônoma de incidentes, análise com IA e remediação automática. Registry OCI: oci://ghcr.io/diillson/charts/chatcli-operator

Como Funciona a Integração

A integração com o ArtifactHub é totalmente automatizada e baseada em três pilares:

1. Arquivo de Repositório (artifacthub-repo.yml)

Na raiz do projeto existe o arquivo artifacthub-repo.yml, que registra os repositórios no ArtifactHub. Ele usa o formato multi-documento YAML para declarar dois repositórios independentes:
# Repositório do ChatCLI Server
repositoryID: 193ab92d-52ac-4ac1-863f-aa29927c8d74
owners:
  - name: diillson
    email: diillson@hotmail.com

---
# Repositório do ChatCLI Operator
repositoryID: ccc35f25-d27b-41ca-ba20-b8de9ee2f828
owners:
  - name: diillson
    email: diillson@hotmail.com
Cada chart possui um repositoryID único. O ArtifactHub lê este arquivo para sincronizar os metadados do repositório automaticamente.

2. Anotações nos Charts (Chart.yaml)

Os arquivos Chart.yaml de cada chart contêm anotações específicas do ArtifactHub que enriquecem a página do pacote no catálogo:
annotations:
  artifacthub.io/license: Apache-2.0
  artifacthub.io/containsSecurityUpdates: 'false'
  artifacthub.io/prerelease: 'false'
  artifacthub.io/operator: 'false'         # 'true' no chart do operator
  artifacthub.io/operatorCapabilities: Seamless Upgrades  # apenas no operator
  artifacthub.io/crds: |
    - kind: AIInsight
      version: v1alpha1
      description: Análise e recomendações geradas por IA
    # ... 17 CRDs no total
  artifacthub.io/crdsExamples: |
    - apiVersion: platform.chatcli.io/v1alpha1
      kind: Issue
      metadata:
        name: high-cpu-api-server
      spec:
        title: "High CPU usage on api-server"
        severity: critical
    # ... exemplos de ApprovalPolicy, ServiceLevelObjective, etc.
  artifacthub.io/links: |
    - name: Documentation
      url: https://chatcli.edilsonfreitas.com
    - name: Source
      url: https://github.com/diillson/chatcli
  artifacthub.io/maintainers: |
    - name: Edilson Freitas
      email: diillson@hotmail.com

Anotações Disponíveis

AnotaçãoDescriçãoServerOperator
artifacthub.io/licenseLicença do chartApache-2.0Apache-2.0
artifacthub.io/operatorIndica se é um operador Kubernetesfalsetrue
artifacthub.io/operatorCapabilitiesNível de maturidade do operadorSeamless Upgrades
artifacthub.io/containsSecurityUpdatesSinaliza atualizações de segurançafalsefalse
artifacthub.io/prereleaseMarca como versão pré-releasefalsefalse
artifacthub.io/crdsLista de CRDs instaladas pelo chart17 CRDs17 CRDs
artifacthub.io/crdsExamplesExemplos de uso das CRDs3 exemplos4 exemplos
artifacthub.io/linksLinks para documentação e código-fonte2 links2 links
artifacthub.io/maintainersMantenedores do chart11

3. Pipeline de Publicação (GitHub Actions)

A publicação é completamente automatizada via GitHub Actions no workflow 3-publish-release.yml. A cada release:
1

Trigger do release

Um commit na branch main ou trigger manual aciona o pipeline de release.
2

Versionamento automático

O pipeline atualiza a versão nos Chart.yaml de ambos os charts:
sed -i "s/^version:.*/version: ${VERSION}/" deploy/helm/chatcli/Chart.yaml
sed -i "s/^appVersion:.*/appVersion: \"${VERSION}\"/" deploy/helm/chatcli/Chart.yaml
3

Empacotamento

Os charts são empacotados com helm package:
helm package deploy/helm/chatcli/ -d /tmp/charts/
helm package deploy/helm/chatcli-operator/ -d /tmp/charts/
4

Push para o registro OCI

Os pacotes são enviados para o GitHub Container Registry:
helm push /tmp/charts/chatcli-*.tgz oci://ghcr.io/diillson/charts
helm push /tmp/charts/chatcli-operator-*.tgz oci://ghcr.io/diillson/charts
5

Sincronização com o ArtifactHub

O ArtifactHub detecta as novas versões automaticamente e atualiza as páginas dos pacotes no catálogo.

CRDs Documentadas

Ambos os charts declaram 17 Custom Resource Definitions nas anotações, que aparecem automaticamente na página do ArtifactHub:
CRDVersãoDescrição
AIInsightv1alpha1Análise e recomendações geradas por IA para problemas detectados
Anomalyv1alpha1Sinal bruto dos watchers, antes da correlação em issues
ApprovalPolicyv1alpha1Requisitos de aprovação para ações de remediação (auto/manual/quórum)
ApprovalRequestv1alpha1Aprovação pendente com avaliação de blast radius
AuditEventv1alpha1Registro imutável de ações na plataforma AIOps
ChaosExperimentv1alpha1Experimento de engenharia do caos em recursos Kubernetes
ClusterRegistrationv1alpha1Cluster registrado para federação multi-cluster
EscalationPolicyv1alpha1Cadeias de escalação para gestão de incidentes
IncidentSLAv1alpha1Metas de SLA para resposta e resolução por severidade
Instancev1alpha1Configuração de instância do ChatCLI
Issuev1alpha1Problema operacional detectado e correlacionado
NotificationPolicyv1alpha1Regras de entrega de notificações multicanal
PostMortemv1alpha1Relatório completo do ciclo de vida do incidente
RemediationPlanv1alpha1Plano de remediação com mais de 54 tipos de ação
Runbookv1alpha1Procedimentos operacionais vinculados a tipos de issue
ServiceLevelObjectivev1alpha1SLO com alertas de burn rate e error budgets
SourceRepositoryv1alpha1Vincula workloads ao repositório de código-fonte
As CRDs são compartilhadas entre os charts server e operator. Se ambos estiverem instalados no mesmo cluster, as CRDs do chart instalado primeiro serão utilizadas.

Instalação via ArtifactHub

ChatCLI Server

helm install chatcli oci://ghcr.io/diillson/charts/chatcli \
  --namespace chatcli --create-namespace \
  --set llm.provider=OPENAI \
  --set secrets.openaiApiKey=sk-xxx

ChatCLI Operator

helm install chatcli-operator oci://ghcr.io/diillson/charts/chatcli-operator \
  --namespace aiops-system --create-namespace

A Partir do Código-Fonte

git clone https://github.com/diillson/chatcli.git

# Server
helm install chatcli deploy/helm/chatcli \
  --namespace chatcli --create-namespace

# Operator
helm install chatcli-operator deploy/helm/chatcli-operator \
  --namespace aiops-system --create-namespace

Usando um Secret Existente

kubectl create secret generic chatcli-llm-keys \
  --namespace chatcli \
  --from-literal=OPENAI_API_KEY=sk-xxx \
  --from-literal=ANTHROPIC_API_KEY=sk-ant-xxx

helm install chatcli oci://ghcr.io/diillson/charts/chatcli \
  --namespace chatcli \
  --set llm.provider=OPENAI \
  --set secrets.existingSecret=chatcli-llm-keys

Atualização e Remoção

Atualizar para a Última Versão

# Server
helm upgrade chatcli oci://ghcr.io/diillson/charts/chatcli \
  --namespace chatcli --reuse-values

# Operator
helm upgrade chatcli-operator oci://ghcr.io/diillson/charts/chatcli-operator \
  --namespace aiops-system --reuse-values

Desinstalar

helm uninstall chatcli -n chatcli
helm uninstall chatcli-operator -n aiops-system
As CRDs não são removidas automaticamente pelo Helm. Para removê-las manualmente:
kubectl get crd -o name | grep platform.chatcli.io | xargs kubectl delete

Estrutura dos Charts

Os Helm charts ficam em deploy/helm/ no repositório:
deploy/helm/
├── chatcli/                          # Chart do servidor
│   ├── Chart.yaml                    # Metadados + anotações ArtifactHub
│   ├── README.md                     # Documentação exibida no ArtifactHub
│   ├── values.yaml                   # Valores padrão (322 linhas)
│   ├── crds/                         # 17 CRDs YAML
│   │   ├── platform.chatcli.io_aiinsights.yaml
│   │   ├── platform.chatcli.io_anomalies.yaml
│   │   └── ... (15 mais)
│   └── templates/
│       ├── deployment.yaml
│       ├── service.yaml
│       ├── secret.yaml
│       ├── configmap.yaml
│       ├── rbac.yaml
│       ├── hpa.yaml
│       ├── pdb.yaml
│       ├── ingress.yaml
│       ├── networkpolicy.yaml
│       ├── pvc.yaml
│       ├── serviceaccount.yaml
│       ├── servicemonitor.yaml
│       ├── mcp-configmap.yaml
│       ├── agents-configmap.yaml
│       ├── bootstrap-configmap.yaml
│       ├── skills-configmap.yaml
│       └── _helpers.tpl

└── chatcli-operator/                 # Chart do operator
    ├── Chart.yaml
    ├── README.md
    ├── values.yaml
    ├── crds/
    └── templates/

Diferenças entre os Charts

AspectoChatCLI ServerChatCLI Operator
FunçãoGateway gRPC de LLMs com agentes e watcherDetecção autônoma de incidentes e remediação
Tipo no ArtifactHubApplicationOperator
artifacthub.io/operatorfalsetrue
CapabilitiesSeamless Upgrades
Exemplos de CRDsIssue, ApprovalPolicy, SLOIssue, ApprovalPolicy, ChaosExperiment, SLO
Keywordschatcli, llm, grpc, ai, mcp, aiopsoperator, aiops, remediation, sre, chaos-engineering
Registry OCIoci://ghcr.io/diillson/charts/chatclioci://ghcr.io/diillson/charts/chatcli-operator

Segurança dos Charts

Ambos os charts seguem as melhores práticas de segurança para Kubernetes:

Non-Root

Containers executam como usuário não-root (UID 1000) com runAsNonRoot: true.

Filesystem Read-Only

readOnlyRootFilesystem: true — apenas volumes montados são graváveis.

Capabilities Removidas

Todas as Linux capabilities são removidas com drop: ["ALL"].

Seccomp

Perfil RuntimeDefault do seccomp habilitado por padrão.

Requisitos

  • Kubernetes: 1.30+
  • Helm: 3.10+ (suporte a registros OCI)
  • Provedor LLM: Pelo menos uma API key configurada (OpenAI, Anthropic, Google, xAI, StackSpot, GitHub Copilot ou Ollama)

Próximos Passos

Deploy com Docker e K8s

Guia completo de deployment com Docker, Compose e Helm.

K8s Operator

Detalhes do operator AIOps com 17 CRDs.

Plataforma AIOps

Visão geral da plataforma de operações inteligentes.