 Documentation
      ¶
      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
}
    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.