Firstlume Docs firstlume.io PTEN EN Fale com a gente

Onde o state fica

O storage de state da instalação é configurado uma vez, na instalação. O Firstlume sempre cifra cada versão antes de gravar, e a chave do objeto só tem ids (nada de nome de stack ou unit). Os metadados e os locks ficam sempre no Postgres.

Configurações

Variável Padrão
FIRSTLUME_STATE_STORAGE postgres postgres ou s3 (qualquer S3 compatível, testado com Garage)
FIRSTLUME_STATE_S3_ENDPOINT por exemplo http://garage.garage.svc:3900
FIRSTLUME_STATE_S3_BUCKET
FIRSTLUME_STATE_S3_REGION garage
FIRSTLUME_STATE_S3_PREFIX para dividir um bucket
FIRSTLUME_STATE_S3_ACCESS_KEY_ID, FIRSTLUME_STATE_S3_SECRET_ACCESS_KEY a chave precisa ler, gravar, apagar e listar no bucket
FIRSTLUME_STATE_S3_PATH_STYLE true o Garage precisa de path-style
FIRSTLUME_STATE_KEEP_VERSIONS 0 versões guardadas por unit; 0 guarda todas
FIRSTLUME_STATE_MAX_MIB 64 tamanho máximo de uma versão

No Helm

Use controlPlane.state.storage: s3 e controlPlane.state.s3.*, com a chave num Secret existente:

controlPlane:
  state:
    storage: s3
    keepVersions: 0
    maxMiB: 64
    s3:
      endpoint: http://garage.garage.svc:3900
      bucket: firstlume-state
      region: garage
      pathStyle: true
      existingSecret: firstlume-state-s3   # keys access-key-id e secret-access-key

Conferência na subida

Com s3, o server grava, lê e apaga um objeto de teste ao subir. Se falhar, ele não sobe e diz o motivo: endpoint fora do ar, credencial recusada, bucket inexistente ou chave sem permissão.

Trocar de storage não move as versões já gravadas.

Backend s3 direto no Garage

O Garage (testado na v2.4.1) ignora a escrita condicional (If-None-Match), então o use_lockfile do backend s3 do Terraform não trava nada nele: um apply passa por cima da trava de outro. Com o backend do Firstlume, a trava fica no Postgres e funciona com qualquer storage.

Uma organização, um bucket próprio

Por padrão, o state de todas as organizações fica neste storage. Uma organização pode usar um bucket próprio. Veja O bucket da organização.