Documentation
¶
Index ¶
Constants ¶
const ( PGSyncUserAdd = iota PGsyncUserAlter PGSyncAlterSet // handle ALTER ROLE SET parameter = value PGSyncUserRename )
Possible values for the sync user operation (removal of users is not supported yet)
Variables ¶
This section is empty.
Functions ¶
func GetOperatorNamespace ¶
func GetOperatorNamespace() string
GetOperatorNamespace assumes serviceaccount secret is mounted by kubernetes Placing this func here instead of pgk/util avoids circular import
Types ¶
type ControllerConfig ¶
type ControllerConfig struct {
RestConfig *rest.Config `json:"-"`
InfrastructureRoles map[string]PgUser
NoDatabaseAccess bool
NoTeamsAPI bool
CRDReadyWaitInterval time.Duration
CRDReadyWaitTimeout time.Duration
ConfigMapName NamespacedName
Namespace string
IgnoredAnnotations []string
EnableJsonLogging bool
KubeQPS int
KubeBurst int
}
ControllerConfig describes configuration of the controller
type ControllerStatus ¶
ControllerStatus describes status of the controller
type LogEntry ¶
type LogEntry struct {
Time time.Time
Level logrus.Level
ClusterName *NamespacedName `json:",omitempty"`
Worker *uint32 `json:",omitempty"`
Message string
}
LogEntry describes log entry in the RingLogger
type NamespacedName ¶
type NamespacedName types.NamespacedName
NamespacedName describes the namespace/name pairs used in Kubernetes names.
func (*NamespacedName) Decode ¶
func (n *NamespacedName) Decode(value string) error
Decode converts a (possibly unqualified) string into the namespaced name object.
func (*NamespacedName) DecodeWorker ¶
func (n *NamespacedName) DecodeWorker(value, operatorNamespace string) error
DecodeWorker separates the decode logic to (unit) test from obtaining the operator namespace that depends on k8s mounting files at runtime
func (NamespacedName) MarshalJSON ¶
func (n NamespacedName) MarshalJSON() ([]byte, error)
MarshalJSON defines marshaling rule for the namespaced name type.
func (NamespacedName) String ¶
func (n NamespacedName) String() string
func (*NamespacedName) UnmarshalJSON ¶
func (n *NamespacedName) UnmarshalJSON(data []byte) error
UnmarshalJSON converts a byte slice to NamespacedName
type PgSyncUserRequest ¶
type PgSyncUserRequest struct {
Kind syncUserOperation
User PgUser
}
PgSyncUserRequest has information about a single request to sync a user.
type PgUser ¶
type PgUser struct {
Origin RoleOrigin `yaml:"-"`
Name string `yaml:"-"`
Namespace string `yaml:"-"`
Password string `yaml:"-"`
Flags []string `yaml:"user_flags"`
MemberOf []string `yaml:"inrole"`
Parameters map[string]string `yaml:"db_parameters"`
AdminRole string `yaml:"admin_role"`
IsDbOwner bool `yaml:"is_db_owner"`
Deleted bool `yaml:"deleted"`
Rotated bool `yaml:"rotated"`
}
PgUser contains information about a single user.
type QueueDump ¶
type QueueDump struct {
Keys []string
List []interface{}
}
QueueDump describes cache.FIFO queue
type RoleOrigin ¶
type RoleOrigin int
RoleOrigin contains the code of the origin of a role
const ( RoleOriginUnknown RoleOrigin = iota RoleOriginManifest RoleOriginInfrastructure RoleOriginTeamsAPI RoleOriginSystem RoleOriginBootstrap RoleOriginConnectionPooler RoleOriginStream )
The rolesOrigin constant values must be sorted by the role priority for resolveNameConflict(...) to work.
func (RoleOrigin) String ¶
func (r RoleOrigin) String() string
type UserSyncer ¶
type UserSyncer interface {
ProduceSyncRequests(dbUsers PgUserMap, newUsers PgUserMap) (req []PgSyncUserRequest)
ExecuteSyncRequests(req []PgSyncUserRequest, db *sql.DB) error
}
UserSyncer defines an interface for the implementations to sync users from the manifest to the DB.