mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-15 10:50:18 +00:00
106 lines
4.6 KiB
Protocol Buffer
106 lines
4.6 KiB
Protocol Buffer
|
/*
|
||
|
Copyright 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.
|
||
|
*/
|
||
|
|
||
|
|
||
|
// This file was autogenerated by go-to-protobuf. Do not edit it manually!
|
||
|
|
||
|
syntax = "proto2";
|
||
|
|
||
|
package k8s.io.api.coordination.v1alpha1;
|
||
|
|
||
|
import "k8s.io/api/coordination/v1/generated.proto";
|
||
|
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
|
||
|
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
|
||
|
import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
|
||
|
|
||
|
// Package-wide variables from generator "generated".
|
||
|
option go_package = "k8s.io/api/coordination/v1alpha1";
|
||
|
|
||
|
// LeaseCandidate defines a candidate for a Lease object.
|
||
|
// Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.
|
||
|
message LeaseCandidate {
|
||
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||
|
// +optional
|
||
|
optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
|
||
|
|
||
|
// spec contains the specification of the Lease.
|
||
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||
|
// +optional
|
||
|
optional LeaseCandidateSpec spec = 2;
|
||
|
}
|
||
|
|
||
|
// LeaseCandidateList is a list of Lease objects.
|
||
|
message LeaseCandidateList {
|
||
|
// Standard list metadata.
|
||
|
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||
|
// +optional
|
||
|
optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
|
||
|
|
||
|
// items is a list of schema objects.
|
||
|
repeated LeaseCandidate items = 2;
|
||
|
}
|
||
|
|
||
|
// LeaseCandidateSpec is a specification of a Lease.
|
||
|
message LeaseCandidateSpec {
|
||
|
// LeaseName is the name of the lease for which this candidate is contending.
|
||
|
// This field is immutable.
|
||
|
// +required
|
||
|
optional string leaseName = 1;
|
||
|
|
||
|
// PingTime is the last time that the server has requested the LeaseCandidate
|
||
|
// to renew. It is only done during leader election to check if any
|
||
|
// LeaseCandidates have become ineligible. When PingTime is updated, the
|
||
|
// LeaseCandidate will respond by updating RenewTime.
|
||
|
// +optional
|
||
|
optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime pingTime = 2;
|
||
|
|
||
|
// RenewTime is the time that the LeaseCandidate was last updated.
|
||
|
// Any time a Lease needs to do leader election, the PingTime field
|
||
|
// is updated to signal to the LeaseCandidate that they should update
|
||
|
// the RenewTime.
|
||
|
// Old LeaseCandidate objects are also garbage collected if it has been hours
|
||
|
// since the last renew. The PingTime field is updated regularly to prevent
|
||
|
// garbage collection for still active LeaseCandidates.
|
||
|
// +optional
|
||
|
optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 3;
|
||
|
|
||
|
// BinaryVersion is the binary version. It must be in a semver format without leading `v`.
|
||
|
// This field is required when strategy is "OldestEmulationVersion"
|
||
|
// +optional
|
||
|
optional string binaryVersion = 4;
|
||
|
|
||
|
// EmulationVersion is the emulation version. It must be in a semver format without leading `v`.
|
||
|
// EmulationVersion must be less than or equal to BinaryVersion.
|
||
|
// This field is required when strategy is "OldestEmulationVersion"
|
||
|
// +optional
|
||
|
optional string emulationVersion = 5;
|
||
|
|
||
|
// PreferredStrategies indicates the list of strategies for picking the leader for coordinated leader election.
|
||
|
// The list is ordered, and the first strategy supersedes all other strategies. The list is used by coordinated
|
||
|
// leader election to make a decision about the final election strategy. This follows as
|
||
|
// - If all clients have strategy X as the first element in this list, strategy X will be used.
|
||
|
// - If a candidate has strategy [X] and another candidate has strategy [Y, X], Y supersedes X and strategy Y
|
||
|
// will be used.
|
||
|
// - If a candidate has strategy [X, Y] and another candidate has strategy [Y, X], this is a user error and leader
|
||
|
// election will not operate the Lease until resolved.
|
||
|
// (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
|
||
|
// +featureGate=CoordinatedLeaderElection
|
||
|
// +listType=atomic
|
||
|
// +required
|
||
|
repeated string preferredStrategies = 6;
|
||
|
}
|
||
|
|