k8sutil

package
v0.0.0-...-23d5cae Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2021 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EtcdClusterResourceKind   = "EtcdCluster"
	EtcdClusterResourcePlural = "etcdclusters"

	EtcdBackupResourceKind   = "EtcdBackup"
	EtcdBackupResourcePlural = "etcdbackups"

	EtcdRestoreResourceKind   = "EtcdRestore"
	EtcdRestoreResourcePlural = "etcdrestores"
)
View Source
const (
	// EtcdClientPort is the client port on client service and etcd nodes.
	EtcdClientPort = 2379

	// k8s object name has a maximum length
	MaxNameLength = 63 - randomSuffixLength - 1

	// AnnotationScope annotation name for defining instance scope. Used for specifying cluster wide clusters.
	AnnotationScope = "etcd.database.coreos.com/scope"
	//AnnotationClusterWide annotation value for cluster wide clusters.
	AnnotationClusterWide = "clusterwide"
)
View Source
const TolerateUnreadyEndpointsAnnotation = "service.alpha.kubernetes.io/tolerate-unready-endpoints"

Variables

This section is empty.

Functions

func AddEtcdVolumeToPod

func AddEtcdVolumeToPod(pod *v1.Pod, pvc *v1.PersistentVolumeClaim)

AddEtcdVolumeToPod abstract the process of appending volume spec to pod spec

func CascadeDeleteOptions

func CascadeDeleteOptions(gracePeriodSeconds int64) *metav1.DeleteOptions

func ClientServiceName

func ClientServiceName(clusterName string) string

func ClusterListOpt

func ClusterListOpt(clusterName string) metav1.ListOptions

We are using internal api types for cluster related.

func CreateClientService

func CreateClientService(kubecli kubernetes.Interface, clusterName, ns string, owner metav1.OwnerReference) error

func CreatePatch

func CreatePatch(o, n, datastruct interface{}) ([]byte, error)

func CreatePeerService

func CreatePeerService(kubecli kubernetes.Interface, clusterName, ns string, owner metav1.OwnerReference) error

func GetEtcdVersion

func GetEtcdVersion(pod *v1.Pod) string

func GetPodNames

func GetPodNames(pods []*v1.Pod) []string

func ImageName

func ImageName(repo, version string) string

func InClusterConfig

func InClusterConfig() (*rest.Config, error)

func IsKubernetesResourceAlreadyExistError

func IsKubernetesResourceAlreadyExistError(err error) bool

func IsKubernetesResourceNotFoundError

func IsKubernetesResourceNotFoundError(err error) bool

func IsPodReady

func IsPodReady(pod *v1.Pod) bool

IsPodReady returns false if the Pod Status is nil

func LabelsForCluster

func LabelsForCluster(clusterName string) map[string]string

func MemberRemoveEvent

func MemberRemoveEvent(memberName string, cl *api.Cluster) *v1.Event

func MemberUpgradedEvent

func MemberUpgradedEvent(memberName, oldVersion, newVersion string, cl *api.Cluster) *v1.Event

func MustNewKubeClient

func MustNewKubeClient() kubernetes.Interface

func NewEtcdPod

func NewEtcdPod(m *etcdutil.Member, initialCluster []string, clusterName, state, token string, cs api.ClusterSpec, owner metav1.OwnerReference) *v1.Pod

func NewEtcdPodPVC

func NewEtcdPodPVC(m *etcdutil.Member, pvcSpec v1.PersistentVolumeClaimSpec, clusterName, namespace string, owner metav1.OwnerReference) *v1.PersistentVolumeClaim

NewEtcdPodPVC create PVC object from etcd pod's PVC spec

func NewMemberAddEvent

func NewMemberAddEvent(memberName string, cl *api.Cluster) *v1.Event

func NewSeedMemberPod

func NewSeedMemberPod(clusterName string, ms etcdutil.MemberSet, m *etcdutil.Member, cs api.ClusterSpec, owner metav1.OwnerReference, backupURL *url.URL) *v1.Pod

NewSeedMemberPod returns a Pod manifest for a seed member. It's special that it has new token, and might need recovery init containers

func PVCNameFromMember

func PVCNameFromMember(memberName string) string

PVCNameFromMember the way we get PVC name from the member name

func PatchDeployment

func PatchDeployment(kubecli kubernetes.Interface, namespace, name string, updateFunc func(*appsv1beta1.Deployment)) error

func PodSpecToPrettyJSON

func PodSpecToPrettyJSON(pod *v1.Pod) (string, error)

func PodWithNodeSelector

func PodWithNodeSelector(p *v1.Pod, ns map[string]string) *v1.Pod

func ReplacingDeadMemberEvent

func ReplacingDeadMemberEvent(memberName string, cl *api.Cluster) *v1.Event

func SetEtcdVersion

func SetEtcdVersion(pod *v1.Pod, version string)

func UniqueMemberName

func UniqueMemberName(clusterName string) string

Types

type Cluster

type Cluster interface {
	UpdateCluster(namespace string, cluster *api.Cluster) error
}

func NewCluster

func NewCluster(kubeClient client.Client, logger logr.Logger) Cluster

type ClusterOption

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

func (*ClusterOption) UpdateCluster

func (c *ClusterOption) UpdateCluster(namespace string, cluster *api.Cluster) error

type Services

type Services interface {
	Cluster
}

func New

func New(kubecli client.Client, logger logr.Logger) Services

New returns a new Kubernetes client set.

type TLSData

type TLSData struct {
	CertData []byte
	KeyData  []byte
	CAData   []byte
}

func GetTLSDataFromSecret

func GetTLSDataFromSecret(kubecli kubernetes.Interface, ns, se string) (*TLSData, error)

GetTLSDataFromSecret retrives the kubernete secret that contain etcd tls certs and put them into TLSData.

Jump to

Keyboard shortcuts

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