| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package integrations
- import "gorm.io/gorm"
- // KubeIntegrationName is the name of a kube auth mechanism
- type KubeIntegrationName string
- // The supported kube auth mechanisms
- const (
- KubeX509 KubeIntegrationName = "x509"
- KubeBasic = "basic"
- KubeBearer = "bearer"
- KubeLocal = "local"
- )
- // KubeIntegration represents the kube-native auth mechanisms: using x509 certs,
- // basic (username/password), bearer tokens, or local (using local kubeconfig)
- type KubeIntegration struct {
- gorm.Model
- // The name of the auth mechanism
- Mechanism KubeIntegrationName `json:"mechanism"`
- // The id of the user that linked this auth mechanism
- UserID uint `json:"user_id"`
- // The project that this integration belongs to
- ProjectID uint `json:"project_id"`
- // ------------------------------------------------------------------
- // All fields encrypted before storage.
- // ------------------------------------------------------------------
- // Certificate data is used by x509 auth mechanisms over TLS
- ClientCertificateData []byte `json:"client-certificate-data,omitempty"`
- ClientKeyData []byte `json:"client-key-data,omitempty"`
- // Token is used for bearer-token auth mechanisms
- Token []byte `json:"token,omitempty"`
- // Username/Password for basic authentication to a cluster
- Username []byte `json:"username,omitempty"`
- Password []byte `json:"password,omitempty"`
- // The raw kubeconfig, used by local auth mechanisms
- Kubeconfig []byte `json:"kubeconfig"`
- }
|