Documentation ¶
Index ¶
- Constants
- func InterpretDBError(key string, err error) error
- func InterpretMysqlError(key string, err error) error
- func InterpretPostgresError(key string, err error) error
- func InterpretResourceDBError(cluster, name string, err error) error
- func NewCollectionResourceStorage(db *gorm.DB, cr *internal.CollectionResource) storage.CollectionResourceStorage
- func NewStorageFactory(configPath string) (storage.StorageFactory, error)
- type Bytes
- func (bytes Bytes) ConvertTo(codec runtime.Codec, object runtime.Object) (runtime.Object, error)
- func (bytes Bytes) ConvertToUnstructured() (*unstructured.Unstructured, error)
- func (bytes Bytes) GetResourceType() ResourceType
- func (bytes *Bytes) Scan(data any) error
- func (bytes Bytes) Value() (driver.Value, error)
- type BytesList
- type CollectionResourceStorage
- type Config
- type ConnPoolConfig
- type JSONQueryExpression
- func (jsonQuery *JSONQueryExpression) Build(builder clause.Builder)
- func (jsonQuery *JSONQueryExpression) Equal(value string) *JSONQueryExpression
- func (jsonQuery *JSONQueryExpression) Exist() *JSONQueryExpression
- func (jsonQuery *JSONQueryExpression) In(values ...string) *JSONQueryExpression
- func (jsonQuery *JSONQueryExpression) NotEqual(value string) *JSONQueryExpression
- func (jsonQuery *JSONQueryExpression) NotExist() *JSONQueryExpression
- func (jsonQuery *JSONQueryExpression) NotIn(values ...string) *JSONQueryExpression
- type LogConfig
- type MySQLConfig
- type Object
- type ObjectList
- type PostgresConfig
- type Resource
- type ResourceList
- type ResourceMetadata
- type ResourceMetadataList
- type ResourceStorage
- func (s *ResourceStorage) Create(ctx context.Context, cluster string, obj runtime.Object) error
- func (s *ResourceStorage) Delete(ctx context.Context, cluster string, obj runtime.Object) error
- func (s *ResourceStorage) Get(ctx context.Context, cluster, namespace, name string, into runtime.Object) error
- func (s *ResourceStorage) GetStorageConfig() *storage.ResourceStorageConfig
- func (s *ResourceStorage) List(ctx context.Context, listObject runtime.Object, opts *internal.ListOptions) error
- func (s *ResourceStorage) Update(ctx context.Context, cluster string, obj runtime.Object) error
- func (s *ResourceStorage) Watch(_ context.Context, _ *internal.ListOptions) (watch.Interface, error)
- type ResourceType
- type StorageFactory
- func (f *StorageFactory) CleanCluster(ctx context.Context, cluster string) error
- func (s *StorageFactory) CleanClusterResource(ctx context.Context, cluster string, gvr schema.GroupVersionResource) error
- func (s *StorageFactory) GetCollectionResources(ctx context.Context) ([]*internal.CollectionResource, error)
- func (f *StorageFactory) GetResourceVersions(ctx context.Context, cluster string) (map[schema.GroupVersionResource]map[string]interface{}, error)
- func (s *StorageFactory) GetSupportedRequestVerbs() []string
- func (s *StorageFactory) NewCollectionResourceStorage(cr *internal.CollectionResource) (storage.CollectionResourceStorage, error)
- func (s *StorageFactory) NewResourceStorage(config *storage.ResourceStorageConfig) (storage.ResourceStorage, error)
- func (s *StorageFactory) PrepareCluster(cluster string) error
- type URLQueryWhereSQLParams
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" // Raw query URLQueryWhereSQL = "whereSQL" // Parameterized query URLQueryFieldWhereSQLStatement = "whereSQLStatement" URLQueryFieldWhereSQLParam = "whereSQLParam" URLQueryFieldWhereSQLJSONParams = "whereSQLJSONParams" )
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 InterpretMysqlError ¶ added in v0.4.0
func InterpretPostgresError ¶ added in v0.4.0
func InterpretResourceDBError ¶ added in v0.4.0
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
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 CollectionResourceStorage ¶
type CollectionResourceStorage struct {
// contains filtered or unexported fields
}
func (*CollectionResourceStorage) Get ¶
func (s *CollectionResourceStorage) Get(ctx context.Context, opts *internal.ListOptions) (*internal.CollectionResource, error)
type Config ¶
type Config struct { Type string `env:"DB_TYPE" required:"true"` DSN string `env:"DB_DSN"` 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"` 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"` }
type ConnPoolConfig ¶ added in v0.3.0
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 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 RecoverableErrNumbers []int `yaml:"recoverableErrNumbers"` }
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 PostgresConfig ¶
type PostgresConfig struct {
RecoverableErrCodes []string `yaml:"recoverableErrCodes"`
}
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) 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) Items ¶ added in v0.3.0
func (list ResourceList) Items() []Object
type ResourceMetadata ¶ added in v0.3.0
type ResourceMetadata struct { ResourceType `gorm:"embedded"` Metadata datatypes.JSON }
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
type ResourceStorage ¶
type ResourceStorage struct {
// contains filtered or unexported fields
}
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) Watch ¶ added in v0.6.0
func (s *ResourceStorage) Watch(_ context.Context, _ *internal.ListOptions) (watch.Interface, error)
type ResourceType ¶ added in v0.3.0
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) GetSupportedRequestVerbs ¶ added in v0.6.0
func (s *StorageFactory) GetSupportedRequestVerbs() []string
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)
func (*StorageFactory) PrepareCluster ¶ added in v0.6.0
func (s *StorageFactory) PrepareCluster(cluster string) error
type URLQueryWhereSQLParams ¶ added in v0.7.1
type URLQueryWhereSQLParams struct { // Raw query WhereSQL string // Parameterized query WhereSQLStatement string WhereSQLParams []string WhereSQLJSONParams []any }
func NewURLQueryWhereSQLParamsFromURLValues ¶ added in v0.7.1
func NewURLQueryWhereSQLParamsFromURLValues(urlQuery url.Values) (URLQueryWhereSQLParams, error)
NewURLQueryWhereSQLParamsFromURLValues resolves parameters from passed in url.Values. A k8s.io/apimachinery/pkg/api/errors.StatusError will be returned if decoding or unmarshalling failed only when the value of "whereSQLJSONParams" is present.
It recognizes the following query fields for parameters:
"whereSQL" "whereSQLStatement" "whereSQLParam" "whereSQLJSONParams"
Click to show internal directories.
Click to hide internal directories.