posh-providers/gravitational/teleport
2025-09-19 16:29:28 +02:00
..
checker.go feat: add gokazi 2025-04-07 16:08:19 +02:00
command.go feat(gravitational/teleport): add apps 2024-07-12 16:18:57 +02:00
config_test.go feat: generate schema 2025-09-19 16:29:28 +02:00
config.base.json feat: generate schema 2025-09-19 16:29:28 +02:00
config.go feat(gravitational/teleport): add apps 2024-07-12 16:18:57 +02:00
config.schema.json feat: generate schema 2025-09-19 16:29:28 +02:00
README.md docs: simplify docs 2023-12-05 14:10:17 +01:00
teleport.go feat(gravitational/teleport): add apps 2024-07-12 16:18:57 +02:00

POSH teleport provider

Usage

Plugin

package main

type Plugin struct {
  l        log.Logger
  cache    cache.Cache
  kubectl  *kubectl.Kubectl
  teleport *teleport.Teleport
  commands command.Commands
}

func New(l log.Logger) (plugin.Plugin, error) {
  inst := &Plugin{
    l:        l,
    cache:    &cache.MemoryCache{},
    commands: command.Commands{},
  }

  // ...

  if value, err := kubectl.New(l, inst.cache); err != nil {
    return nil, err
  } else {
    inst.kubectl = value
  }

  if value, err := teleport.NewTeleport(l, inst.cache); err != nil {
    return nil, err
  } else {
    inst.teleport = value
  }

  // ...

  inst.commands.Add(teleport.NewCommand(l, inst.cache, inst.teleport, inst.kubectl))

  // ...

  return inst, nil
}

Config

## Teleport
teleport:
  path: ".posh/config/teleport"
  hostname: teleport.foo.bar:443
  labels:
    project: "foo"
  database:
    user: developers
  kubernetes:
    aliases:
      kubernetes-dev: dev
      kubernetes-prod: prod