internalstorage

package
v0.5.0-beta.0 Latest Latest
Warning

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

Go to latest
Published: Sep 6, 2022 License: Apache-2.0 Imports: 49 Imported by: 1

Documentation

Index

Constants

View Source
const (
	CollectionResourceAny           = "any"
	CollectionResourceWorkloads     = "workloads"
	CollectionResourceKubeResources = "kuberesources"
)
View Source
const (
	URLQueryGroups    = "groups"
	URLQueryResources = "resources"
)
View Source
const (
	SearchLabelFuzzyName = "internalstorage.clusterpedia.io/fuzzy-name"

	URLQueryWhereSQL = "whereSQL"
)
View Source
const (
	// AllowRawSQLQuery is a feature gate for the apiserver to allow querying by the raw sql.
	//
	// owner: @cleverhu
	// alpha: v0.3.0
	AllowRawSQLQuery featuregate.Feature = "AllowRawSQLQuery"
)
View Source
const (
	StorageName = "internal"
)

Variables

This section is empty.

Functions

func InterpretDBError added in v0.4.0

func InterpretDBError(key string, err error) error

func InterpretMysqlError added in v0.4.0

func InterpretMysqlError(key string, err error) error

func InterpretPostgresError added in v0.4.0

func InterpretPostgresError(key string, err error) error

func InterpretResourceDBError added in v0.4.0

func InterpretResourceDBError(cluster, name string, err error) error

func NewCollectionResourceStorage added in v0.3.0

func NewCollectionResourceStorage(db *gorm.DB, cr *internal.CollectionResource) storage.CollectionResourceStorage

func NewStorageFactory

func NewStorageFactory(configPath string) (storage.StorageFactory, error)

Types

type Bytes added in v0.4.0

type Bytes []byte

func (Bytes) ConvertTo added in v0.4.0

func (bytes Bytes) ConvertTo(codec runtime.Codec, object runtime.Object) (runtime.Object, error)

func (Bytes) ConvertToUnstructured added in v0.4.0

func (bytes Bytes) ConvertToUnstructured() (*unstructured.Unstructured, error)

func (Bytes) GetResourceType added in v0.4.0

func (bytes Bytes) GetResourceType() ResourceType

type BytesList added in v0.4.0

type BytesList []Bytes

func (*BytesList) From added in v0.4.0

func (list *BytesList) From(db *gorm.DB) error

func (BytesList) Items added in v0.4.0

func (list BytesList) Items() []Object

func (BytesList) Select added in v0.4.0

func (list BytesList) Select(query *gorm.DB) *gorm.DB

type CollectionResourceStorage

type CollectionResourceStorage struct {
	// contains filtered or unexported fields
}

func (*CollectionResourceStorage) Get

type Config

type Config struct {
	Type    string `env:"DB_TYPE" required:"true"`
	Network string `env:"DB_NETWORK"` // Network type, either tcp or unix, Default is tcp
	Host    string `env:"DB_HOST"`    // TCP host:port or Unix socket depending on Network
	Port    string `env:"DB_PORT"`

	User     string `env:"DB_USER"`
	Password string `env:"DB_PASSWORD"`
	Database string `env:"DB_DATABASE" required:"true"`

	SSLMode      string `yaml:"sslMode"`
	CertFile     string `yaml:"sslCertFile"`
	KeyFile      string `yaml:"sslKeyFile"`
	RootCertFile string `yaml:"sslRootCertFile"`

	ConnPool ConnPoolConfig `yaml:"connPool"`

	MySQL    *MySQLConfig    `yaml:"mysql"`
	Postgres *PostgresConfig `yaml:"postgres"`

	Params map[string]string `yaml:"params"`

	Log *LogConfig `yaml:"log"`
}

func (*Config) LoggerConfig

func (cfg *Config) LoggerConfig() (logger.Config, error)

type ConnPoolConfig added in v0.3.0

type ConnPoolConfig struct {
	MaxIdleConns    int           `yaml:"maxIdleConns"`
	MaxOpenConns    int           `yaml:"maxOpenConns"`
	ConnMaxLifetime time.Duration `yaml:"connMaxLifetime"`
}

type JSONQueryExpression

type JSONQueryExpression struct {
	// contains filtered or unexported fields
}

func JSONQuery

func JSONQuery(column string, keys ...string) *JSONQueryExpression

func (*JSONQueryExpression) Build

func (jsonQuery *JSONQueryExpression) Build(builder clause.Builder)

func (*JSONQueryExpression) Equal

func (jsonQuery *JSONQueryExpression) Equal(value string) *JSONQueryExpression

func (*JSONQueryExpression) Exist added in v0.1.0

func (jsonQuery *JSONQueryExpression) Exist() *JSONQueryExpression

func (*JSONQueryExpression) In

func (jsonQuery *JSONQueryExpression) In(values ...string) *JSONQueryExpression

func (*JSONQueryExpression) NotEqual

func (jsonQuery *JSONQueryExpression) NotEqual(value string) *JSONQueryExpression

func (*JSONQueryExpression) NotExist added in v0.1.0

func (jsonQuery *JSONQueryExpression) NotExist() *JSONQueryExpression

func (*JSONQueryExpression) NotIn

func (jsonQuery *JSONQueryExpression) NotIn(values ...string) *JSONQueryExpression

type LogConfig

type LogConfig struct {
	Stdout                    bool               `yaml:"stdout"`
	Level                     string             `yaml:"level"`
	Colorful                  bool               `yaml:"colorful"`
	SlowThreshold             time.Duration      `yaml:"slowThreshold" default:"200ms"`
	IgnoreRecordNotFoundError bool               `yaml:"ignoreRecordNotFoundError"`
	Logger                    *lumberjack.Logger `yaml:"logger"`
}

type MySQLConfig

type MySQLConfig struct {
	DialTimeout  *time.Duration `yaml:"dialTimeout"`
	ReadTimeout  *time.Duration `yaml:"readTimeout"`
	WriteTimeout *time.Duration `yaml:"writeTimeout"`

	ServerPubKey     *string `yaml:"serverPubKey"`
	Loc              *string `yaml:"loc"`
	MaxAllowedPacket *int    `yaml:"maxAllowedPacket"`

	AllowAllFiles           *bool `yaml:"allowAllFiles"`           // Allow all files to be used with LOAD DATA LOCAL INFILE
	AllowCleartextPasswords *bool `yaml:"allowCleartextPasswords"` // Allows the cleartext client side plugin
	AllowNativePasswords    *bool `yaml:"allowNativePasswords"`    // Allows the native password authentication method
	AllowOldPasswords       *bool `yaml:"allowOldPasswords"`       // Allows the old insecure password method
	CheckConnLiveness       *bool `yaml:"checkConnLiveness"`       // Check connections for liveness before using them
	ClientFoundRows         *bool `yaml:"clientFoundRows"`         // Return number of matching rows instead of rows changed
	ColumnsWithAlias        *bool `yaml:"columnsWithAlias"`        // Prepend table alias to column names
	InterpolateParams       *bool `yaml:"interpolateParams"`       // Interpolate placeholders into query string
	MultiStatements         *bool `yaml:"multiStatements"`         // Allow multiple statements in one query
	ParseTime               *bool `yaml:"parseTime"`               // Parse time values to time.Time
	RejectReadOnly          *bool `yaml:"rejectReadOnly"`          // Reject read-only connections
}

type Object added in v0.3.0

type Object interface {
	GetResourceType() ResourceType
	ConvertToUnstructured() (*unstructured.Unstructured, error)
	ConvertTo(codec runtime.Codec, object runtime.Object) (runtime.Object, error)
}

type ObjectList added in v0.3.0

type ObjectList interface {
	Select(db *gorm.DB) *gorm.DB
	From(db *gorm.DB) error
	Items() []Object
}

type PostgresConfig

type PostgresConfig struct{}

type Resource

type Resource struct {
	ID uint `gorm:"primaryKey"`

	Group    string `` /* 171-byte string literal not displayed */
	Version  string `` /* 171-byte string literal not displayed */
	Resource string `` /* 171-byte string literal not displayed */
	Kind     string `gorm:"size:63;not null"`

	Cluster         string    `gorm:"size:253;not null;uniqueIndex:uni_group_version_resource_cluster_namespace_name,length:100;index:idx_cluster"`
	Namespace       string    `` /* 144-byte string literal not displayed */
	Name            string    `` /* 183-byte string literal not displayed */
	OwnerUID        types.UID `gorm:"column:owner_uid;size:36;not null;default:''"`
	UID             types.UID `gorm:"size:36;not null"`
	ResourceVersion string    `gorm:"size:30;not null"`

	Object datatypes.JSON `gorm:"not null"`

	CreatedAt time.Time `gorm:"not null"`
	SyncedAt  time.Time `gorm:"not null;autoUpdateTime"`
	DeletedAt sql.NullTime
}

func (Resource) ConvertTo added in v0.4.0

func (res Resource) ConvertTo(codec runtime.Codec, object runtime.Object) (runtime.Object, error)

func (Resource) ConvertToUnstructured added in v0.3.0

func (res Resource) ConvertToUnstructured() (*unstructured.Unstructured, error)

func (Resource) GetResourceType added in v0.3.0

func (res Resource) GetResourceType() ResourceType

func (Resource) GroupVersionResource

func (res Resource) GroupVersionResource() schema.GroupVersionResource

type ResourceList added in v0.3.0

type ResourceList []Resource

func (*ResourceList) From added in v0.3.0

func (list *ResourceList) From(db *gorm.DB) error

func (ResourceList) Items added in v0.3.0

func (list ResourceList) Items() []Object

func (ResourceList) Select added in v0.4.0

func (list ResourceList) Select(query *gorm.DB) *gorm.DB

type ResourceMetadata added in v0.3.0

type ResourceMetadata struct {
	ResourceType `gorm:"embedded"`

	Metadata datatypes.JSON
}

func (ResourceMetadata) ConvertTo added in v0.4.0

func (data ResourceMetadata) ConvertTo(codec runtime.Codec, object runtime.Object) (runtime.Object, error)

func (ResourceMetadata) ConvertToUnstructured added in v0.3.0

func (data ResourceMetadata) ConvertToUnstructured() (*unstructured.Unstructured, error)

func (ResourceMetadata) GetResourceType added in v0.3.0

func (data ResourceMetadata) GetResourceType() ResourceType

type ResourceMetadataList added in v0.3.0

type ResourceMetadataList []ResourceMetadata

func (*ResourceMetadataList) From added in v0.3.0

func (list *ResourceMetadataList) From(db *gorm.DB) error

func (ResourceMetadataList) Items added in v0.3.0

func (list ResourceMetadataList) Items() []Object

func (ResourceMetadataList) Select added in v0.4.0

func (list ResourceMetadataList) Select(query *gorm.DB) *gorm.DB

type ResourceStorage

type ResourceStorage struct {
	// contains filtered or unexported fields
}

func (*ResourceStorage) Create

func (s *ResourceStorage) Create(ctx context.Context, cluster string, obj runtime.Object) error

func (*ResourceStorage) Delete

func (s *ResourceStorage) Delete(ctx context.Context, cluster string, obj runtime.Object) error

func (*ResourceStorage) Get

func (s *ResourceStorage) Get(ctx context.Context, cluster, namespace, name string, into runtime.Object) error

func (*ResourceStorage) GetStorageConfig

func (s *ResourceStorage) GetStorageConfig() *storage.ResourceStorageConfig

func (*ResourceStorage) List

func (s *ResourceStorage) List(ctx context.Context, listObject runtime.Object, opts *internal.ListOptions) error

func (*ResourceStorage) Update

func (s *ResourceStorage) Update(ctx context.Context, cluster string, obj runtime.Object) error

type ResourceType added in v0.3.0

type ResourceType struct {
	Group    string
	Version  string
	Resource string
	Kind     string
}

func (ResourceType) Empty added in v0.4.0

func (rt ResourceType) Empty() bool

func (ResourceType) GroupVersionResource added in v0.3.0

func (rt ResourceType) GroupVersionResource() schema.GroupVersionResource

type StorageFactory

type StorageFactory struct {
	// contains filtered or unexported fields
}

func (*StorageFactory) CleanCluster

func (f *StorageFactory) CleanCluster(ctx context.Context, cluster string) error

func (*StorageFactory) CleanClusterResource

func (s *StorageFactory) CleanClusterResource(ctx context.Context, cluster string, gvr schema.GroupVersionResource) error

func (*StorageFactory) GetCollectionResources

func (s *StorageFactory) GetCollectionResources(ctx context.Context) ([]*internal.CollectionResource, error)

func (*StorageFactory) GetResourceVersions

func (f *StorageFactory) GetResourceVersions(ctx context.Context, cluster string) (map[schema.GroupVersionResource]map[string]interface{}, error)

func (*StorageFactory) NewCollectionResourceStorage

func (s *StorageFactory) NewCollectionResourceStorage(cr *internal.CollectionResource) (storage.CollectionResourceStorage, error)

func (*StorageFactory) NewResourceStorage

func (s *StorageFactory) NewResourceStorage(config *storage.ResourceStorageConfig) (storage.ResourceStorage, error)

Jump to

Keyboard shortcuts

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