posh-providers/google/gcloud
Kevin Franklin Kim 3c3b26fc13
feat: add gokazi
2025-04-07 16:08:19 +02:00
..
account.go feat: handle service accounts 2023-02-14 17:31:55 +01:00
checker.go feat: add gokazi 2025-04-07 16:08:19 +02:00
cluster.go feat: handle service accounts 2023-02-14 17:31:55 +01:00
command.go style(google/gcloud): format 2024-07-12 16:18:33 +02:00
config_test.go feat: add schema 2025-04-04 16:44:08 +02:00
config.go feat: un-group 2023-02-15 11:11:51 +01:00
config.schema.json feat: add schema 2025-04-04 16:44:08 +02:00
gcloud.go feat: extend env helper 2023-05-16 09:57:24 +02:00
README.md docs: format 2023-11-23 13:44:01 +01:00

POSH gcloud provider

Usage

Plugin

func New(l log.Logger) (plugin.Plugin, error) {
  inst := &Plugin{}

	// ...

  // create provider
  provider, err := gcloud.New(l, inst.cache)
  if err != nil {
    return nil
  }

  // add command
  inst.commands.Add(
    gcloud.NewCommand(l, provider, inst.kubectl),
	)

	// ...
}

Using service account access tokens retrieved by OnePassword:

func New(l log.Logger) (plugin.Plugin, error) {
  inst := &Plugin{}

  // ...

  // create provider
  provider, err := gcloud.New(l, inst.cache)
  if err != nil {
    return nil
  }

  // add command
  inst.commands.Add(
    gcloud.NewCommand(l, provider, inst.kubectl, gcloud.CommandWithOnePassword(inst.op)),
	)

	// ...
}

Config

gcloud:
  configPath: .posh/config/gcloud
  clusters:
    prod:
      name: default
      project: myproject-123456
      region: europe-west6

Using service account access tokens:

gcloud:
  configPath: .posh/config/gcloud
  accounts:
    prod:
      name: user@account.iam.gserviceaccount.com
    admin@prod:
      name: admin@account.iam.gserviceaccount.com
  clusters:
    prod:
      name: default
      project: myproject-123456
      region: europe-west6
      account: prod
    admin@prod:
      name: default
      project: myproject-123456
      region: europe-west6
      account: admin@prod

NOTE: Servce account keys can optionally be retrieved by OnePassword.

gcloud:
  configPath: .posh/config/gcloud
  accounts:
    prod:
      name: user@account.iam.gserviceaccount.com
      key:
        field: 1234564dxtuty3vaaxezex4c7ey
        item: 1234564dxtuty3vaaxezex4c7ey
        vault: 1234564dxtuty3vaaxezex4c7ey
        account: foomo

Ownbrew

require:
  packages:
    - name: gcloud
      version: '>=409'
      command: gcloud --version 2>&1 | grep "Google Cloud SDK" | awk '{print $4}'
      help: |
        Please ensure you have 'gcloud' installed in a recent version: %s!

          $ brew update
          $ brew install google-cloud-sdk