Documentation
¶
Overview ¶
Copyright 2023 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- func CheckContainerHasCorrectEnvVar(pod corev1.Pod, expect corev1.EnvVar) error
- func CheckLeaderWorkerSetHasCondition(ctx context.Context, k8sClient client.Client, ...) (bool, error)
- func CheckTPUContainerHasCorrectEnvVars(pod corev1.Pod, envVal string) error
- func CreateLeaderPods(ctx context.Context, leaderSts appsv1.StatefulSet, k8sClient client.Client, ...) error
- func CreateLeaderPodsFromRevisionNumber(ctx context.Context, leaderSts appsv1.StatefulSet, k8sClient client.Client, ...)
- func CreateWorkerPodsForLeaderPod(ctx context.Context, leaderPod corev1.Pod, k8sClient client.Client, ...)
- func DeleteLeaderPod(ctx context.Context, k8sClient client.Client, ...)
- func DeleteLeaderPods(ctx context.Context, k8sClient client.Client, ...)
- func DeleteNamespace(ctx context.Context, c client.Client, ns *corev1.Namespace) error
- func DeleteWorkerPods(ctx context.Context, k8sClient client.Client, ...)
- func ExpectLeaderSetExist(ctx context.Context, lws *leaderworkerset.LeaderWorkerSet, ...)
- func ExpectLeaderWorkerSetAvailable(ctx context.Context, k8sClient client.Client, ...)
- func ExpectLeaderWorkerSetNoUpgradeInProgress(ctx context.Context, k8sClient client.Client, ...)
- func ExpectLeaderWorkerSetNotProgressing(ctx context.Context, k8sClient client.Client, ...)
- func ExpectLeaderWorkerSetProgressing(ctx context.Context, k8sClient client.Client, ...)
- func ExpectLeaderWorkerSetStatusReplicas(ctx context.Context, k8sClient client.Client, ...)
- func ExpectLeaderWorkerSetUnavailable(ctx context.Context, k8sClient client.Client, ...)
- func ExpectLeaderWorkerSetUpgradeInProgress(ctx context.Context, k8sClient client.Client, ...)
- func ExpectNotUpdatedWorkerStatefulSet(ctx context.Context, k8sClient client.Client, ...)
- func ExpectRevisions(ctx context.Context, k8sClient client.Client, ...)
- func ExpectSpecifiedWorkerStatefulSetsCreated(ctx context.Context, k8sClient client.Client, ...)
- func ExpectSpecifiedWorkerStatefulSetsNotCreated(ctx context.Context, k8sClient client.Client, ...)
- func ExpectStatefulsetPartitionEqualTo(ctx context.Context, k8sClient client.Client, ...)
- func ExpectUpdatedWorkerStatefulSet(ctx context.Context, k8sClient client.Client, ...)
- func ExpectValidLeaderStatefulSet(ctx context.Context, k8sClient client.Client, ...)
- func ExpectValidPods(ctx context.Context, k8sClient client.Client, ...)
- func ExpectValidServices(ctx context.Context, k8sClient client.Client, ...)
- func ExpectValidWorkerStatefulSets(ctx context.Context, leaderWorkerSet *leaderworkerset.LeaderWorkerSet, ...)
- func ExpectWorkerStatefulSetsNotCreated(ctx context.Context, k8sClient client.Client, ...)
- func GetLeaderStatefulset(ctx context.Context, lws *leaderworkerset.LeaderWorkerSet, ...)
- func GetNonEmptyLines(output string) []string
- func GetProjectDir() (string, error)
- func GetStatefulSets(ctx context.Context, lws *leaderworkerset.LeaderWorkerSet, ...)
- func HasLWSEnvVarsPopulated(pod corev1.Pod) bool
- func HasTPUEnvVarsPopulated(pod corev1.Pod) bool
- func IsContainerFirstEnvVarLWSLeaderAddress(pod corev1.Pod) error
- func MakeLeaderPodSpec() corev1.PodSpec
- func MakeLeaderPodSpecWithTPUResource() corev1.PodSpec
- func MakePodSpecWithInitContainer() corev1.PodSpec
- func MakePodWithLabels(setName, groupIndex, workerIndex, namespace string, size int) *corev1.Pod
- func MakeWorkerPodSpec() corev1.PodSpec
- func MakeWorkerPodSpecWithTPUResource() corev1.PodSpec
- func MustCreateLws(ctx context.Context, k8sClient client.Client, ...)
- func Run(cmd *exec.Cmd) (string, error)
- func SetLeaderPodToReady(ctx context.Context, k8sClient client.Client, podName string, ...)
- func SetLeaderPodsToReady(ctx context.Context, k8sClient client.Client, ...)
- func SetPodGroupToReady(ctx context.Context, k8sClient client.Client, statefulsetName string, ...)
- func SetPodGroupsToReady(ctx context.Context, k8sClient client.Client, ...)
- func SetStatefulsetToUnReady(ctx context.Context, k8sClient client.Client, sts *appsv1.StatefulSet)
- func UpdateLeaderTemplate(ctx context.Context, k8sClient client.Client, ...)
- func UpdateReplicaCount(ctx context.Context, k8sClient client.Client, ...)
- func UpdateSubdomainPolicy(ctx context.Context, k8sClient client.Client, ...)
- func UpdateWorkerTemplate(ctx context.Context, k8sClient client.Client, ...)
- func ValidateEvent(ctx context.Context, k8sClient client.Client, eventReason string, ...)
- func ValidatePodExclusivePlacementTerms(pod corev1.Pod, exclusiveAnnotationKey string, uniqueHashLabelKey string) bool
- type LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) Annotation(annotations map[string]string) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) Conditions(conditions []metav1.Condition) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) ExclusivePlacement() *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) LeaderTemplateSpec(spec corev1.PodSpec) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) MaxSurge(value int) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) MaxUnavailable(value int) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) Name(name string) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) Obj() *leaderworkerset.LeaderWorkerSet
- func (lwsWrapper *LeaderWorkerSetWrapper) Replica(count int) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) RestartPolicy(policy leaderworkerset.RestartPolicyType) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) RolloutStrategy(strategy leaderworkerset.RolloutStrategy) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) Size(count int) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) StartupPolicy(strategy leaderworkerset.StartupPolicyType) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) SubGroupSize(subGroupSize int32) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) SubdomainPolicy(subdomainPolicy leaderworkerset.SubdomainPolicy) *LeaderWorkerSetWrapper
- func (lwsWrapper *LeaderWorkerSetWrapper) WorkerTemplateSpec(spec corev1.PodSpec) *LeaderWorkerSetWrapper
Constants ¶
const ( Timeout = 30 * time.Second Interval = time.Millisecond * 250 )
Variables ¶
This section is empty.
Functions ¶
func CheckContainerHasCorrectEnvVar ¶ added in v0.3.0
func CheckLeaderWorkerSetHasCondition ¶
func CheckLeaderWorkerSetHasCondition(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, condition metav1.Condition) (bool, error)
func CreateLeaderPods ¶
func CreateLeaderPods(ctx context.Context, leaderSts appsv1.StatefulSet, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, start int, end int) error
func CreateLeaderPodsFromRevisionNumber ¶ added in v0.5.0
func CreateLeaderPodsFromRevisionNumber(ctx context.Context, leaderSts appsv1.StatefulSet, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, start, end, revisionNumber int)
func CreateWorkerPodsForLeaderPod ¶
func CreateWorkerPodsForLeaderPod(ctx context.Context, leaderPod corev1.Pod, k8sClient client.Client, lws leaderworkerset.LeaderWorkerSet)
func DeleteLeaderPod ¶ added in v0.3.0
func DeleteLeaderPod(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, start, end int32)
func DeleteLeaderPods ¶
func DeleteLeaderPods(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet)
func DeleteNamespace ¶ added in v0.2.0
DeleteNamespace deletes all objects the tests typically create in the namespace.
func DeleteWorkerPods ¶ added in v0.5.0
func DeleteWorkerPods(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet)
func ExpectLeaderSetExist ¶
func ExpectLeaderSetExist(ctx context.Context, lws *leaderworkerset.LeaderWorkerSet, k8sClient client.Client)
func ExpectLeaderWorkerSetAvailable ¶
func ExpectLeaderWorkerSetAvailable(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, message string)
func ExpectLeaderWorkerSetNoUpgradeInProgress ¶ added in v0.3.0
func ExpectLeaderWorkerSetNoUpgradeInProgress(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, message string)
func ExpectLeaderWorkerSetNotProgressing ¶
func ExpectLeaderWorkerSetNotProgressing(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, message string)
func ExpectLeaderWorkerSetProgressing ¶
func ExpectLeaderWorkerSetProgressing(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, message string)
func ExpectLeaderWorkerSetStatusReplicas ¶ added in v0.2.0
func ExpectLeaderWorkerSetStatusReplicas(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, readyReplicas, updatedReplicas int)
func ExpectLeaderWorkerSetUnavailable ¶ added in v0.2.0
func ExpectLeaderWorkerSetUnavailable(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, message string)
func ExpectLeaderWorkerSetUpgradeInProgress ¶ added in v0.3.0
func ExpectLeaderWorkerSetUpgradeInProgress(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, message string)
func ExpectNotUpdatedWorkerStatefulSet ¶ added in v0.5.0
func ExpectNotUpdatedWorkerStatefulSet(ctx context.Context, k8sClient client.Client, leaderWorkerSet *leaderworkerset.LeaderWorkerSet, statefulsetName string)
Expect that the revisionKey and the container name in the Worker Sts have not been updated
func ExpectRevisions ¶ added in v0.5.0
func ExpectRevisions(ctx context.Context, k8sClient client.Client, leaderWorkerSet *leaderworkerset.LeaderWorkerSet, numRevisions int)
func ExpectSpecifiedWorkerStatefulSetsCreated ¶ added in v0.3.0
func ExpectSpecifiedWorkerStatefulSetsCreated(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, start, end int)
func ExpectSpecifiedWorkerStatefulSetsNotCreated ¶ added in v0.3.0
func ExpectSpecifiedWorkerStatefulSetsNotCreated(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, start, end int)
func ExpectStatefulsetPartitionEqualTo ¶ added in v0.2.0
func ExpectStatefulsetPartitionEqualTo(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, partition int32)
func ExpectUpdatedWorkerStatefulSet ¶ added in v0.5.0
func ExpectUpdatedWorkerStatefulSet(ctx context.Context, k8sClient client.Client, leaderWorkerSet *leaderworkerset.LeaderWorkerSet, statefulsetName string)
Expect that the revisionKey and the container name in the Worker Sts have been updated
func ExpectValidLeaderStatefulSet ¶
func ExpectValidLeaderStatefulSet(ctx context.Context, k8sClient client.Client, leaderWorkerSet *leaderworkerset.LeaderWorkerSet, replicas int32)
func ExpectValidPods ¶ added in v0.2.0
func ExpectValidPods(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, podList *corev1.PodList)
This should only be used in e2e test, since integration test will not automatically create worker pods.
func ExpectValidServices ¶
func ExpectValidServices(ctx context.Context, k8sClient client.Client, leaderWorkerSet *leaderworkerset.LeaderWorkerSet, numHeadlessServices int)
func ExpectValidWorkerStatefulSets ¶
func ExpectValidWorkerStatefulSets(ctx context.Context, leaderWorkerSet *leaderworkerset.LeaderWorkerSet, k8sClient client.Client, leaderPodScheduled bool)
func ExpectWorkerStatefulSetsNotCreated ¶ added in v0.3.0
func ExpectWorkerStatefulSetsNotCreated(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet)
func GetLeaderStatefulset ¶ added in v0.2.0
func GetLeaderStatefulset(ctx context.Context, lws *leaderworkerset.LeaderWorkerSet, k8sClient client.Client, sts *appsv1.StatefulSet)
func GetNonEmptyLines ¶ added in v0.5.0
GetNonEmptyLines converts given command output string into individual objects according to line breakers, and ignores the empty elements in it.
func GetProjectDir ¶ added in v0.5.0
GetProjectDir will return the directory where the project is
func GetStatefulSets ¶ added in v0.2.0
func GetStatefulSets(ctx context.Context, lws *leaderworkerset.LeaderWorkerSet, k8sClient client.Client, stsl *appsv1.StatefulSetList)
func HasLWSEnvVarsPopulated ¶ added in v0.3.0
func HasTPUEnvVarsPopulated ¶
func IsContainerFirstEnvVarLWSLeaderAddress ¶ added in v0.3.0
func MakeLeaderPodSpec ¶
func MakePodSpecWithInitContainer ¶ added in v0.3.0
func MakePodWithLabels ¶ added in v0.3.0
func MakeWorkerPodSpec ¶
func MustCreateLws ¶ added in v0.2.0
func MustCreateLws(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet)
func SetLeaderPodToReady ¶ added in v0.3.0
func SetLeaderPodToReady(ctx context.Context, k8sClient client.Client, podName string, lws *leaderworkerset.LeaderWorkerSet)
func SetLeaderPodsToReady ¶ added in v0.3.0
func SetLeaderPodsToReady(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, start, end int)
func SetPodGroupToReady ¶ added in v0.2.0
func SetPodGroupToReady(ctx context.Context, k8sClient client.Client, statefulsetName string, lws *leaderworkerset.LeaderWorkerSet)
SetPodGroupToReady set one podGroup(leaderPod+workerStatefulset) of leaderWorkerSet to ready state, workerPods not included.
func SetPodGroupsToReady ¶
func SetPodGroupsToReady(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, podGroupNumber int32)
SetPodGroupsToReady set all podGroups of the leaderWorkerSet to ready state.
func SetStatefulsetToUnReady ¶ added in v0.2.0
SetStatefulsetToUnReady set statefulset to unready.
func UpdateLeaderTemplate ¶ added in v0.2.0
func UpdateLeaderTemplate(ctx context.Context, k8sClient client.Client, leaderWorkerSet *leaderworkerset.LeaderWorkerSet)
func UpdateReplicaCount ¶
func UpdateReplicaCount(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, count int32)
func UpdateSubdomainPolicy ¶ added in v0.4.0
func UpdateSubdomainPolicy(ctx context.Context, k8sClient client.Client, lws *leaderworkerset.LeaderWorkerSet, subdomainPolicy leaderworkerset.SubdomainPolicy)
func UpdateWorkerTemplate ¶ added in v0.2.0
func UpdateWorkerTemplate(ctx context.Context, k8sClient client.Client, leaderWorkerSet *leaderworkerset.LeaderWorkerSet)
Types ¶
type LeaderWorkerSetWrapper ¶
type LeaderWorkerSetWrapper struct {
leaderworkerset.LeaderWorkerSet
}
func BuildBasicLeaderWorkerSet ¶
func BuildBasicLeaderWorkerSet(name, ns string) *LeaderWorkerSetWrapper
func BuildLeaderWorkerSet ¶
func BuildLeaderWorkerSet(nsName string) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) Annotation ¶
func (lwsWrapper *LeaderWorkerSetWrapper) Annotation(annotations map[string]string) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) Conditions ¶
func (lwsWrapper *LeaderWorkerSetWrapper) Conditions(conditions []metav1.Condition) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) ExclusivePlacement ¶
func (lwsWrapper *LeaderWorkerSetWrapper) ExclusivePlacement() *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) LeaderTemplateSpec ¶
func (lwsWrapper *LeaderWorkerSetWrapper) LeaderTemplateSpec(spec corev1.PodSpec) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) MaxSurge ¶ added in v0.3.0
func (lwsWrapper *LeaderWorkerSetWrapper) MaxSurge(value int) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) MaxUnavailable ¶ added in v0.2.0
func (lwsWrapper *LeaderWorkerSetWrapper) MaxUnavailable(value int) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) Name ¶ added in v0.4.0
func (lwsWrapper *LeaderWorkerSetWrapper) Name(name string) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) Obj ¶
func (lwsWrapper *LeaderWorkerSetWrapper) Obj() *leaderworkerset.LeaderWorkerSet
func (*LeaderWorkerSetWrapper) Replica ¶
func (lwsWrapper *LeaderWorkerSetWrapper) Replica(count int) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) RestartPolicy ¶
func (lwsWrapper *LeaderWorkerSetWrapper) RestartPolicy(policy leaderworkerset.RestartPolicyType) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) RolloutStrategy ¶ added in v0.2.0
func (lwsWrapper *LeaderWorkerSetWrapper) RolloutStrategy(strategy leaderworkerset.RolloutStrategy) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) Size ¶
func (lwsWrapper *LeaderWorkerSetWrapper) Size(count int) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) StartupPolicy ¶ added in v0.3.0
func (lwsWrapper *LeaderWorkerSetWrapper) StartupPolicy(strategy leaderworkerset.StartupPolicyType) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) SubGroupSize ¶ added in v0.3.0
func (lwsWrapper *LeaderWorkerSetWrapper) SubGroupSize(subGroupSize int32) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) SubdomainPolicy ¶ added in v0.4.0
func (lwsWrapper *LeaderWorkerSetWrapper) SubdomainPolicy(subdomainPolicy leaderworkerset.SubdomainPolicy) *LeaderWorkerSetWrapper
func (*LeaderWorkerSetWrapper) WorkerTemplateSpec ¶
func (lwsWrapper *LeaderWorkerSetWrapper) WorkerTemplateSpec(spec corev1.PodSpec) *LeaderWorkerSetWrapper