vault

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ROLE_POLICY_KEY          = "token_policies"
	ROLE_NAMESPACE_KEY       = "bound_service_account_namespaces"
	ROLE_SERVICE_ACCOUNT_KEY = "bound_service_account_names"
)

Variables

This section is empty.

Functions

func AppendElements

func AppendElements(old []interface{}, new ...interface{}) []interface{}

func ConvertStringArrayToInterfaceArray

func ConvertStringArrayToInterfaceArray(in []string) []interface{}

Types

type CleanOption

type CleanOption struct {
	CleanKubernetes    bool
	CleanRoleNamespace bool
}

type CreateOption

type CreateOption struct {
	InitKubernetes bool
}

type NautesVault

type NautesVault struct {
	Client *vault.Client

	Host         string             `yaml:"host"`
	CA           string             `yaml:"ca"`
	CAPath       string             `yaml:"capath"`
	Token        string             `yaml:"token"`
	KVEngineList []VaultKVEngine    `yaml:"kvEngineList"`
	AppRoleList  []VaultAuthAppRole `yaml:"appRoleList"`
	AuthList     []VaultAuth        `yaml:"authList"`
	RoleList     []VaultRole        `yaml:"roleList"`
	PolicyList   []VaultPolicy      `yaml:"policyList"`
	// contains filtered or unexported fields
}

func (*NautesVault) CleanUP

func (self *NautesVault) CleanUP(opt CleanOption) (map[string]error, bool)

func (*NautesVault) CreateAppRole

func (vc *NautesVault) CreateAppRole(auth VaultAuthAppRole) (*roleAccessInfo, error)

Only support one role in app role now

func (*NautesVault) CreateAuth

func (self *NautesVault) CreateAuth(auth *VaultAuth, opt CreateOption) error

1. Get auth from auth list 2. Create vault sa and rolebinding in k8s 3. Create auth in vault

func (*NautesVault) CreateAuthByName

func (self *NautesVault) CreateAuthByName(authName string, opt CreateOption) error

func (*NautesVault) CreateKVEngine

func (self *NautesVault) CreateKVEngine(secEngine *VaultKVEngine, opt CreateOption) error

func (*NautesVault) CreateKVEngineByName

func (self *NautesVault) CreateKVEngineByName(name string, opt CreateOption) error

func (*NautesVault) CreatePolicy

func (self *NautesVault) CreatePolicy(policy *VaultPolicy, opt CreateOption) error

func (*NautesVault) CreatePolicyByName

func (self *NautesVault) CreatePolicyByName(name string, opt CreateOption) error

func (*NautesVault) CreateRole

func (self *NautesVault) CreateRole(role *VaultRole, kubeconfig string, opt CreateOption) error

func (*NautesVault) CreateRoleByName

func (self *NautesVault) CreateRoleByName(name string, opt CreateOption) error

func (*NautesVault) DeleteAuth

func (self *NautesVault) DeleteAuth(auth *VaultAuth, opt CleanOption) error

func (*NautesVault) DeleteAuthByName

func (self *NautesVault) DeleteAuthByName(name string, opt CleanOption) error

func (*NautesVault) DeleteKVEngine

func (self *NautesVault) DeleteKVEngine(secEngine *VaultKVEngine, opt CleanOption) error

func (*NautesVault) DeleteKVEngineByName

func (self *NautesVault) DeleteKVEngineByName(name string, opt CleanOption) error

func (*NautesVault) DeletePolicy

func (self *NautesVault) DeletePolicy(policy *VaultPolicy, opt CleanOption) error

func (*NautesVault) DeletePolicyByName

func (self *NautesVault) DeletePolicyByName(name string, opt CleanOption) error

func (*NautesVault) DeleteRole

func (self *NautesVault) DeleteRole(role *VaultRole, kubeconfig string, opt CleanOption) error

func (*NautesVault) DeleteRoleByName

func (self *NautesVault) DeleteRoleByName(name string, opt CleanOption) error

func (*NautesVault) GetAuth

func (self *NautesVault) GetAuth(name string) *VaultAuth

func (*NautesVault) GetClient

func (self *NautesVault) GetClient(role *VaultRole, kubeconfig string) (*vault.Client, error)

func (*NautesVault) GetClientByName

func (self *NautesVault) GetClientByName(roleName string) (*vault.Client, error)

func (*NautesVault) GetPolicy

func (self *NautesVault) GetPolicy(name string) *VaultPolicy

func (*NautesVault) GetRole

func (self *NautesVault) GetRole(roleName string) *VaultRole

func (*NautesVault) GetSecretEngine

func (self *NautesVault) GetSecretEngine(kvName string) *VaultKVEngine

func (*NautesVault) InitVault

func (self *NautesVault) InitVault(opt CreateOption) (map[string]error, bool)

func (*NautesVault) PatchRoleConfig

func (self *NautesVault) PatchRoleConfig(path string, newConfig map[string]interface{}) map[string]interface{}

func (*NautesVault) SetCA

func (vc *NautesVault) SetCA() error

func (*NautesVault) SetClient

func (self *NautesVault) SetClient() error

func (*NautesVault) SetClientWithOutLogin

func (self *NautesVault) SetClientWithOutLogin() error

func (*NautesVault) SetupNautesVault

func (vc *NautesVault) SetupNautesVault(path string) error

Make the NautesVault to be usable , must run once befor use it

func (*NautesVault) Unseal

func (self *NautesVault) Unseal() ([]string, string, error)

type VaultAuth

type VaultAuth struct {
	Name               string `yaml:"name"`
	Kubeconfig         string `yaml:"kubeconfig"`
	KubeconfigPath     string `yaml:"kubeconfigPath"`
	KubernetesHost     string
	KubernetesCABundle string
	K8sServiceAccount  KubernetesServiceAccount `yaml:"k8sServiceAccount"`
}

func (*VaultAuth) GetKubernetesCABundle

func (self *VaultAuth) GetKubernetesCABundle() string

func (*VaultAuth) GetKubernetesHost

func (self *VaultAuth) GetKubernetesHost() string

func (*VaultAuth) GetVaultUserToken

func (self *VaultAuth) GetVaultUserToken() string

func (*VaultAuth) SetKubeConfig

func (self *VaultAuth) SetKubeConfig() error

Load kubeconfig priority: write kubeconfig in vault > give a kubeconfig path > read from user home

type VaultAuthAppRole

type VaultAuthAppRole struct {
	Name      string `yaml:"name"`
	RoleName  string `yaml:"roleName"`
	Policy    string `yaml:"policy"`
	BoundCIDR string `yaml:"boundCIDR"`
}

type VaultKV

type VaultKV struct {
	Path string                 `yaml:"path"`
	KVs  map[string]interface{} `yaml:"kvs"`
}

type VaultKVEngine

type VaultKVEngine struct {
	Name   string    `yaml:"name"`
	KVList []VaultKV `yaml:"kvList"`
}

type VaultPolicy

type VaultPolicy struct {
	Name  string `yaml:"name"`
	Rules string `yaml:"rules"`
}

type VaultRole

type VaultRole struct {
	AuthName              string                     `yaml:"authName"`
	Name                  string                     `yaml:"name"`
	NamespaceList         []string                   `yaml:"namespaces"`
	ServiceAccountList    []string                   `yaml:"serviceAccounts"`
	Policies              []string                   `yaml:"policies"`
	K8sServiceAccountList []KubernetesServiceAccount `yaml:"k8sServiceAccountList"`
}

func (*VaultRole) GetPath

func (self *VaultRole) GetPath() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL