API changes

This commit is contained in:
Sreeram 2025-03-25 01:56:45 +05:30
parent 62555cadc7
commit 70540c9f43
5 changed files with 181 additions and 0 deletions

View File

@ -2673,6 +2673,78 @@ type GRPCAction struct {
Service *string
}
// Signal defines the stop signal of containers
// +enum
type Signal string
const (
SIGABRT Signal = "SIGABRT"
SIGALRM Signal = "SIGALRM"
SIGBUS Signal = "SIGBUS"
SIGCHLD Signal = "SIGCHLD"
SIGCLD Signal = "SIGCLD"
SIGCONT Signal = "SIGCONT"
SIGFPE Signal = "SIGFPE"
SIGHUP Signal = "SIGHUP"
SIGILL Signal = "SIGILL"
SIGINT Signal = "SIGINT"
SIGIO Signal = "SIGIO"
SIGIOT Signal = "SIGIOT"
SIGKILL Signal = "SIGKILL"
SIGPIPE Signal = "SIGPIPE"
SIGPOLL Signal = "SIGPOLL"
SIGPROF Signal = "SIGPROF"
SIGPWR Signal = "SIGPWR"
SIGQUIT Signal = "SIGQUIT"
SIGSEGV Signal = "SIGSEGV"
SIGSTKFLT Signal = "SIGSTKFLT"
SIGSTOP Signal = "SIGSTOP"
SIGSYS Signal = "SIGSYS"
SIGTERM Signal = "SIGTERM"
SIGTRAP Signal = "SIGTRAP"
SIGTSTP Signal = "SIGTSTP"
SIGTTIN Signal = "SIGTTIN"
SIGTTOU Signal = "SIGTTOU"
SIGURG Signal = "SIGURG"
SIGUSR1 Signal = "SIGUSR1"
SIGUSR2 Signal = "SIGUSR2"
SIGVTALRM Signal = "SIGVTALRM"
SIGWINCH Signal = "SIGWINCH"
SIGXCPU Signal = "SIGXCPU"
SIGXFSZ Signal = "SIGXFSZ"
SIGRTMIN Signal = "SIGRTMIN"
SIGRTMINPLUS1 Signal = "SIGRTMIN+1"
SIGRTMINPLUS2 Signal = "SIGRTMIN+2"
SIGRTMINPLUS3 Signal = "SIGRTMIN+3"
SIGRTMINPLUS4 Signal = "SIGRTMIN+4"
SIGRTMINPLUS5 Signal = "SIGRTMIN+5"
SIGRTMINPLUS6 Signal = "SIGRTMIN+6"
SIGRTMINPLUS7 Signal = "SIGRTMIN+7"
SIGRTMINPLUS8 Signal = "SIGRTMIN+8"
SIGRTMINPLUS9 Signal = "SIGRTMIN+9"
SIGRTMINPLUS10 Signal = "SIGRTMIN+10"
SIGRTMINPLUS11 Signal = "SIGRTMIN+11"
SIGRTMINPLUS12 Signal = "SIGRTMIN+12"
SIGRTMINPLUS13 Signal = "SIGRTMIN+13"
SIGRTMINPLUS14 Signal = "SIGRTMIN+14"
SIGRTMINPLUS15 Signal = "SIGRTMIN+15"
SIGRTMAXMINUS14 Signal = "SIGRTMAX-14"
SIGRTMAXMINUS13 Signal = "SIGRTMAX-13"
SIGRTMAXMINUS12 Signal = "SIGRTMAX-12"
SIGRTMAXMINUS11 Signal = "SIGRTMAX-11"
SIGRTMAXMINUS10 Signal = "SIGRTMAX-10"
SIGRTMAXMINUS9 Signal = "SIGRTMAX-9"
SIGRTMAXMINUS8 Signal = "SIGRTMAX-8"
SIGRTMAXMINUS7 Signal = "SIGRTMAX-7"
SIGRTMAXMINUS6 Signal = "SIGRTMAX-6"
SIGRTMAXMINUS5 Signal = "SIGRTMAX-5"
SIGRTMAXMINUS4 Signal = "SIGRTMAX-4"
SIGRTMAXMINUS3 Signal = "SIGRTMAX-3"
SIGRTMAXMINUS2 Signal = "SIGRTMAX-2"
SIGRTMAXMINUS1 Signal = "SIGRTMAX-1"
SIGRTMAX Signal = "SIGRTMAX"
)
// Lifecycle describes actions that the management system should take in response to container lifecycle
// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks
// until the action is complete, unless the container process fails, in which case the handler is aborted.
@ -2693,6 +2765,11 @@ type Lifecycle struct {
// More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
// +optional
PreStop *LifecycleHandler
// StopSignal defines which signal will be sent to a container when it is being stopped.
// If not specified, the default is defined by the container runtime in use.
// StopSignal can only be set for Pods with a non-empty .spec.os.name
// +optional
StopSignal *Signal
}
// The below types are used by kube_client and api_server.
@ -2831,6 +2908,12 @@ type ContainerStatus struct {
// +featureGate=ResourceHealthStatus
// +optional
AllocatedResourcesStatus []ResourceStatus
// StopSignal is the signal which will be sent to this container when it is stopped. This might be
// the stop signal specified by the user, the signal specified in the container image, or the default
// stop signal of the container runtime on this node.
// +featureGate=ContainerStopSignals
// +optional
StopSignal *Signal
}
type ResourceStatus struct {

View File

@ -79,6 +79,11 @@ const (
// Enable ClusterTrustBundle Kubelet projected volumes. Depends on ClusterTrustBundle.
ClusterTrustBundleProjection featuregate.Feature = "ClusterTrustBundleProjection"
// owner: @sreeram-venkitesh
//
// Enables configuring custom stop signals for containers from container lifecycle
ContainerStopSignals featuregate.Feature = "ContainerStopSignals"
// owner: @szuecs
//
// Enable nodes to change CPUCFSQuotaPeriod
@ -1038,6 +1043,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
{Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Beta},
},
ContainerStopSignals: {
{Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Alpha},
},
ContainerCheckpoint: {
{Version: version.MustParse("1.25"), Default: false, PreRelease: featuregate.Alpha},
{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},

View File

@ -388,6 +388,8 @@ type Status struct {
User *ContainerUser
// Mounts are the volume mounts of the container
Mounts []Mount
// StopSignal is used to show the container's effective stop signal in the Status
StopSignal *v1.Signal
}
// ContainerUser represents user identity information

View File

@ -2980,6 +2980,78 @@ type LifecycleHandler struct {
Sleep *SleepAction `json:"sleep,omitempty" protobuf:"bytes,4,opt,name=sleep"`
}
// Signal defines the stop signal of containers
// +enum
type Signal string
const (
SIGABRT Signal = "SIGABRT"
SIGALRM Signal = "SIGALRM"
SIGBUS Signal = "SIGBUS"
SIGCHLD Signal = "SIGCHLD"
SIGCLD Signal = "SIGCLD"
SIGCONT Signal = "SIGCONT"
SIGFPE Signal = "SIGFPE"
SIGHUP Signal = "SIGHUP"
SIGILL Signal = "SIGILL"
SIGINT Signal = "SIGINT"
SIGIO Signal = "SIGIO"
SIGIOT Signal = "SIGIOT"
SIGKILL Signal = "SIGKILL"
SIGPIPE Signal = "SIGPIPE"
SIGPOLL Signal = "SIGPOLL"
SIGPROF Signal = "SIGPROF"
SIGPWR Signal = "SIGPWR"
SIGQUIT Signal = "SIGQUIT"
SIGSEGV Signal = "SIGSEGV"
SIGSTKFLT Signal = "SIGSTKFLT"
SIGSTOP Signal = "SIGSTOP"
SIGSYS Signal = "SIGSYS"
SIGTERM Signal = "SIGTERM"
SIGTRAP Signal = "SIGTRAP"
SIGTSTP Signal = "SIGTSTP"
SIGTTIN Signal = "SIGTTIN"
SIGTTOU Signal = "SIGTTOU"
SIGURG Signal = "SIGURG"
SIGUSR1 Signal = "SIGUSR1"
SIGUSR2 Signal = "SIGUSR2"
SIGVTALRM Signal = "SIGVTALRM"
SIGWINCH Signal = "SIGWINCH"
SIGXCPU Signal = "SIGXCPU"
SIGXFSZ Signal = "SIGXFSZ"
SIGRTMIN Signal = "SIGRTMIN"
SIGRTMINPLUS1 Signal = "SIGRTMIN+1"
SIGRTMINPLUS2 Signal = "SIGRTMIN+2"
SIGRTMINPLUS3 Signal = "SIGRTMIN+3"
SIGRTMINPLUS4 Signal = "SIGRTMIN+4"
SIGRTMINPLUS5 Signal = "SIGRTMIN+5"
SIGRTMINPLUS6 Signal = "SIGRTMIN+6"
SIGRTMINPLUS7 Signal = "SIGRTMIN+7"
SIGRTMINPLUS8 Signal = "SIGRTMIN+8"
SIGRTMINPLUS9 Signal = "SIGRTMIN+9"
SIGRTMINPLUS10 Signal = "SIGRTMIN+10"
SIGRTMINPLUS11 Signal = "SIGRTMIN+11"
SIGRTMINPLUS12 Signal = "SIGRTMIN+12"
SIGRTMINPLUS13 Signal = "SIGRTMIN+13"
SIGRTMINPLUS14 Signal = "SIGRTMIN+14"
SIGRTMINPLUS15 Signal = "SIGRTMIN+15"
SIGRTMAXMINUS14 Signal = "SIGRTMAX-14"
SIGRTMAXMINUS13 Signal = "SIGRTMAX-13"
SIGRTMAXMINUS12 Signal = "SIGRTMAX-12"
SIGRTMAXMINUS11 Signal = "SIGRTMAX-11"
SIGRTMAXMINUS10 Signal = "SIGRTMAX-10"
SIGRTMAXMINUS9 Signal = "SIGRTMAX-9"
SIGRTMAXMINUS8 Signal = "SIGRTMAX-8"
SIGRTMAXMINUS7 Signal = "SIGRTMAX-7"
SIGRTMAXMINUS6 Signal = "SIGRTMAX-6"
SIGRTMAXMINUS5 Signal = "SIGRTMAX-5"
SIGRTMAXMINUS4 Signal = "SIGRTMAX-4"
SIGRTMAXMINUS3 Signal = "SIGRTMAX-3"
SIGRTMAXMINUS2 Signal = "SIGRTMAX-2"
SIGRTMAXMINUS1 Signal = "SIGRTMAX-1"
SIGRTMAX Signal = "SIGRTMAX"
)
// Lifecycle describes actions that the management system should take in response to container lifecycle
// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks
// until the action is complete, unless the container process fails, in which case the handler is aborted.
@ -3001,6 +3073,11 @@ type Lifecycle struct {
// More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
// +optional
PreStop *LifecycleHandler `json:"preStop,omitempty" protobuf:"bytes,2,opt,name=preStop"`
// StopSignal defines which signal will be sent to a container when it is being stopped.
// If not specified, the default is defined by the container runtime in use.
// StopSignal can only be set for Pods with a non-empty .spec.os.name
// +optional
StopSignal *Signal `json:"stopSignal,omitempty" protobuf:"bytes,3,opt,name=stopSignal"`
}
type ConditionStatus string
@ -3154,6 +3231,10 @@ type ContainerStatus struct {
// +listType=map
// +listMapKey=name
AllocatedResourcesStatus []ResourceStatus `json:"allocatedResourcesStatus,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,14,rep,name=allocatedResourcesStatus"`
// StopSignal reports the effective stop signal for this container
// +featureGate=ContainerStopSignals
// +optional
StopSignal *Signal `json:"stopSignal,omitempty" protobuf:"bytes,15,opt,name=stopSignal"`
}
// ResourceStatus represents the status of a single resource allocated to a Pod.

View File

@ -241,6 +241,12 @@
lockToDefault: false
preRelease: Beta
version: "1.30"
- name: ContainerStopSignals
versionedSpecs:
- default: false
lockToDefault: false
preRelease: Alpha
version: "1.33"
- name: ContextualLogging
versionedSpecs:
- default: false