psmdb

package
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2023 License: Apache-2.0 Imports: 27 Imported by: 2

Documentation

Index

Constants

View Source
const (

	// MongodDataVolClaimName is a PVC Claim name
	MongodDataVolClaimName = "mongod-data"
	// MongodContainerDataDir is a mondo data path in container
	MongodContainerDataDir = "/data/db"

	BinVolumeName = "bin"
	BinMountPath  = "/opt/percona"

	SSLDir = "/etc/mongodb-ssl"
)

Variables

View Source
var ErrNoIngressPoints = errors.New("ingress points not found")
View Source
var ErrServiceNotExists = errors.New("service doesn't exist")

Functions

func AddPMMContainer added in v1.6.0

func AddPMMContainer(ctx context.Context, cr *api.PerconaServerMongoDB, secret *corev1.Secret, customAdminParams string) *corev1.Container

AddPMMContainer creates the container object for a pmm-client

func EntrypointInitContainer added in v1.5.0

func EntrypointInitContainer(cr *api.PerconaServerMongoDB, name, image string, pullPolicy corev1.PullPolicy, command []string) corev1.Container

func ExternalService

func ExternalService(cr *api.PerconaServerMongoDB, replset *api.ReplsetSpec, podName string) *corev1.Service

ExternalService returns a Service object needs to serve external connections

func GetAddr added in v1.6.0

func GetAddr(cr *api.PerconaServerMongoDB, pod, replset string) string

GetAddr returns replicaSet pod address in cluster

func GetExportedServices added in v1.12.0

func GetMCSAddr added in v1.12.0

func GetMCSAddr(cr *api.PerconaServerMongoDB, pod string) string

GetMCSAddr returns ReplicaSet pod address using MultiCluster FQDN

func GetMongosAddrs added in v1.12.0

func GetMongosAddrs(ctx context.Context, cl client.Client, cr *api.PerconaServerMongoDB) ([]string, error)

GetMongosAddrs returns a slice of mongos addresses

func GetMongosPods added in v1.12.0

func GetMongosPods(ctx context.Context, cl client.Client, cr *api.PerconaServerMongoDB) (corev1.PodList, error)

func GetMongosServices added in v1.12.0

func GetMongosServices(ctx context.Context, cl client.Client, cr *api.PerconaServerMongoDB) (*corev1.ServiceList, error)

func GetOutdatedRSPods added in v1.15.0

func GetOutdatedRSPods(ctx context.Context, k8sclient client.Client, cr *api.PerconaServerMongoDB, rsName string) (corev1.PodList, error)

GetOutdatedRSPods does the same as GetRSPods but doesn't truncate the list of pods

func GetPrimaryPod added in v1.10.0

func GetPrimaryPod(ctx context.Context, mgoClient mongo.Client) (string, error)

func GetRSPods added in v1.10.0

func GetRSPods(ctx context.Context, k8sclient client.Client, cr *api.PerconaServerMongoDB, rsName string) (corev1.PodList, error)

GetRSPods returns truncated list of replicaset pods to the size of `rs.Size`.

func GetReplsetAddrs added in v1.4.0

func GetReplsetAddrs(ctx context.Context, cl client.Client, cr *api.PerconaServerMongoDB, dnsMode api.DNSMode, rsName string, rsExposed bool, pods []corev1.Pod) ([]string, error)

GetReplsetAddrs returns a slice of replset host:port addresses

func GetServiceMeshAddr added in v1.12.0

func GetServiceMeshAddr(cr *api.PerconaServerMongoDB, pod, replset string) string

GetAddr returns replicaSet pod address in a service mesh

func InitContainers added in v1.6.0

func InitContainers(cr *api.PerconaServerMongoDB, initImage string) []corev1.Container

func InternalKey added in v1.6.0

func InternalKey(cr *api.PerconaServerMongoDB) string

func IsServiceImported added in v1.12.0

func IsServiceImported(ctx context.Context, k8sclient client.Client, cr *api.PerconaServerMongoDB, svcName string) (bool, error)

func MongoClient added in v1.10.0

func MongoClient(ctx context.Context, k8sclient client.Client, cr *api.PerconaServerMongoDB, rs api.ReplsetSpec, c Credentials) (mongo.Client, error)

func MongoHost added in v1.4.0

func MongoHost(ctx context.Context, cl client.Client, cr *api.PerconaServerMongoDB, dnsMode api.DNSMode, rsName string, rsExposed bool, pod corev1.Pod) (string, error)

MongoHost returns the mongo host for given pod

func MongodCustomConfigName added in v1.9.0

func MongodCustomConfigName(clusterName, replicaSetName string) string

func MongosClient added in v1.10.0

func MongosClient(ctx context.Context, k8sclient client.Client, cr *api.PerconaServerMongoDB, c Credentials) (mongo.Client, error)

func MongosCustomConfigName added in v1.9.0

func MongosCustomConfigName(clusterName string) string

func MongosDeployment added in v1.6.0

func MongosDeployment(cr *api.PerconaServerMongoDB) *appsv1.Deployment

func MongosDeploymentSpec added in v1.6.0

func MongosDeploymentSpec(cr *api.PerconaServerMongoDB, template corev1.PodTemplateSpec) appsv1.DeploymentSpec

func MongosHost added in v1.12.0

func MongosHost(ctx context.Context, cl client.Client, cr *api.PerconaServerMongoDB, pod *corev1.Pod) (string, error)

MongosHost returns the mongos host for given pod

func MongosLabels added in v1.15.0

func MongosLabels(cr *api.PerconaServerMongoDB) map[string]string

func MongosService added in v1.6.0

func MongosService(cr *api.PerconaServerMongoDB, name string) corev1.Service

func MongosServiceSpec added in v1.6.0

func MongosServiceSpec(cr *api.PerconaServerMongoDB, podName string) corev1.ServiceSpec

func MongosStatefulset added in v1.12.0

func MongosStatefulset(cr *api.PerconaServerMongoDB) *appsv1.StatefulSet

func MongosStatefulsetSpec added in v1.12.0

func MongosStatefulsetSpec(cr *api.PerconaServerMongoDB, template corev1.PodTemplateSpec) appsv1.StatefulSetSpec

func MongosTemplateSpec added in v1.12.0

func MongosTemplateSpec(cr *api.PerconaServerMongoDB, initImage string, log logr.Logger, customConf CustomConfig, cfgInstances []string) (corev1.PodTemplateSpec, error)

func NewStatefulSet

func NewStatefulSet(name, namespace string) *appsv1.StatefulSet

NewStatefulSet returns a StatefulSet object configured for a name

func PMMAgentScript added in v1.6.0

func PMMAgentScript(cr *api.PerconaServerMongoDB) []corev1.EnvVar

func PMMContainer

func PMMContainer(cr *api.PerconaServerMongoDB, secret *corev1.Secret, customAdminParams string) corev1.Container

PMMContainer returns a pmm container from given spec

func PersistentVolumeClaim

func PersistentVolumeClaim(name, namespace string, spec *api.VolumeSpec) corev1.PersistentVolumeClaim

PersistentVolumeClaim returns a Persistent Volume Claims for Mongod pod

func PodAffinity

func PodAffinity(cr *api.PerconaServerMongoDB, af *api.PodAffinity, labels map[string]string) *corev1.Affinity

PodAffinity returns podAffinity options for the pod

func PodDisruptionBudget

func PodDisruptionBudget(spec *api.PodDisruptionBudgetSpec, labels map[string]string, namespace string) *policyv1.PodDisruptionBudget

func PodTopologySpreadConstraints added in v1.15.0

func PodTopologySpreadConstraints(cr *api.PerconaServerMongoDB, tscs []corev1.TopologySpreadConstraint, ls map[string]string) []corev1.TopologySpreadConstraint

func RSLabels added in v1.15.0

func RSLabels(cr *api.PerconaServerMongoDB, rsName string) map[string]string

func Service

func Service(cr *api.PerconaServerMongoDB, replset *api.ReplsetSpec) *corev1.Service

Service returns a core/v1 API Service

func StandaloneClient added in v1.12.0

func StandaloneClient(ctx context.Context, k8sclient client.Client, cr *api.PerconaServerMongoDB, c Credentials, host string) (mongo.Client, error)

func StatefulSpec

func StatefulSpec(ctx context.Context, cr *api.PerconaServerMongoDB, replset *api.ReplsetSpec, containerName string,
	ls map[string]string, customLabels map[string]string, multiAZ api.MultiAZ, size int32, ikeyName string,
	initContainers []corev1.Container, log logr.Logger, customConf CustomConfig,
	resources corev1.ResourceRequirements, podSecurityContext *corev1.PodSecurityContext,
	containerSecurityContext *corev1.SecurityContext, livenessProbe *api.LivenessProbeExtended,
	readinessProbe *corev1.Probe, configName string) (appsv1.StatefulSetSpec, error)

StatefulSpec returns spec for stateful set TODO: Unify Arbiter and Node. Shoudn't be 100500 parameters

Types

type Credentials added in v1.10.0

type Credentials struct {
	Username string
	Password string
}

type CustomConfig added in v1.10.0

type CustomConfig struct {
	Type    VolumeSourceType
	HashHex string
}

type HashableObject added in v1.10.0

type HashableObject interface {
	GetRuntimeObject() client.Object
	GetHashHex() (string, error)
}

func VolumeSourceTypeToObj added in v1.9.0

func VolumeSourceTypeToObj(s VolumeSourceType) HashableObject

type ServiceAddr

type ServiceAddr struct {
	Host string
	Port int
}

func GetServiceAddr

func GetServiceAddr(ctx context.Context, svc corev1.Service, pod corev1.Pod, cl client.Client) (*ServiceAddr, error)

func (ServiceAddr) String

func (s ServiceAddr) String() string

type VolumeSourceType added in v1.9.0

type VolumeSourceType int
const (
	VolumeSourceNone VolumeSourceType = iota
	VolumeSourceConfigMap
	VolumeSourceSecret
)

func (VolumeSourceType) IsUsable added in v1.9.0

func (s VolumeSourceType) IsUsable() bool

func (VolumeSourceType) String added in v1.9.0

func (s VolumeSourceType) String() string

func (VolumeSourceType) VolumeSource added in v1.9.0

func (s VolumeSourceType) VolumeSource(name string) corev1.VolumeSource

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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