Referência completa
O próprio CLI é a referência:
goship --help # lista os comandos
goship <comando> --help # flags e exemplos de um comandoComandos
| Comando | O que faz |
|---|---|
goship login / logout / whoami | autenticação |
goship org list / use <slug> | escolher a organização |
goship projects | lista os projetos que você alcança, com o seu papel em cada um |
goship project use <slug> | fixa o projeto padrão |
goship project create <slug> [--name <nome>] | cria um projeto na organização |
goship environments | lista os ambientes da organização, com o cluster de cada um e se cada um está ativado (SLUG, NAME, CLUSTER, DEFAULT, ENABLED) — Ambientes |
goship environment use <slug> | fixa o ambiente deste projeto: confere que ele existe e guarda a escolha por organização e projeto |
goship environment enable <slug> | ativa um ambiente (administrador); a homologação nasce desativada. A partir da 0.16.0 |
goship environment disable <slug> | desativa um ambiente vazio que não seja o padrão (administrador). A partir da 0.16.0 |
goship environment create <slug> [--name <nome>] [--cluster <id|nome>] [--db-server <id|nome>] | cria um ambiente; sem --cluster e --db-server, ele usa o cluster GoShip e o PostgreSQL do GoShip |
goship environment rm <slug> | apaga um ambiente; pede confirmação, e --yes pula |
goship deploy [dir] | cria o app se preciso, aplica env e faz deploy, no ambiente em uso; --image <ref> faz deploy de uma imagem pronta, sem diretório — Deploy de uma imagem |
goship apps [-A] | lista os apps do ambiente em uso; -A lista os de tudo que você alcança, em seções org/projeto/ambiente, e pula com uma nota os ambientes que você não alcança. goship dbs -A e goship volumes -A fazem o mesmo |
goship app create|info|rm|start|stop|restart|scale|plan|visibility | gerenciar um app; create imprime Creating <app> in org/projeto/ambiente, e --private já cria o app privado; info <app>, quando o projeto não foi escolhido e a organização tem vários, procura o app em todos os projetos e ambientes (--environment limita a busca a um ambiente); visibility <app> public|private liga ou desliga o login do GoShip |
goship app access list|add|reset|rm|token <app> | quem pode abrir um app privado |
goship logs -a <app> [-f] [-l N] [--source web] | logs; -f acompanha em tempo real |
goship run -a <app> [--once] [--isolated] -- <cmd> | rodar um comando onde estão o código e o ambiente do app |
goship shell -a <app> [--unit <u>] [--isolated] | shell interativo numa unidade; --isolated abre um container novo, útil com o app pausado ou em crash |
goship env list|set|unset -a <app> | variáveis de ambiente |
goship db create|list|info|users|user-add|extensions|extension-add|extension-rm|bind|unbind|rm | PostgreSQL gerenciado, no ambiente em uso; create usa o servidor padrão do ambiente, e --server escolhe outro pra um banco — Provisionar |
goship plans [--kind app|database] | os planos do ambiente em uso; --kind db, o nome antigo, continua aceito |
goship domain add|rm|list|register|verify | domínios próprios e TLS |
goship volume create|list|info|bind|unbind|rm | discos persistentes, no ambiente em uso — Volumes |
goship cloud providers|connect|list|regions|sizes|disconnect | contas de nuvem da organização (elas não são de um projeto) — connect aws aceita --role-arn ou --access-keys-stdin; connect gcp aceita --gcp-project ou --project-number; connect --account <id> reconecta no lugar uma conta de chave de API — Contas de nuvem |
goship clusters / goship cluster create|info|sizes|resize|rm | os clusters da organização (ID, NAME, TYPE, STATUS, HOST, SHARED) — create aceita --cloud <conta> --region --size, --host <ip> --ssh-key (com --ssh-user e --port opcionais) ou --kubeconfig <arquivo>, e --environment <slug> (repetível) já aponta ambientes que existem para o cluster novo; info, sizes, resize e rm aceitam o id ou o nome; resize <cluster> --size <tipo> troca o tamanho de um cluster criado pelo GoShip (Contas de nuvem) — Clusters |
goship node … | foi substituído por goship cluster …: imprime node commands are now "goship cluster …" e sai com código 2 |
goship releases -a <app> / goship rollback <versão> -a <app> | histórico de releases e volta pra uma versão |
goship token create|list|rm | tokens de API pra CI e scripts |
Flags globais
| Flag | O que faz |
|---|---|
--org <slug> | organização deste comando, no lugar da escolhida com goship org use |
--project <slug> | projeto deste comando; também pode vir de GOSHIP_PROJECT ou do project: do goship.yaml — ordem em Login, organização, projeto e ambiente |
--environment <slug> | ambiente deste comando; também pode vir do environment: do goship.yaml, de GOSHIP_ENVIRONMENT ou de goship environment use — ordem em Login, organização, projeto e ambiente |
A partir da versão 0.5.0, a flag --project é global e escolhe o projeto do GoShip. Em goship cloud connect gcp, o id do projeto do Google Cloud agora é --gcp-project; scripts que usavam goship cloud connect gcp --project <id> precisam trocar a flag.
Ambientes e clusters (a partir da versão 0.14.0)
goship envcontinua sendo as variáveis de ambiente de um app (goship env set). Os ambientes do GoShip, como desenvolvimento, homologação e produção, sãogoship environmentegoship environments.- Onde um app, banco ou volume roda deixou de ser uma flag:
goship deploy,goship app createegoship volume createnão escolhem mais a máquina. Quem decide é o ambiente, e o ambiente decide pelo cluster. - Os comandos
goship nodeviraramgoship cluster. A chavenodedogoship.yamlé ignorada, com um aviso (goship.yaml). - As contas de nuvem são da organização:
goship cloudage só nesse nível, e não há mais o que mover entre projetos. - Quem já tinha um servidor conectado o encontra em
goship clusters, com o mesmo nome, e os apps dele não mudam: Se você já tinha um servidor conectado.
Saída pra script
Todo comando que devolve dados aceita --output json:
goship apps --output json | jq -r '.[] | select(.status=="running") | .name'Os comandos que transmitem saída em tempo real — deploy, logs, run, shell, releases, rollback — recusam --output json em vez de fingir que suportam. goship cluster create também acompanha etapas em tempo real até o cluster ficar pronto; use --no-wait pra ele devolver na hora, e aí sim --output json imprime o cluster criado.