Merge pull request #104693 from ravisantoshgudimetla/add-podOS-field

Add pod os field
This commit is contained in:
Kubernetes Prow Robot 2021-10-28 21:38:50 -07:00 committed by GitHub
commit bb24c265ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
78 changed files with 3450 additions and 1824 deletions

View File

@ -7685,6 +7685,19 @@
} }
] ]
}, },
"io.k8s.api.core.v1.PodOS": {
"description": "PodOS defines the OS parameters of a pod.",
"properties": {
"name": {
"description": "Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"io.k8s.api.core.v1.PodReadinessGate": { "io.k8s.api.core.v1.PodReadinessGate": {
"description": "PodReadinessGate contains the reference to a pod condition", "description": "PodReadinessGate contains the reference to a pod condition",
"properties": { "properties": {
@ -7702,16 +7715,16 @@
"description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.",
"properties": { "properties": {
"fsGroup": { "fsGroup": {
"description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.",
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
"fsGroupChangePolicy": { "fsGroupChangePolicy": {
"description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.", "description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.",
"type": "string" "type": "string"
}, },
"runAsGroup": { "runAsGroup": {
"description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
@ -7720,20 +7733,20 @@
"type": "boolean" "type": "boolean"
}, },
"runAsUser": { "runAsUser": {
"description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
"seLinuxOptions": { "seLinuxOptions": {
"$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions",
"description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container." "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows."
}, },
"seccompProfile": { "seccompProfile": {
"$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile",
"description": "The seccomp options to use by the containers in this pod." "description": "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows."
}, },
"supplementalGroups": { "supplementalGroups": {
"description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.",
"items": { "items": {
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
@ -7741,7 +7754,7 @@
"type": "array" "type": "array"
}, },
"sysctls": { "sysctls": {
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.", "description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.",
"items": { "items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl"
}, },
@ -7749,7 +7762,7 @@
}, },
"windowsOptions": { "windowsOptions": {
"$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions",
"description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." "description": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux."
} }
}, },
"type": "object" "type": "object"
@ -7855,6 +7868,10 @@
"type": "object", "type": "object",
"x-kubernetes-map-type": "atomic" "x-kubernetes-map-type": "atomic"
}, },
"os": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodOS",
"description": "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature"
},
"overhead": { "overhead": {
"additionalProperties": { "additionalProperties": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity"
@ -9062,27 +9079,27 @@
"description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.",
"properties": { "properties": {
"allowPrivilegeEscalation": { "allowPrivilegeEscalation": {
"description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN", "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.",
"type": "boolean" "type": "boolean"
}, },
"capabilities": { "capabilities": {
"$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities",
"description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime." "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows."
}, },
"privileged": { "privileged": {
"description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.",
"type": "boolean" "type": "boolean"
}, },
"procMount": { "procMount": {
"description": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.", "description": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.",
"type": "string" "type": "string"
}, },
"readOnlyRootFilesystem": { "readOnlyRootFilesystem": {
"description": "Whether this container has a read-only root filesystem. Default is false.", "description": "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.",
"type": "boolean" "type": "boolean"
}, },
"runAsGroup": { "runAsGroup": {
"description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
@ -9091,21 +9108,21 @@
"type": "boolean" "type": "boolean"
}, },
"runAsUser": { "runAsUser": {
"description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
"format": "int64", "format": "int64",
"type": "integer" "type": "integer"
}, },
"seLinuxOptions": { "seLinuxOptions": {
"$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions", "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions",
"description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows."
}, },
"seccompProfile": { "seccompProfile": {
"$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile", "$ref": "#/definitions/io.k8s.api.core.v1.SeccompProfile",
"description": "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options." "description": "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows."
}, },
"windowsOptions": { "windowsOptions": {
"$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions",
"description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence." "description": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux."
} }
}, },
"type": "object" "type": "object"

View File

@ -418,6 +418,8 @@ func GetValidationOptionsFromPodSpecAndMeta(podSpec, oldPodSpec *api.PodSpec, po
AllowWindowsHostProcessField: utilfeature.DefaultFeatureGate.Enabled(features.WindowsHostProcessContainers), AllowWindowsHostProcessField: utilfeature.DefaultFeatureGate.Enabled(features.WindowsHostProcessContainers),
// Allow pod spec with expanded DNS configuration // Allow pod spec with expanded DNS configuration
AllowExpandedDNSConfig: utilfeature.DefaultFeatureGate.Enabled(features.ExpandedDNSConfig) || haveSameExpandedDNSConfig(podSpec, oldPodSpec), AllowExpandedDNSConfig: utilfeature.DefaultFeatureGate.Enabled(features.ExpandedDNSConfig) || haveSameExpandedDNSConfig(podSpec, oldPodSpec),
// Allow pod spec to use OS field
AllowOSField: utilfeature.DefaultFeatureGate.Enabled(features.IdentifyPodOS),
} }
if oldPodSpec != nil { if oldPodSpec != nil {
@ -433,6 +435,9 @@ func GetValidationOptionsFromPodSpecAndMeta(podSpec, oldPodSpec *api.PodSpec, po
// if old spec has Windows Host Process fields set, we must allow it // if old spec has Windows Host Process fields set, we must allow it
opts.AllowWindowsHostProcessField = opts.AllowWindowsHostProcessField || setsWindowsHostProcess(oldPodSpec) opts.AllowWindowsHostProcessField = opts.AllowWindowsHostProcessField || setsWindowsHostProcess(oldPodSpec)
// if old spec has OS field set, we must allow it
opts.AllowOSField = opts.AllowOSField || oldPodSpec.OS != nil
// if old spec used non-integer multiple of huge page unit size, we must allow it // if old spec used non-integer multiple of huge page unit size, we must allow it
opts.AllowIndivisibleHugePagesValues = usesIndivisibleHugePagesValues(oldPodSpec) opts.AllowIndivisibleHugePagesValues = usesIndivisibleHugePagesValues(oldPodSpec)
} }
@ -563,10 +568,24 @@ func dropDisabledFields(
// does not specify any values for these fields. // does not specify any values for these fields.
podSpec.PreemptionPolicy = nil podSpec.PreemptionPolicy = nil
} }
if !utilfeature.DefaultFeatureGate.Enabled(features.IdentifyPodOS) && !podOSInUse(oldPodSpec) {
podSpec.OS = nil
}
dropDisabledPodAffinityTermFields(podSpec, oldPodSpec) dropDisabledPodAffinityTermFields(podSpec, oldPodSpec)
} }
// podOSInUse returns true if the pod spec is non-nil and has OS field set
func podOSInUse(podSpec *api.PodSpec) bool {
if podSpec == nil {
return false
}
if podSpec.OS != nil {
return true
}
return false
}
// dropDisabledProcMountField removes disabled fields from PodSpec related // dropDisabledProcMountField removes disabled fields from PodSpec related
// to ProcMount only if it is not already used by the old spec // to ProcMount only if it is not already used by the old spec
func dropDisabledProcMountField(podSpec, oldPodSpec *api.PodSpec) { func dropDisabledProcMountField(podSpec, oldPodSpec *api.PodSpec) {

View File

@ -1708,3 +1708,85 @@ func TestDropDisabledPodAffinityTermFields(t *testing.T) {
}) })
} }
} }
func TestDropOSField(t *testing.T) {
podWithOSField := func() *api.Pod {
osField := api.PodOS{Name: "linux"}
return &api.Pod{
Spec: api.PodSpec{
OS: &osField,
},
}
}
podWithoutOSField := func() *api.Pod { return &api.Pod{} }
podInfo := []struct {
description string
hasPodOSField bool
pod func() *api.Pod
}{
{
description: "has PodOS field",
hasPodOSField: true,
pod: podWithOSField,
},
{
description: "does not have PodOS field",
hasPodOSField: false,
pod: podWithoutOSField,
},
{
description: "is nil",
hasPodOSField: false,
pod: func() *api.Pod { return nil },
},
}
for _, enabled := range []bool{true, false} {
for _, oldPodInfo := range podInfo {
for _, newPodInfo := range podInfo {
oldPodHasOsField, oldPod := oldPodInfo.hasPodOSField, oldPodInfo.pod()
newPodHasOSField, newPod := newPodInfo.hasPodOSField, newPodInfo.pod()
if newPod == nil {
continue
}
t.Run(fmt.Sprintf("feature enabled=%v, old pod %v, new pod %v", enabled, oldPodInfo.description, newPodInfo.description), func(t *testing.T) {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IdentifyPodOS, enabled)()
var oldPodSpec *api.PodSpec
if oldPod != nil {
oldPodSpec = &oldPod.Spec
}
dropDisabledFields(&newPod.Spec, nil, oldPodSpec, nil)
// old pod should never be changed
if !reflect.DeepEqual(oldPod, oldPodInfo.pod()) {
t.Errorf("old pod changed: %v", cmp.Diff(oldPod, oldPodInfo.pod()))
}
switch {
case enabled || oldPodHasOsField:
// new pod should not be changed if the feature is enabled, or if the old pod had subpaths
if !reflect.DeepEqual(newPod, newPodInfo.pod()) {
t.Errorf("new pod changed: %v", cmp.Diff(newPod, newPodInfo.pod()))
}
case newPodHasOSField:
// new pod should be changed
if reflect.DeepEqual(newPod, newPodInfo.pod()) {
t.Errorf("new pod was not changed")
}
// new pod should not have OSfield
if !reflect.DeepEqual(newPod, podWithoutOSField()) {
t.Errorf("new pod has OS field: %v", cmp.Diff(newPod, podWithoutOSField()))
}
default:
// new pod should not need to be changed
if !reflect.DeepEqual(newPod, newPodInfo.pod()) {
t.Errorf("new pod changed: %v", cmp.Diff(newPod, newPodInfo.pod()))
}
}
})
}
}
}
}

View File

@ -2884,6 +2884,54 @@ type PodSpec struct {
// All topologySpreadConstraints are ANDed. // All topologySpreadConstraints are ANDed.
// +optional // +optional
TopologySpreadConstraints []TopologySpreadConstraint TopologySpreadConstraints []TopologySpreadConstraint
// Specifies the OS of the containers in the pod.
// Some pod and container fields are restricted if this is set.
//
// If the OS field is set to linux, the following fields must be unset:
// - securityContext.windowsOptions
//
// If the OS field is set to windows, following fields must be unset:
// - spec.hostPID
// - spec.hostIPC
// - spec.securityContext.seLinuxOptions
// - spec.securityContext.seccompProfile
// - spec.securityContext.fsGroup
// - spec.securityContext.fsGroupChangePolicy
// - spec.securityContext.sysctls
// - spec.shareProcessNamespace
// - spec.securityContext.runAsUser
// - spec.securityContext.runAsGroup
// - spec.securityContext.supplementalGroups
// - spec.containers[*].securityContext.seLinuxOptions
// - spec.containers[*].securityContext.seccompProfile
// - spec.containers[*].securityContext.capabilities
// - spec.containers[*].securityContext.readOnlyRootFilesystem
// - spec.containers[*].securityContext.privileged
// - spec.containers[*].securityContext.allowPrivilegeEscalation
// - spec.containers[*].securityContext.procMount
// - spec.containers[*].securityContext.runAsUser
// - spec.containers[*].securityContext.runAsGroup
// +optional
// This is an alpha field and requires the IdentifyPodOS feature
OS *PodOS
}
// OSName is the set of OS'es that can be used in OS.
type OSName string
// These are valid values for OSName
const (
Linux OSName = "linux"
Windows OSName = "windows"
)
// PodOS defines the OS parameters of a pod.
type PodOS struct {
// Name is the name of the operating system. The currently supported values are linux and windows.
// Additional value may be defined in future and can be one of:
// https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
// Clients should expect to handle additional values and treat unrecognized values in this field as os: null
Name OSName
} }
// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the // HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
@ -2929,11 +2977,13 @@ type PodSecurityContext struct {
HostNetwork bool HostNetwork bool
// Use the host's pid namespace. // Use the host's pid namespace.
// Optional: Default to false. // Optional: Default to false.
// Note that this field cannot be set when spec.os.name is windows.
// +k8s:conversion-gen=false // +k8s:conversion-gen=false
// +optional // +optional
HostPID bool HostPID bool
// Use the host's ipc namespace. // Use the host's ipc namespace.
// Optional: Default to false. // Optional: Default to false.
// Note that this field cannot be set when spec.os.name is windows.
// +k8s:conversion-gen=false // +k8s:conversion-gen=false
// +optional // +optional
HostIPC bool HostIPC bool
@ -2941,6 +2991,7 @@ type PodSecurityContext struct {
// When this is set containers will be able to view and signal processes from other containers // When this is set containers will be able to view and signal processes from other containers
// in the same pod, and the first process in each container will not be assigned PID 1. // in the same pod, and the first process in each container will not be assigned PID 1.
// HostPID and ShareProcessNamespace cannot both be set. // HostPID and ShareProcessNamespace cannot both be set.
// Note that this field cannot be set when spec.os.name is windows.
// Optional: Default to false. // Optional: Default to false.
// +k8s:conversion-gen=false // +k8s:conversion-gen=false
// +optional // +optional
@ -2950,11 +3001,13 @@ type PodSecurityContext struct {
// container. May also be set in SecurityContext. If set in // container. May also be set in SecurityContext. If set in
// both SecurityContext and PodSecurityContext, the value specified in SecurityContext // both SecurityContext and PodSecurityContext, the value specified in SecurityContext
// takes precedence for that container. // takes precedence for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SELinuxOptions *SELinuxOptions SELinuxOptions *SELinuxOptions
// The Windows specific settings applied to all containers. // The Windows specific settings applied to all containers.
// If unspecified, the options within a container's SecurityContext will be used. // If unspecified, the options within a container's SecurityContext will be used.
// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is linux.
// +optional // +optional
WindowsOptions *WindowsSecurityContextOptions WindowsOptions *WindowsSecurityContextOptions
// The UID to run the entrypoint of the container process. // The UID to run the entrypoint of the container process.
@ -2962,6 +3015,7 @@ type PodSecurityContext struct {
// May also be set in SecurityContext. If set in both SecurityContext and // May also be set in SecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence // PodSecurityContext, the value specified in SecurityContext takes precedence
// for that container. // for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsUser *int64 RunAsUser *int64
// The GID to run the entrypoint of the container process. // The GID to run the entrypoint of the container process.
@ -2969,6 +3023,7 @@ type PodSecurityContext struct {
// May also be set in SecurityContext. If set in both SecurityContext and // May also be set in SecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence // PodSecurityContext, the value specified in SecurityContext takes precedence
// for that container. // for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsGroup *int64 RunAsGroup *int64
// Indicates that the container must run as a non-root user. // Indicates that the container must run as a non-root user.
@ -2983,6 +3038,7 @@ type PodSecurityContext struct {
// A list of groups applied to the first process run in each container, in addition // A list of groups applied to the first process run in each container, in addition
// to the container's primary GID. If unspecified, no groups will be added to // to the container's primary GID. If unspecified, no groups will be added to
// any container. // any container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SupplementalGroups []int64 SupplementalGroups []int64
// A special supplemental group that applies to all containers in a pod. // A special supplemental group that applies to all containers in a pod.
@ -2994,6 +3050,7 @@ type PodSecurityContext struct {
// 3. The permission bits are OR'd with rw-rw---- // 3. The permission bits are OR'd with rw-rw----
// //
// If unset, the Kubelet will not modify the ownership and permissions of any volume. // If unset, the Kubelet will not modify the ownership and permissions of any volume.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
FSGroup *int64 FSGroup *int64
// fsGroupChangePolicy defines behavior of changing ownership and permission of the volume // fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
@ -3002,13 +3059,16 @@ type PodSecurityContext struct {
// It will have no effect on ephemeral volume types such as: secret, configmaps // It will have no effect on ephemeral volume types such as: secret, configmaps
// and emptydir. // and emptydir.
// Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. // Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
FSGroupChangePolicy *PodFSGroupChangePolicy FSGroupChangePolicy *PodFSGroupChangePolicy
// Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported // Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
// sysctls (by the container runtime) might fail to launch. // sysctls (by the container runtime) might fail to launch.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
Sysctls []Sysctl Sysctls []Sysctl
// The seccomp options to use by the containers in this pod. // The seccomp options to use by the containers in this pod.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SeccompProfile *SeccompProfile SeccompProfile *SeccompProfile
} }
@ -5285,34 +5345,40 @@ type ComponentStatusList struct {
type SecurityContext struct { type SecurityContext struct {
// The capabilities to add/drop when running containers. // The capabilities to add/drop when running containers.
// Defaults to the default set of capabilities granted by the container runtime. // Defaults to the default set of capabilities granted by the container runtime.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
Capabilities *Capabilities Capabilities *Capabilities
// Run container in privileged mode. // Run container in privileged mode.
// Processes in privileged containers are essentially equivalent to root on the host. // Processes in privileged containers are essentially equivalent to root on the host.
// Defaults to false. // Defaults to false.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
Privileged *bool Privileged *bool
// The SELinux context to be applied to the container. // The SELinux context to be applied to the container.
// If unspecified, the container runtime will allocate a random SELinux context for each // If unspecified, the container runtime will allocate a random SELinux context for each
// container. May also be set in PodSecurityContext. If set in both SecurityContext and // container. May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SELinuxOptions *SELinuxOptions SELinuxOptions *SELinuxOptions
// The Windows specific settings applied to all containers. // The Windows specific settings applied to all containers.
// If unspecified, the options from the PodSecurityContext will be used. // If unspecified, the options from the PodSecurityContext will be used.
// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is linux.
// +optional // +optional
WindowsOptions *WindowsSecurityContextOptions WindowsOptions *WindowsSecurityContextOptions
// The UID to run the entrypoint of the container process. // The UID to run the entrypoint of the container process.
// Defaults to user specified in image metadata if unspecified. // Defaults to user specified in image metadata if unspecified.
// May also be set in PodSecurityContext. If set in both SecurityContext and // May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsUser *int64 RunAsUser *int64
// The GID to run the entrypoint of the container process. // The GID to run the entrypoint of the container process.
// Uses runtime default if unset. // Uses runtime default if unset.
// May also be set in PodSecurityContext. If set in both SecurityContext and // May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsGroup *int64 RunAsGroup *int64
// Indicates that the container must run as a non-root user. // Indicates that the container must run as a non-root user.
@ -5325,21 +5391,25 @@ type SecurityContext struct {
RunAsNonRoot *bool RunAsNonRoot *bool
// The read-only root filesystem allows you to restrict the locations that an application can write // The read-only root filesystem allows you to restrict the locations that an application can write
// files to, ensuring the persistent data can only be written to mounts. // files to, ensuring the persistent data can only be written to mounts.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
ReadOnlyRootFilesystem *bool ReadOnlyRootFilesystem *bool
// AllowPrivilegeEscalation controls whether a process can gain more // AllowPrivilegeEscalation controls whether a process can gain more
// privileges than its parent process. This bool directly controls if // privileges than its parent process. This bool directly controls if
// the no_new_privs flag will be set on the container process. // the no_new_privs flag will be set on the container process.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
AllowPrivilegeEscalation *bool AllowPrivilegeEscalation *bool
// ProcMount denotes the type of proc mount to use for the containers. // ProcMount denotes the type of proc mount to use for the containers.
// The default is DefaultProcMount which uses the container runtime defaults for // The default is DefaultProcMount which uses the container runtime defaults for
// readonly paths and masked paths. // readonly paths and masked paths.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
ProcMount *ProcMountType ProcMount *ProcMountType
// The seccomp options to use by this container. If seccomp options are // The seccomp options to use by this container. If seccomp options are
// provided at both the pod & container level, the container options // provided at both the pod & container level, the container options
// override the pod options. // override the pod options.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SeccompProfile *SeccompProfile SeccompProfile *SeccompProfile
} }

View File

@ -1302,6 +1302,16 @@ func RegisterConversions(s *runtime.Scheme) error {
}); err != nil { }); err != nil {
return err return err
} }
if err := s.AddGeneratedConversionFunc((*v1.PodOS)(nil), (*core.PodOS)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1_PodOS_To_core_PodOS(a.(*v1.PodOS), b.(*core.PodOS), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*core.PodOS)(nil), (*v1.PodOS)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_core_PodOS_To_v1_PodOS(a.(*core.PodOS), b.(*v1.PodOS), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*v1.PodPortForwardOptions)(nil), (*core.PodPortForwardOptions)(nil), func(a, b interface{}, scope conversion.Scope) error { if err := s.AddGeneratedConversionFunc((*v1.PodPortForwardOptions)(nil), (*core.PodPortForwardOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(a.(*v1.PodPortForwardOptions), b.(*core.PodPortForwardOptions), scope) return Convert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(a.(*v1.PodPortForwardOptions), b.(*core.PodPortForwardOptions), scope)
}); err != nil { }); err != nil {
@ -5895,6 +5905,26 @@ func Convert_url_Values_To_v1_PodLogOptions(in *url.Values, out *v1.PodLogOption
return autoConvert_url_Values_To_v1_PodLogOptions(in, out, s) return autoConvert_url_Values_To_v1_PodLogOptions(in, out, s)
} }
func autoConvert_v1_PodOS_To_core_PodOS(in *v1.PodOS, out *core.PodOS, s conversion.Scope) error {
out.Name = core.OSName(in.Name)
return nil
}
// Convert_v1_PodOS_To_core_PodOS is an autogenerated conversion function.
func Convert_v1_PodOS_To_core_PodOS(in *v1.PodOS, out *core.PodOS, s conversion.Scope) error {
return autoConvert_v1_PodOS_To_core_PodOS(in, out, s)
}
func autoConvert_core_PodOS_To_v1_PodOS(in *core.PodOS, out *v1.PodOS, s conversion.Scope) error {
out.Name = v1.OSName(in.Name)
return nil
}
// Convert_core_PodOS_To_v1_PodOS is an autogenerated conversion function.
func Convert_core_PodOS_To_v1_PodOS(in *core.PodOS, out *v1.PodOS, s conversion.Scope) error {
return autoConvert_core_PodOS_To_v1_PodOS(in, out, s)
}
func autoConvert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *core.PodPortForwardOptions, s conversion.Scope) error { func autoConvert_v1_PodPortForwardOptions_To_core_PodPortForwardOptions(in *v1.PodPortForwardOptions, out *core.PodPortForwardOptions, s conversion.Scope) error {
out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports)) out.Ports = *(*[]int32)(unsafe.Pointer(&in.Ports))
return nil return nil
@ -6107,6 +6137,7 @@ func autoConvert_v1_PodSpec_To_core_PodSpec(in *v1.PodSpec, out *core.PodSpec, s
out.Overhead = *(*core.ResourceList)(unsafe.Pointer(&in.Overhead)) out.Overhead = *(*core.ResourceList)(unsafe.Pointer(&in.Overhead))
out.TopologySpreadConstraints = *(*[]core.TopologySpreadConstraint)(unsafe.Pointer(&in.TopologySpreadConstraints)) out.TopologySpreadConstraints = *(*[]core.TopologySpreadConstraint)(unsafe.Pointer(&in.TopologySpreadConstraints))
out.SetHostnameAsFQDN = (*bool)(unsafe.Pointer(in.SetHostnameAsFQDN)) out.SetHostnameAsFQDN = (*bool)(unsafe.Pointer(in.SetHostnameAsFQDN))
out.OS = (*core.PodOS)(unsafe.Pointer(in.OS))
return nil return nil
} }
@ -6159,6 +6190,7 @@ func autoConvert_core_PodSpec_To_v1_PodSpec(in *core.PodSpec, out *v1.PodSpec, s
out.Overhead = *(*v1.ResourceList)(unsafe.Pointer(&in.Overhead)) out.Overhead = *(*v1.ResourceList)(unsafe.Pointer(&in.Overhead))
out.EnableServiceLinks = (*bool)(unsafe.Pointer(in.EnableServiceLinks)) out.EnableServiceLinks = (*bool)(unsafe.Pointer(in.EnableServiceLinks))
out.TopologySpreadConstraints = *(*[]v1.TopologySpreadConstraint)(unsafe.Pointer(&in.TopologySpreadConstraints)) out.TopologySpreadConstraints = *(*[]v1.TopologySpreadConstraint)(unsafe.Pointer(&in.TopologySpreadConstraints))
out.OS = (*v1.PodOS)(unsafe.Pointer(in.OS))
return nil return nil
} }

View File

@ -98,6 +98,12 @@ var allowedEphemeralContainerFields = map[string]bool{
"TTY": true, "TTY": true,
} }
// validOS stores the set of valid OSes within pod spec.
// The valid values currently are linux, windows.
// In future, they can be expanded to values from
// https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
var validOS = sets.NewString(string(core.Linux), string(core.Windows))
// ValidateHasLabel requires that metav1.ObjectMeta has a Label with key and expectedValue // ValidateHasLabel requires that metav1.ObjectMeta has a Label with key and expectedValue
func ValidateHasLabel(meta metav1.ObjectMeta, fldPath *field.Path, key, expectedValue string) field.ErrorList { func ValidateHasLabel(meta metav1.ObjectMeta, fldPath *field.Path, key, expectedValue string) field.ErrorList {
allErrs := field.ErrorList{} allErrs := field.ErrorList{}
@ -2923,7 +2929,7 @@ func validateFieldAllowList(value interface{}, allowedFields map[string]bool, er
return allErrs return allErrs
} }
func validateInitContainers(containers, otherContainers []core.Container, deviceVolumes map[string]core.VolumeSource, fldPath *field.Path, opts PodValidationOptions) field.ErrorList { func validateInitContainers(containers []core.Container, otherContainers []core.Container, deviceVolumes map[string]core.VolumeSource, fldPath *field.Path, opts PodValidationOptions) field.ErrorList {
var allErrs field.ErrorList var allErrs field.ErrorList
if len(containers) > 0 { if len(containers) > 0 {
allErrs = append(allErrs, validateContainers(containers, true, deviceVolumes, fldPath, opts)...) allErrs = append(allErrs, validateContainers(containers, true, deviceVolumes, fldPath, opts)...)
@ -3347,6 +3353,8 @@ type PodValidationOptions struct {
AllowWindowsHostProcessField bool AllowWindowsHostProcessField bool
// Allow more DNSSearchPaths and longer DNSSearchListChars // Allow more DNSSearchPaths and longer DNSSearchListChars
AllowExpandedDNSConfig bool AllowExpandedDNSConfig bool
// Allow OSField to be set in the pod spec
AllowOSField bool
} }
// validatePodMetadataAndSpec tests if required fields in the pod.metadata and pod.spec are set, // validatePodMetadataAndSpec tests if required fields in the pod.metadata and pod.spec are set,
@ -3503,6 +3511,115 @@ func ValidatePodSpec(spec *core.PodSpec, podMeta *metav1.ObjectMeta, fldPath *fi
allErrs = append(allErrs, validateOverhead(spec.Overhead, fldPath.Child("overhead"), opts)...) allErrs = append(allErrs, validateOverhead(spec.Overhead, fldPath.Child("overhead"), opts)...)
} }
if spec.OS != nil {
osErrs := validateOS(spec, fldPath.Child("os"), opts)
switch {
case len(osErrs) > 0:
allErrs = append(allErrs, osErrs...)
case spec.OS.Name == core.Linux:
allErrs = append(allErrs, validateLinux(spec, fldPath)...)
case spec.OS.Name == core.Windows:
allErrs = append(allErrs, validateWindows(spec, fldPath)...)
}
}
return allErrs
}
func validateLinux(spec *core.PodSpec, fldPath *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
securityContext := spec.SecurityContext
if securityContext != nil && securityContext.WindowsOptions != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("windowsOptions"), "windows options cannot be set for a linux pod"))
}
podshelper.VisitContainersWithPath(spec, fldPath, func(c *core.Container, cFldPath *field.Path) bool {
sc := c.SecurityContext
if sc != nil && sc.WindowsOptions != nil {
fldPath := cFldPath.Child("securityContext")
allErrs = append(allErrs, field.Forbidden(fldPath.Child("windowsOptions"), "windows options cannot be set for a linux pod"))
}
return true
})
return allErrs
}
func validateWindows(spec *core.PodSpec, fldPath *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
securityContext := spec.SecurityContext
// validate Pod SecurityContext
if securityContext != nil {
if securityContext.SELinuxOptions != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("seLinuxOptions"), "cannot be set for a windows pod"))
}
if securityContext.HostPID {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("hostPID"), "cannot be set for a windows pod"))
}
if securityContext.HostIPC {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("hostIPC"), "cannot be set for a windows pod"))
}
if securityContext.SeccompProfile != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("seccompProfile"), "cannot be set for a windows pod"))
}
if securityContext.FSGroup != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("fsGroup"), "cannot be set for a windows pod"))
}
if securityContext.FSGroupChangePolicy != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("fsGroupChangePolicy"), "cannot be set for a windows pod"))
}
if len(securityContext.Sysctls) > 0 {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("sysctls"), "cannot be set for a windows pod"))
}
if securityContext.ShareProcessNamespace != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("shareProcessNamespace"), "cannot be set for a windows pod"))
}
if securityContext.RunAsUser != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("runAsUser"), "cannot be set for a windows pod"))
}
if securityContext.RunAsGroup != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("runAsGroup"), "cannot be set for a windows pod"))
}
if securityContext.SupplementalGroups != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("securityContext").Child("supplementalGroups"), "cannot be set for a windows pod"))
}
}
podshelper.VisitContainersWithPath(spec, fldPath, func(c *core.Container, cFldPath *field.Path) bool {
// validate container security context
sc := c.SecurityContext
// OS based podSecurityContext validation
// There is some naming overlap between Windows and Linux Security Contexts but all the Windows Specific options
// are set via securityContext.WindowsOptions which we validate below
// TODO: Think if we need to relax this restriction or some of the restrictions
if sc != nil {
fldPath := cFldPath.Child("securityContext")
if sc.SELinuxOptions != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("seLinuxOptions"), "cannot be set for a windows pod"))
}
if sc.SeccompProfile != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("seccompProfile"), "cannot be set for a windows pod"))
}
if sc.Capabilities != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("capabilities"), "cannot be set for a windows pod"))
}
if sc.ReadOnlyRootFilesystem != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("readOnlyRootFilesystem"), "cannot be set for a windows pod"))
}
if sc.Privileged != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("privileged"), "cannot be set for a windows pod"))
}
if sc.AllowPrivilegeEscalation != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("allowPrivilegeEscalation"), "cannot be set for a windows pod"))
}
if sc.ProcMount != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("procMount"), "cannot be set for a windows pod"))
}
if sc.RunAsUser != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("runAsUser"), "cannot be set for a windows pod"))
}
if sc.RunAsGroup != nil {
allErrs = append(allErrs, field.Forbidden(fldPath.Child("runAsGroup"), "cannot be set for a windows pod"))
}
}
return true
})
return allErrs return allErrs
} }
@ -6174,6 +6291,26 @@ func validateWindowsHostProcessPod(podSpec *core.PodSpec, fieldPath *field.Path,
return allErrs return allErrs
} }
// validateOS validates the OS field within pod spec
func validateOS(podSpec *core.PodSpec, fldPath *field.Path, opts PodValidationOptions) field.ErrorList {
allErrs := field.ErrorList{}
os := podSpec.OS
if os == nil {
return allErrs
}
if !opts.AllowOSField {
return append(allErrs, field.Forbidden(fldPath, "cannot be set when IdentifyPodOS feature is not enabled"))
}
if len(os.Name) == 0 {
return append(allErrs, field.Required(fldPath.Child("name"), "cannot be empty"))
}
osName := string(os.Name)
if !validOS.Has(osName) {
allErrs = append(allErrs, field.NotSupported(fldPath, osName, validOS.List()))
}
return allErrs
}
func ValidatePodLogOptions(opts *core.PodLogOptions) field.ErrorList { func ValidatePodLogOptions(opts *core.PodLogOptions) field.ErrorList {
allErrs := field.ErrorList{} allErrs := field.ErrorList{}
if opts.TailLines != nil && *opts.TailLines < 0 { if opts.TailLines != nil && *opts.TailLines < 0 {

File diff suppressed because it is too large Load Diff

View File

@ -3603,6 +3603,22 @@ func (in *PodLogOptions) DeepCopyObject() runtime.Object {
return nil return nil
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodOS) DeepCopyInto(out *PodOS) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodOS.
func (in *PodOS) DeepCopy() *PodOS {
if in == nil {
return nil
}
out := new(PodOS)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodPortForwardOptions) DeepCopyInto(out *PodPortForwardOptions) { func (in *PodPortForwardOptions) DeepCopyInto(out *PodPortForwardOptions) {
*out = *in *out = *in
@ -3897,6 +3913,11 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) {
(*in)[i].DeepCopyInto(&(*out)[i]) (*in)[i].DeepCopyInto(&(*out)[i])
} }
} }
if in.OS != nil {
in, out := &in.OS, &out.OS
*out = new(PodOS)
**out = **in
}
return return
} }

View File

@ -690,6 +690,13 @@ const (
// StatefulSetMinReadySeconds allows minReadySeconds to be respected by StatefulSet controller // StatefulSetMinReadySeconds allows minReadySeconds to be respected by StatefulSet controller
StatefulSetMinReadySeconds featuregate.Feature = "StatefulSetMinReadySeconds" StatefulSetMinReadySeconds featuregate.Feature = "StatefulSetMinReadySeconds"
// owner: @ravig
// alpha: v1.23
//
// IdentifyPodOS allows user to specify OS on which they'd like the Pod run. The user should still set the nodeSelector
// with appropriate `kubernetes.io/os` label for scheduler to identify appropriate node for the pod to run.
IdentifyPodOS featuregate.Feature = "IdentifyPodOS"
// owner: @gjkim42 // owner: @gjkim42
// kep: http://kep.k8s.io/2595 // kep: http://kep.k8s.io/2595
// alpha: v1.22 // alpha: v1.22
@ -899,6 +906,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
CPUManagerPolicyAlphaOptions: {Default: false, PreRelease: featuregate.Alpha}, CPUManagerPolicyAlphaOptions: {Default: false, PreRelease: featuregate.Alpha},
CPUManagerPolicyBetaOptions: {Default: true, PreRelease: featuregate.Beta}, CPUManagerPolicyBetaOptions: {Default: true, PreRelease: featuregate.Beta},
JobMutableNodeSchedulingDirectives: {Default: true, PreRelease: featuregate.Beta}, JobMutableNodeSchedulingDirectives: {Default: true, PreRelease: featuregate.Beta},
IdentifyPodOS: {Default: false, PreRelease: featuregate.Alpha},
// inherited features from generic apiserver, relisted here to get a conflict if it is changed // inherited features from generic apiserver, relisted here to get a conflict if it is changed
// unintentionally on either side: // unintentionally on either side:

File diff suppressed because it is too large Load Diff

View File

@ -3276,6 +3276,15 @@ message PodLogOptions {
optional bool insecureSkipTLSVerifyBackend = 9; optional bool insecureSkipTLSVerifyBackend = 9;
} }
// PodOS defines the OS parameters of a pod.
message PodOS {
// Name is the name of the operating system. The currently supported values are linux and windows.
// Additional value may be defined in future and can be one of:
// https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
// Clients should expect to handle additional values and treat unrecognized values in this field as os: null
optional string name = 1;
}
// PodPortForwardOptions is the query options to a Pod's port forward call // PodPortForwardOptions is the query options to a Pod's port forward call
// when using WebSockets. // when using WebSockets.
// The `port` query parameter must specify the port or // The `port` query parameter must specify the port or
@ -3311,12 +3320,14 @@ message PodSecurityContext {
// container. May also be set in SecurityContext. If set in // container. May also be set in SecurityContext. If set in
// both SecurityContext and PodSecurityContext, the value specified in SecurityContext // both SecurityContext and PodSecurityContext, the value specified in SecurityContext
// takes precedence for that container. // takes precedence for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional SELinuxOptions seLinuxOptions = 1; optional SELinuxOptions seLinuxOptions = 1;
// The Windows specific settings applied to all containers. // The Windows specific settings applied to all containers.
// If unspecified, the options within a container's SecurityContext will be used. // If unspecified, the options within a container's SecurityContext will be used.
// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is linux.
// +optional // +optional
optional WindowsSecurityContextOptions windowsOptions = 8; optional WindowsSecurityContextOptions windowsOptions = 8;
@ -3325,6 +3336,7 @@ message PodSecurityContext {
// May also be set in SecurityContext. If set in both SecurityContext and // May also be set in SecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence // PodSecurityContext, the value specified in SecurityContext takes precedence
// for that container. // for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional int64 runAsUser = 2; optional int64 runAsUser = 2;
@ -3333,6 +3345,7 @@ message PodSecurityContext {
// May also be set in SecurityContext. If set in both SecurityContext and // May also be set in SecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence // PodSecurityContext, the value specified in SecurityContext takes precedence
// for that container. // for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional int64 runAsGroup = 6; optional int64 runAsGroup = 6;
@ -3348,6 +3361,7 @@ message PodSecurityContext {
// A list of groups applied to the first process run in each container, in addition // A list of groups applied to the first process run in each container, in addition
// to the container's primary GID. If unspecified, no groups will be added to // to the container's primary GID. If unspecified, no groups will be added to
// any container. // any container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
repeated int64 supplementalGroups = 4; repeated int64 supplementalGroups = 4;
@ -3360,11 +3374,13 @@ message PodSecurityContext {
// 3. The permission bits are OR'd with rw-rw---- // 3. The permission bits are OR'd with rw-rw----
// //
// If unset, the Kubelet will not modify the ownership and permissions of any volume. // If unset, the Kubelet will not modify the ownership and permissions of any volume.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional int64 fsGroup = 5; optional int64 fsGroup = 5;
// Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported // Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
// sysctls (by the container runtime) might fail to launch. // sysctls (by the container runtime) might fail to launch.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
repeated Sysctl sysctls = 7; repeated Sysctl sysctls = 7;
@ -3374,10 +3390,12 @@ message PodSecurityContext {
// It will have no effect on ephemeral volume types such as: secret, configmaps // It will have no effect on ephemeral volume types such as: secret, configmaps
// and emptydir. // and emptydir.
// Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. // Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional string fsGroupChangePolicy = 9; optional string fsGroupChangePolicy = 9;
// The seccomp options to use by the containers in this pod. // The seccomp options to use by the containers in this pod.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional SeccompProfile seccompProfile = 10; optional SeccompProfile seccompProfile = 10;
} }
@ -3648,6 +3666,37 @@ message PodSpec {
// Default to false. // Default to false.
// +optional // +optional
optional bool setHostnameAsFQDN = 35; optional bool setHostnameAsFQDN = 35;
// Specifies the OS of the containers in the pod.
// Some pod and container fields are restricted if this is set.
//
// If the OS field is set to linux, the following fields must be unset:
// -securityContext.windowsOptions
//
// If the OS field is set to windows, following fields must be unset:
// - spec.hostPID
// - spec.hostIPC
// - spec.securityContext.seLinuxOptions
// - spec.securityContext.seccompProfile
// - spec.securityContext.fsGroup
// - spec.securityContext.fsGroupChangePolicy
// - spec.securityContext.sysctls
// - spec.shareProcessNamespace
// - spec.securityContext.runAsUser
// - spec.securityContext.runAsGroup
// - spec.securityContext.supplementalGroups
// - spec.containers[*].securityContext.seLinuxOptions
// - spec.containers[*].securityContext.seccompProfile
// - spec.containers[*].securityContext.capabilities
// - spec.containers[*].securityContext.readOnlyRootFilesystem
// - spec.containers[*].securityContext.privileged
// - spec.containers[*].securityContext.allowPrivilegeEscalation
// - spec.containers[*].securityContext.procMount
// - spec.containers[*].securityContext.runAsUser
// - spec.containers[*].securityContext.runAsGroup
// +optional
// This is an alpha field and requires the IdentifyPodOS feature
optional PodOS os = 36;
} }
// PodStatus represents information about the status of a pod. Status may trail the actual // PodStatus represents information about the status of a pod. Status may trail the actual
@ -4605,12 +4654,14 @@ message SecretVolumeSource {
message SecurityContext { message SecurityContext {
// The capabilities to add/drop when running containers. // The capabilities to add/drop when running containers.
// Defaults to the default set of capabilities granted by the container runtime. // Defaults to the default set of capabilities granted by the container runtime.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional Capabilities capabilities = 1; optional Capabilities capabilities = 1;
// Run container in privileged mode. // Run container in privileged mode.
// Processes in privileged containers are essentially equivalent to root on the host. // Processes in privileged containers are essentially equivalent to root on the host.
// Defaults to false. // Defaults to false.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional bool privileged = 2; optional bool privileged = 2;
@ -4618,12 +4669,14 @@ message SecurityContext {
// If unspecified, the container runtime will allocate a random SELinux context for each // If unspecified, the container runtime will allocate a random SELinux context for each
// container. May also be set in PodSecurityContext. If set in both SecurityContext and // container. May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional SELinuxOptions seLinuxOptions = 3; optional SELinuxOptions seLinuxOptions = 3;
// The Windows specific settings applied to all containers. // The Windows specific settings applied to all containers.
// If unspecified, the options from the PodSecurityContext will be used. // If unspecified, the options from the PodSecurityContext will be used.
// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is linux.
// +optional // +optional
optional WindowsSecurityContextOptions windowsOptions = 10; optional WindowsSecurityContextOptions windowsOptions = 10;
@ -4631,6 +4684,7 @@ message SecurityContext {
// Defaults to user specified in image metadata if unspecified. // Defaults to user specified in image metadata if unspecified.
// May also be set in PodSecurityContext. If set in both SecurityContext and // May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional int64 runAsUser = 4; optional int64 runAsUser = 4;
@ -4638,6 +4692,7 @@ message SecurityContext {
// Uses runtime default if unset. // Uses runtime default if unset.
// May also be set in PodSecurityContext. If set in both SecurityContext and // May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional int64 runAsGroup = 8; optional int64 runAsGroup = 8;
@ -4652,6 +4707,7 @@ message SecurityContext {
// Whether this container has a read-only root filesystem. // Whether this container has a read-only root filesystem.
// Default is false. // Default is false.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional bool readOnlyRootFilesystem = 6; optional bool readOnlyRootFilesystem = 6;
@ -4661,6 +4717,7 @@ message SecurityContext {
// AllowPrivilegeEscalation is true always when the container is: // AllowPrivilegeEscalation is true always when the container is:
// 1) run as Privileged // 1) run as Privileged
// 2) has CAP_SYS_ADMIN // 2) has CAP_SYS_ADMIN
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional bool allowPrivilegeEscalation = 7; optional bool allowPrivilegeEscalation = 7;
@ -4668,12 +4725,14 @@ message SecurityContext {
// The default is DefaultProcMount which uses the container runtime defaults for // The default is DefaultProcMount which uses the container runtime defaults for
// readonly paths and masked paths. // readonly paths and masked paths.
// This requires the ProcMountType feature flag to be enabled. // This requires the ProcMountType feature flag to be enabled.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional string procMount = 9; optional string procMount = 9;
// The seccomp options to use by this container. If seccomp options are // The seccomp options to use by this container. If seccomp options are
// provided at both the pod & container level, the container options // provided at both the pod & container level, the container options
// override the pod options. // override the pod options.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
optional SeccompProfile seccompProfile = 11; optional SeccompProfile seccompProfile = 11;
} }

View File

@ -3183,6 +3183,54 @@ type PodSpec struct {
// Default to false. // Default to false.
// +optional // +optional
SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty" protobuf:"varint,35,opt,name=setHostnameAsFQDN"` SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty" protobuf:"varint,35,opt,name=setHostnameAsFQDN"`
// Specifies the OS of the containers in the pod.
// Some pod and container fields are restricted if this is set.
//
// If the OS field is set to linux, the following fields must be unset:
// -securityContext.windowsOptions
//
// If the OS field is set to windows, following fields must be unset:
// - spec.hostPID
// - spec.hostIPC
// - spec.securityContext.seLinuxOptions
// - spec.securityContext.seccompProfile
// - spec.securityContext.fsGroup
// - spec.securityContext.fsGroupChangePolicy
// - spec.securityContext.sysctls
// - spec.shareProcessNamespace
// - spec.securityContext.runAsUser
// - spec.securityContext.runAsGroup
// - spec.securityContext.supplementalGroups
// - spec.containers[*].securityContext.seLinuxOptions
// - spec.containers[*].securityContext.seccompProfile
// - spec.containers[*].securityContext.capabilities
// - spec.containers[*].securityContext.readOnlyRootFilesystem
// - spec.containers[*].securityContext.privileged
// - spec.containers[*].securityContext.allowPrivilegeEscalation
// - spec.containers[*].securityContext.procMount
// - spec.containers[*].securityContext.runAsUser
// - spec.containers[*].securityContext.runAsGroup
// +optional
// This is an alpha field and requires the IdentifyPodOS feature
OS *PodOS `json:"os,omitempty" protobuf:"bytes,36,opt,name=os"`
}
// OSName is the set of OS'es that can be used in OS.
type OSName string
// These are valid values for OSName
const (
Linux OSName = "linux"
Windows OSName = "windows"
)
// PodOS defines the OS parameters of a pod.
type PodOS struct {
// Name is the name of the operating system. The currently supported values are linux and windows.
// Additional value may be defined in future and can be one of:
// https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration
// Clients should expect to handle additional values and treat unrecognized values in this field as os: null
Name OSName `json:"name" protobuf:"bytes,1,opt,name=name"`
} }
type UnsatisfiableConstraintAction string type UnsatisfiableConstraintAction string
@ -3290,11 +3338,13 @@ type PodSecurityContext struct {
// container. May also be set in SecurityContext. If set in // container. May also be set in SecurityContext. If set in
// both SecurityContext and PodSecurityContext, the value specified in SecurityContext // both SecurityContext and PodSecurityContext, the value specified in SecurityContext
// takes precedence for that container. // takes precedence for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SELinuxOptions *SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,1,opt,name=seLinuxOptions"` SELinuxOptions *SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,1,opt,name=seLinuxOptions"`
// The Windows specific settings applied to all containers. // The Windows specific settings applied to all containers.
// If unspecified, the options within a container's SecurityContext will be used. // If unspecified, the options within a container's SecurityContext will be used.
// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is linux.
// +optional // +optional
WindowsOptions *WindowsSecurityContextOptions `json:"windowsOptions,omitempty" protobuf:"bytes,8,opt,name=windowsOptions"` WindowsOptions *WindowsSecurityContextOptions `json:"windowsOptions,omitempty" protobuf:"bytes,8,opt,name=windowsOptions"`
// The UID to run the entrypoint of the container process. // The UID to run the entrypoint of the container process.
@ -3302,6 +3352,7 @@ type PodSecurityContext struct {
// May also be set in SecurityContext. If set in both SecurityContext and // May also be set in SecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence // PodSecurityContext, the value specified in SecurityContext takes precedence
// for that container. // for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsUser *int64 `json:"runAsUser,omitempty" protobuf:"varint,2,opt,name=runAsUser"` RunAsUser *int64 `json:"runAsUser,omitempty" protobuf:"varint,2,opt,name=runAsUser"`
// The GID to run the entrypoint of the container process. // The GID to run the entrypoint of the container process.
@ -3309,6 +3360,7 @@ type PodSecurityContext struct {
// May also be set in SecurityContext. If set in both SecurityContext and // May also be set in SecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence // PodSecurityContext, the value specified in SecurityContext takes precedence
// for that container. // for that container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsGroup *int64 `json:"runAsGroup,omitempty" protobuf:"varint,6,opt,name=runAsGroup"` RunAsGroup *int64 `json:"runAsGroup,omitempty" protobuf:"varint,6,opt,name=runAsGroup"`
// Indicates that the container must run as a non-root user. // Indicates that the container must run as a non-root user.
@ -3322,6 +3374,7 @@ type PodSecurityContext struct {
// A list of groups applied to the first process run in each container, in addition // A list of groups applied to the first process run in each container, in addition
// to the container's primary GID. If unspecified, no groups will be added to // to the container's primary GID. If unspecified, no groups will be added to
// any container. // any container.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SupplementalGroups []int64 `json:"supplementalGroups,omitempty" protobuf:"varint,4,rep,name=supplementalGroups"` SupplementalGroups []int64 `json:"supplementalGroups,omitempty" protobuf:"varint,4,rep,name=supplementalGroups"`
// A special supplemental group that applies to all containers in a pod. // A special supplemental group that applies to all containers in a pod.
@ -3333,10 +3386,12 @@ type PodSecurityContext struct {
// 3. The permission bits are OR'd with rw-rw---- // 3. The permission bits are OR'd with rw-rw----
// //
// If unset, the Kubelet will not modify the ownership and permissions of any volume. // If unset, the Kubelet will not modify the ownership and permissions of any volume.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
FSGroup *int64 `json:"fsGroup,omitempty" protobuf:"varint,5,opt,name=fsGroup"` FSGroup *int64 `json:"fsGroup,omitempty" protobuf:"varint,5,opt,name=fsGroup"`
// Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported // Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
// sysctls (by the container runtime) might fail to launch. // sysctls (by the container runtime) might fail to launch.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
Sysctls []Sysctl `json:"sysctls,omitempty" protobuf:"bytes,7,rep,name=sysctls"` Sysctls []Sysctl `json:"sysctls,omitempty" protobuf:"bytes,7,rep,name=sysctls"`
// fsGroupChangePolicy defines behavior of changing ownership and permission of the volume // fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
@ -3345,9 +3400,11 @@ type PodSecurityContext struct {
// It will have no effect on ephemeral volume types such as: secret, configmaps // It will have no effect on ephemeral volume types such as: secret, configmaps
// and emptydir. // and emptydir.
// Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. // Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
FSGroupChangePolicy *PodFSGroupChangePolicy `json:"fsGroupChangePolicy,omitempty" protobuf:"bytes,9,opt,name=fsGroupChangePolicy"` FSGroupChangePolicy *PodFSGroupChangePolicy `json:"fsGroupChangePolicy,omitempty" protobuf:"bytes,9,opt,name=fsGroupChangePolicy"`
// The seccomp options to use by the containers in this pod. // The seccomp options to use by the containers in this pod.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SeccompProfile *SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,10,opt,name=seccompProfile"` SeccompProfile *SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,10,opt,name=seccompProfile"`
} }
@ -6138,34 +6195,40 @@ type DownwardAPIProjection struct {
type SecurityContext struct { type SecurityContext struct {
// The capabilities to add/drop when running containers. // The capabilities to add/drop when running containers.
// Defaults to the default set of capabilities granted by the container runtime. // Defaults to the default set of capabilities granted by the container runtime.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
Capabilities *Capabilities `json:"capabilities,omitempty" protobuf:"bytes,1,opt,name=capabilities"` Capabilities *Capabilities `json:"capabilities,omitempty" protobuf:"bytes,1,opt,name=capabilities"`
// Run container in privileged mode. // Run container in privileged mode.
// Processes in privileged containers are essentially equivalent to root on the host. // Processes in privileged containers are essentially equivalent to root on the host.
// Defaults to false. // Defaults to false.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
Privileged *bool `json:"privileged,omitempty" protobuf:"varint,2,opt,name=privileged"` Privileged *bool `json:"privileged,omitempty" protobuf:"varint,2,opt,name=privileged"`
// The SELinux context to be applied to the container. // The SELinux context to be applied to the container.
// If unspecified, the container runtime will allocate a random SELinux context for each // If unspecified, the container runtime will allocate a random SELinux context for each
// container. May also be set in PodSecurityContext. If set in both SecurityContext and // container. May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SELinuxOptions *SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,3,opt,name=seLinuxOptions"` SELinuxOptions *SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,3,opt,name=seLinuxOptions"`
// The Windows specific settings applied to all containers. // The Windows specific settings applied to all containers.
// If unspecified, the options from the PodSecurityContext will be used. // If unspecified, the options from the PodSecurityContext will be used.
// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is linux.
// +optional // +optional
WindowsOptions *WindowsSecurityContextOptions `json:"windowsOptions,omitempty" protobuf:"bytes,10,opt,name=windowsOptions"` WindowsOptions *WindowsSecurityContextOptions `json:"windowsOptions,omitempty" protobuf:"bytes,10,opt,name=windowsOptions"`
// The UID to run the entrypoint of the container process. // The UID to run the entrypoint of the container process.
// Defaults to user specified in image metadata if unspecified. // Defaults to user specified in image metadata if unspecified.
// May also be set in PodSecurityContext. If set in both SecurityContext and // May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsUser *int64 `json:"runAsUser,omitempty" protobuf:"varint,4,opt,name=runAsUser"` RunAsUser *int64 `json:"runAsUser,omitempty" protobuf:"varint,4,opt,name=runAsUser"`
// The GID to run the entrypoint of the container process. // The GID to run the entrypoint of the container process.
// Uses runtime default if unset. // Uses runtime default if unset.
// May also be set in PodSecurityContext. If set in both SecurityContext and // May also be set in PodSecurityContext. If set in both SecurityContext and
// PodSecurityContext, the value specified in SecurityContext takes precedence. // PodSecurityContext, the value specified in SecurityContext takes precedence.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
RunAsGroup *int64 `json:"runAsGroup,omitempty" protobuf:"varint,8,opt,name=runAsGroup"` RunAsGroup *int64 `json:"runAsGroup,omitempty" protobuf:"varint,8,opt,name=runAsGroup"`
// Indicates that the container must run as a non-root user. // Indicates that the container must run as a non-root user.
@ -6178,6 +6241,7 @@ type SecurityContext struct {
RunAsNonRoot *bool `json:"runAsNonRoot,omitempty" protobuf:"varint,5,opt,name=runAsNonRoot"` RunAsNonRoot *bool `json:"runAsNonRoot,omitempty" protobuf:"varint,5,opt,name=runAsNonRoot"`
// Whether this container has a read-only root filesystem. // Whether this container has a read-only root filesystem.
// Default is false. // Default is false.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty" protobuf:"varint,6,opt,name=readOnlyRootFilesystem"` ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty" protobuf:"varint,6,opt,name=readOnlyRootFilesystem"`
// AllowPrivilegeEscalation controls whether a process can gain more // AllowPrivilegeEscalation controls whether a process can gain more
@ -6186,17 +6250,20 @@ type SecurityContext struct {
// AllowPrivilegeEscalation is true always when the container is: // AllowPrivilegeEscalation is true always when the container is:
// 1) run as Privileged // 1) run as Privileged
// 2) has CAP_SYS_ADMIN // 2) has CAP_SYS_ADMIN
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,7,opt,name=allowPrivilegeEscalation"` AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,7,opt,name=allowPrivilegeEscalation"`
// procMount denotes the type of proc mount to use for the containers. // procMount denotes the type of proc mount to use for the containers.
// The default is DefaultProcMount which uses the container runtime defaults for // The default is DefaultProcMount which uses the container runtime defaults for
// readonly paths and masked paths. // readonly paths and masked paths.
// This requires the ProcMountType feature flag to be enabled. // This requires the ProcMountType feature flag to be enabled.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
ProcMount *ProcMountType `json:"procMount,omitempty" protobuf:"bytes,9,opt,name=procMount"` ProcMount *ProcMountType `json:"procMount,omitempty" protobuf:"bytes,9,opt,name=procMount"`
// The seccomp options to use by this container. If seccomp options are // The seccomp options to use by this container. If seccomp options are
// provided at both the pod & container level, the container options // provided at both the pod & container level, the container options
// override the pod options. // override the pod options.
// Note that this field cannot be set when spec.os.name is windows.
// +optional // +optional
SeccompProfile *SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,11,opt,name=seccompProfile"` SeccompProfile *SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,11,opt,name=seccompProfile"`
} }

View File

@ -1558,6 +1558,15 @@ func (PodLogOptions) SwaggerDoc() map[string]string {
return map_PodLogOptions return map_PodLogOptions
} }
var map_PodOS = map[string]string{
"": "PodOS defines the OS parameters of a pod.",
"name": "Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null",
}
func (PodOS) SwaggerDoc() map[string]string {
return map_PodOS
}
var map_PodPortForwardOptions = map[string]string{ var map_PodPortForwardOptions = map[string]string{
"": "PodPortForwardOptions is the query options to a Pod's port forward call when using WebSockets. The `port` query parameter must specify the port or ports (comma separated) to forward over. Port forwarding over SPDY does not use these options. It requires the port to be passed in the `port` header as part of request.", "": "PodPortForwardOptions is the query options to a Pod's port forward call when using WebSockets. The `port` query parameter must specify the port or ports (comma separated) to forward over. Port forwarding over SPDY does not use these options. It requires the port to be passed in the `port` header as part of request.",
"ports": "List of ports to forward Required when using WebSockets", "ports": "List of ports to forward Required when using WebSockets",
@ -1587,16 +1596,16 @@ func (PodReadinessGate) SwaggerDoc() map[string]string {
var map_PodSecurityContext = map[string]string{ var map_PodSecurityContext = map[string]string{
"": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", "": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.",
"seLinuxOptions": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "seLinuxOptions": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
"windowsOptions": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "windowsOptions": "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.",
"runAsUser": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "runAsUser": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
"runAsGroup": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "runAsGroup": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
"runAsNonRoot": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "runAsNonRoot": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"supplementalGroups": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", "supplementalGroups": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.",
"fsGroup": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw ", "fsGroup": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw ",
"sysctls": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.", "sysctls": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.",
"fsGroupChangePolicy": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.", "fsGroupChangePolicy": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.",
"seccompProfile": "The seccomp options to use by the containers in this pod.", "seccompProfile": "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.",
} }
func (PodSecurityContext) SwaggerDoc() map[string]string { func (PodSecurityContext) SwaggerDoc() map[string]string {
@ -1649,6 +1658,7 @@ var map_PodSpec = map[string]string{
"overhead": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.", "overhead": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.",
"topologySpreadConstraints": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", "topologySpreadConstraints": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
"setHostnameAsFQDN": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.", "setHostnameAsFQDN": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
"os": "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature",
} }
func (PodSpec) SwaggerDoc() map[string]string { func (PodSpec) SwaggerDoc() map[string]string {
@ -2126,17 +2136,17 @@ func (SecretVolumeSource) SwaggerDoc() map[string]string {
var map_SecurityContext = map[string]string{ var map_SecurityContext = map[string]string{
"": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", "": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.",
"capabilities": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.", "capabilities": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.",
"privileged": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", "privileged": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.",
"seLinuxOptions": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "seLinuxOptions": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
"windowsOptions": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "windowsOptions": "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.",
"runAsUser": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "runAsUser": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
"runAsGroup": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "runAsGroup": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
"runAsNonRoot": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "runAsNonRoot": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
"readOnlyRootFilesystem": "Whether this container has a read-only root filesystem. Default is false.", "readOnlyRootFilesystem": "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.",
"allowPrivilegeEscalation": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN", "allowPrivilegeEscalation": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.",
"procMount": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.", "procMount": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.",
"seccompProfile": "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options.", "seccompProfile": "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.",
} }
func (SecurityContext) SwaggerDoc() map[string]string { func (SecurityContext) SwaggerDoc() map[string]string {

View File

@ -3601,6 +3601,22 @@ func (in *PodLogOptions) DeepCopyObject() runtime.Object {
return nil return nil
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodOS) DeepCopyInto(out *PodOS) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodOS.
func (in *PodOS) DeepCopy() *PodOS {
if in == nil {
return nil
}
out := new(PodOS)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodPortForwardOptions) DeepCopyInto(out *PodPortForwardOptions) { func (in *PodPortForwardOptions) DeepCopyInto(out *PodPortForwardOptions) {
*out = *in *out = *in
@ -3895,6 +3911,11 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) {
*out = new(bool) *out = new(bool)
**out = **in **out = **in
} }
if in.OS != nil {
in, out := &in.OS, &out.OS
*out = new(PodOS)
**out = **in
}
return return
} }

View File

@ -1533,34 +1533,37 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "Ê"
}
} }
}, },
"updateStrategy": { "updateStrategy": {
"type": "șa汸\u003cƋlɋN磋镮ȺPÈ", "type": "汸\u003cƋlɋN磋镮ȺPÈɥ偁髕ģƗ鐫",
"rollingUpdate": { "rollingUpdate": {
"maxUnavailable": 2, "maxUnavailable": 2,
"maxSurge": 3 "maxSurge": 3
} }
}, },
"minReadySeconds": 1750503412, "minReadySeconds": -463159422,
"revisionHistoryLimit": 128240007 "revisionHistoryLimit": -855944448
}, },
"status": { "status": {
"currentNumberScheduled": -900194589, "currentNumberScheduled": -1556190810,
"numberMisscheduled": 295177820, "numberMisscheduled": -487001726,
"desiredNumberScheduled": 1576197985, "desiredNumberScheduled": 929611261,
"numberReady": -702578810, "numberReady": -1728725476,
"observedGeneration": -1989254568785172688, "observedGeneration": -6594742865080720976,
"updatedNumberScheduled": -855944448, "updatedNumberScheduled": -1612961101,
"numberAvailable": -1556190810, "numberAvailable": 1731921624,
"numberUnavailable": -487001726, "numberUnavailable": 826023875,
"collisionCount": -2081947001, "collisionCount": 619959999,
"conditions": [ "conditions": [
{ {
"type": "薑Ȣ#闬輙怀¹bCũw¼ ǫ", "type": "¹bCũw¼ ǫđ槴Ċį軠\u003e桼劑躮",
"status": ":$", "status": "9=ȳB鼲糰Eè6苁嗀ĕ佣",
"lastTransitionTime": "2082-11-07T20:44:23Z", "lastTransitionTime": "2821-04-08T08:07:20Z",
"reason": "495", "reason": "495",
"message": "496" "message": "496"
} }

View File

@ -31,8 +31,8 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: 1750503412 minReadySeconds: -463159422
revisionHistoryLimit: 128240007 revisionHistoryLimit: -855944448
selector: selector:
matchExpressions: matchExpressions:
- key: p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0 - key: p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0
@ -736,6 +736,8 @@ spec:
nodeName: "399" nodeName: "399"
nodeSelector: nodeSelector:
"395": "396" "395": "396"
os:
name: Ê
overhead: overhead:
隅DžbİEMǶɼ`|褞: "229" 隅DžbİEMǶɼ`|褞: "229"
preemptionPolicy: n{ preemptionPolicy: n{
@ -1053,20 +1055,20 @@ spec:
rollingUpdate: rollingUpdate:
maxSurge: 3 maxSurge: 3
maxUnavailable: 2 maxUnavailable: 2
type: șa汸<ƋlɋN磋镮ȺPÈ type: 汸<ƋlɋN磋镮ȺPÈɥ偁髕ģƗ鐫
status: status:
collisionCount: -2081947001 collisionCount: 619959999
conditions: conditions:
- lastTransitionTime: "2082-11-07T20:44:23Z" - lastTransitionTime: "2821-04-08T08:07:20Z"
message: "496" message: "496"
reason: "495" reason: "495"
status: :$ status: 9=ȳB鼲糰Eè6苁嗀ĕ佣
type: 薑Ȣ#闬輙怀¹bCũw¼ ǫ type: ¹bCũw¼ ǫđ槴Ċį軠>桼劑躮
currentNumberScheduled: -900194589 currentNumberScheduled: -1556190810
desiredNumberScheduled: 1576197985 desiredNumberScheduled: 929611261
numberAvailable: -1556190810 numberAvailable: 1731921624
numberMisscheduled: 295177820 numberMisscheduled: -487001726
numberReady: -702578810 numberReady: -1728725476
numberUnavailable: -487001726 numberUnavailable: 826023875
observedGeneration: -1989254568785172688 observedGeneration: -6594742865080720976
updatedNumberScheduled: -855944448 updatedNumberScheduled: -1612961101

View File

@ -1537,37 +1537,41 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "c'V{E犓`ɜɅc"
}
} }
}, },
"strategy": { "strategy": {
"type": "ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj", "type": "Ýɹ橽ƴåj}c殶ėŔ裑烴\u003c暉Ŝ!",
"rollingUpdate": { "rollingUpdate": {
"maxUnavailable": 2, "maxUnavailable": 2,
"maxSurge": 3 "maxSurge": 3
} }
}, },
"minReadySeconds": 2115665292, "minReadySeconds": -779806398,
"revisionHistoryLimit": 237456757, "revisionHistoryLimit": 440570496,
"progressDeadlineSeconds": -1402499324 "paused": true,
"progressDeadlineSeconds": 1952245732
}, },
"status": { "status": {
"observedGeneration": -8619941635428506201, "observedGeneration": 3465735415490749292,
"replicas": -380889943, "replicas": 1535734699,
"updatedReplicas": 466048730, "updatedReplicas": 1969397344,
"readyReplicas": -601845829, "readyReplicas": 1117243224,
"availableReplicas": 426527089, "availableReplicas": 1150861753,
"unavailableReplicas": -1890403855, "unavailableReplicas": -750110452,
"conditions": [ "conditions": [
{ {
"type": "绰爪qĖĖȠ姓ȇ\u003e尪璎妽", "type": "4LM桵Ţ宧ʜ",
"status": "ĈȖ董缞濪葷cŲ", "status": "ŲNªǕt谍Ã\u0026榠塹",
"lastUpdateTime": "1999-05-06T18:42:43Z", "lastUpdateTime": "2128-12-14T03:53:25Z",
"lastTransitionTime": "2109-09-25T13:37:56Z", "lastTransitionTime": "2463-06-07T06:21:23Z",
"reason": "491", "reason": "491",
"message": "492" "message": "492"
} }
], ],
"collisionCount": -2046786896 "collisionCount": 407647568
} }
} }

View File

@ -31,10 +31,11 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: 2115665292 minReadySeconds: -779806398
progressDeadlineSeconds: -1402499324 paused: true
progressDeadlineSeconds: 1952245732
replicas: 896585016 replicas: 896585016
revisionHistoryLimit: 237456757 revisionHistoryLimit: 440570496
selector: selector:
matchExpressions: matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99 - key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@ -45,7 +46,7 @@ spec:
rollingUpdate: rollingUpdate:
maxSurge: 3 maxSurge: 3
maxUnavailable: 2 maxUnavailable: 2
type: ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj type: Ýɹ橽ƴåj}c殶ėŔ裑烴<暉Ŝ!
template: template:
metadata: metadata:
annotations: annotations:
@ -744,6 +745,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: c'V{E犓`ɜɅc
overhead: overhead:
D輷: "792" D輷: "792"
preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆 preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆
@ -1061,17 +1064,17 @@ spec:
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
status: status:
availableReplicas: 426527089 availableReplicas: 1150861753
collisionCount: -2046786896 collisionCount: 407647568
conditions: conditions:
- lastTransitionTime: "2109-09-25T13:37:56Z" - lastTransitionTime: "2463-06-07T06:21:23Z"
lastUpdateTime: "1999-05-06T18:42:43Z" lastUpdateTime: "2128-12-14T03:53:25Z"
message: "492" message: "492"
reason: "491" reason: "491"
status: ĈȖ董缞濪葷cŲ status: ŲNªǕt谍Ã&榠塹
type: 绰爪qĖĖȠ姓ȇ>尪璎 type: 4LM桵Ţ宧ʜ
observedGeneration: -8619941635428506201 observedGeneration: 3465735415490749292
readyReplicas: -601845829 readyReplicas: 1117243224
replicas: -380889943 replicas: 1535734699
unavailableReplicas: -1890403855 unavailableReplicas: -750110452
updatedReplicas: 466048730 updatedReplicas: 1969397344

View File

@ -1542,21 +1542,24 @@
} }
} }
], ],
"setHostnameAsFQDN": true "setHostnameAsFQDN": true,
"os": {
"name": "+\u0026ɃB沅零șPî壣"
}
} }
} }
}, },
"status": { "status": {
"replicas": 1205668420, "replicas": 157451826,
"fullyLabeledReplicas": -1754098513, "fullyLabeledReplicas": -1872689134,
"readyReplicas": -877836536, "readyReplicas": 1791185938,
"availableReplicas": 138992869, "availableReplicas": 1559072561,
"observedGeneration": -7169014491472696647, "observedGeneration": 5029735218517286947,
"conditions": [ "conditions": [
{ {
"type": "零șPî壣V礆á¤拈tY圻醆锛[", "type": "Y圻醆锛[M牍Ƃ氙吐ɝ鶼",
"status": "嬜Š\u0026?鳢.ǀŭ瘢颦z疵", "status": "ŭ瘢颦z疵悡nȩ純z邜",
"lastTransitionTime": "2455-07-16T22:37:15Z", "lastTransitionTime": "2124-10-20T09:17:54Z",
"reason": "491", "reason": "491",
"message": "492" "message": "492"
} }

View File

@ -742,6 +742,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: +&ɃB沅零șPî壣
overhead: overhead:
D傕Ɠ栊闔虝巒瀦ŕ: "124" D傕Ɠ栊闔虝巒瀦ŕ: "124"
preemptionPolicy: Iƭij韺ʧ> preemptionPolicy: Iƭij韺ʧ>
@ -1055,14 +1057,14 @@ spec:
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
status: status:
availableReplicas: 138992869 availableReplicas: 1559072561
conditions: conditions:
- lastTransitionTime: "2455-07-16T22:37:15Z" - lastTransitionTime: "2124-10-20T09:17:54Z"
message: "492" message: "492"
reason: "491" reason: "491"
status: 嬜Š&?鳢.ǀŭ瘢颦z疵 status: ŭ瘢颦z疵悡nȩ純z邜
type: 零șPî壣V礆á¤拈tY圻醆锛[ type: Y圻醆锛[M牍Ƃ氙吐ɝ鶼
fullyLabeledReplicas: -1754098513 fullyLabeledReplicas: -1872689134
observedGeneration: -7169014491472696647 observedGeneration: 5029735218517286947
readyReplicas: -877836536 readyReplicas: 1791185938
replicas: 1205668420 replicas: 157451826

View File

@ -1537,7 +1537,10 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "c'V{E犓`ɜɅc"
}
} }
}, },
"volumeClaimTemplates": [ "volumeClaimTemplates": [
@ -1547,11 +1550,11 @@
"generateName": "492", "generateName": "492",
"namespace": "493", "namespace": "493",
"selfLink": "494", "selfLink": "494",
"uid": "4LM桵Ţ宧ʜ嵹ʌ5Ë}", "uid": "`",
"resourceVersion": "932117408350471144", "resourceVersion": "5863709333089187294",
"generation": 4446917721686139397, "generation": 6477367096865964611,
"creationTimestamp": "2013-04-06T12:27:00Z", "creationTimestamp": "2097-02-11T08:53:04Z",
"deletionGracePeriodSeconds": -2948232978388571762, "deletionGracePeriodSeconds": 5497143372256332223,
"labels": { "labels": {
"496": "497" "496": "497"
}, },
@ -1563,9 +1566,9 @@
"apiVersion": "500", "apiVersion": "500",
"kind": "501", "kind": "501",
"name": "502", "name": "502",
"uid": "憲Ħ焵i,ŋ", "uid": "Z穑S13t",
"controller": false, "controller": false,
"blockOwnerDeletion": false "blockOwnerDeletion": true
} }
], ],
"finalizers": [ "finalizers": [
@ -1575,7 +1578,7 @@
"managedFields": [ "managedFields": [
{ {
"manager": "505", "manager": "505",
"operation": "Ʀ§:Ǫ魚Emv看ƜZ穑S", "operation": "董缞濪葷cŲNª",
"apiVersion": "506", "apiVersion": "506",
"fieldsType": "507", "fieldsType": "507",
"subresource": "508" "subresource": "508"
@ -1584,30 +1587,33 @@
}, },
"spec": { "spec": {
"accessModes": [ "accessModes": [
"Is{豘ñ澀j劎笜釼鮭Ɯ" "豘ñ澀j劎笜釼鮭Ɯ镶Eq荣¿S5Tƙ"
], ],
"selector": { "selector": {
"matchLabels": { "matchLabels": {
"789--9opn2/8.--4-___..1.N_l..-_.1-j---30q.-2_9.9-..-JA-H-C5-8_--4.__z22": "E_3-a__w.___-_-mv9h.-7.s__-_g6_-_N4-R._P-___0..X" "N_l..-_.1-j---30q.-2_9.9-..-JA-H-5": "8_--4.__z2-.T2I"
}, },
"matchExpressions": [ "matchExpressions": [
{ {
"key": "R_-U7-F34-6.-_-O-F__h9", "key": "7--4a06y7-dt--5--8-69vc31o-865227qok-3-v8e7wfk4ek.hi93f---z-4-q24gt/Mw.___-_-mv9h.-7.s__-_g6_-_No",
"operator": "Exists" "operator": "In",
"values": [
"D.9-F_A-t0-o.7_a-t.-d6h__._-.Z-Q.1-B.__--wr_-Iu9._.UT-o"
]
} }
] ]
}, },
"resources": { "resources": {
"limits": { "limits": {
"獪霛圦Ƶ": "159" "xġ疾ɇù扻喥|{軈ĕʦ竳÷ 骵蓧": "587"
}, },
"requests": { "requests": {
"-劺b": "142" "": "856"
} }
}, },
"volumeName": "515", "volumeName": "515",
"storageClassName": "516", "storageClassName": "516",
"volumeMode": "ê婼SƸ炃\u0026-Ƹ绿浠穸æǷ^ɘʘ", "volumeMode": "涼ĥ訛\\`ĝňYuĞyÜ蛃慕ʓvâ",
"dataSource": { "dataSource": {
"apiGroup": "517", "apiGroup": "517",
"kind": "518", "kind": "518",
@ -1620,19 +1626,19 @@
} }
}, },
"status": { "status": {
"phase": "h蹤?攫垳ȿūDmÒ侠泊蠻毜鷟傚罢ț", "phase": "忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ",
"accessModes": [ "accessModes": [
"\u003e7u?=ȳ皆Cds壋" "v}鮩澊聝楧"
], ],
"capacity": { "capacity": {
"H%": "764" "问Ð7ɞŶJŖ)j{驟ʦcȃ": "657"
}, },
"conditions": [ "conditions": [
{ {
"type": "A麭T棞詢¡ɅǏõxġ疾ɇ", "type": "ņȎZȐ樾'Ż£劾ů",
"status": "=击S", "status": "Q¢鬣_棈Ý泷",
"lastProbeTime": "2806-03-31T09:12:56Z", "lastProbeTime": "2156-05-28T07:29:36Z",
"lastTransitionTime": "2430-10-28T09:53:06Z", "lastTransitionTime": "2066-08-08T11:27:30Z",
"reason": "523", "reason": "523",
"message": "524" "message": "524"
} }
@ -1641,34 +1647,34 @@
} }
], ],
"serviceName": "525", "serviceName": "525",
"podManagementPolicy": "軈ĕʦ竳÷ 骵蓧應ĸ簋涼ĥ訛\\`ĝňY", "podManagementPolicy": "婵=ǻ",
"updateStrategy": { "updateStrategy": {
"type": "Ä嚕uʟ膠ĉ班康%m忣àÂƺ琰Ȃ", "type": "ɝÔȗ$`Ž#",
"rollingUpdate": { "rollingUpdate": {
"partition": 804652982 "partition": -1644040574
} }
}, },
"revisionHistoryLimit": -827620894, "revisionHistoryLimit": -1205784111,
"minReadySeconds": -619299042 "minReadySeconds": 1505300966
}, },
"status": { "status": {
"observedGeneration": 5447372700200122498, "observedGeneration": 7422250233075984176,
"replicas": -2070785865, "replicas": -326265137,
"readyReplicas": 1702437783, "readyReplicas": 1683394621,
"currentReplicas": -1694062357, "currentReplicas": 1862659237,
"updatedReplicas": -296989682, "updatedReplicas": 798811297,
"currentRevision": "526", "currentRevision": "526",
"updateRevision": "527", "updateRevision": "527",
"collisionCount": 1261428189, "collisionCount": -1290326833,
"conditions": [ "conditions": [
{ {
"type": "鮩澊聝楧p问Ð7ɞŶJŖ)j{驟ʦ", "type": "´Aƺå嫹^Ȇɀ*ǹ",
"status": "N崑-ņȎ", "status": "蟷尨BABȳ",
"lastTransitionTime": "2128-12-14T15:28:07Z", "lastTransitionTime": "2464-04-30T23:47:03Z",
"reason": "528", "reason": "528",
"message": "529" "message": "529"
} }
], ],
"availableReplicas": -346713296 "availableReplicas": -1012893423
} }
} }

View File

@ -31,10 +31,10 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: -619299042 minReadySeconds: 1505300966
podManagementPolicy: 軈ĕʦ竳÷ 骵蓧應ĸ簋涼ĥ訛\`ĝňY podManagementPolicy: 婵=ǻ
replicas: 896585016 replicas: 896585016
revisionHistoryLimit: -827620894 revisionHistoryLimit: -1205784111
selector: selector:
matchExpressions: matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99 - key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@ -740,6 +740,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: c'V{E犓`ɜɅc
overhead: overhead:
D輷: "792" D輷: "792"
preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆 preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆
@ -1058,42 +1060,42 @@ spec:
volumePath: "103" volumePath: "103"
updateStrategy: updateStrategy:
rollingUpdate: rollingUpdate:
partition: 804652982 partition: -1644040574
type: Ä嚕uʟ膠ĉ班康%m忣àÂƺ琰Ȃ type: ɝÔȗ$`Ž#
volumeClaimTemplates: volumeClaimTemplates:
- metadata: - metadata:
annotations: annotations:
"498": "499" "498": "499"
clusterName: "504" clusterName: "504"
creationTimestamp: "2013-04-06T12:27:00Z" creationTimestamp: "2097-02-11T08:53:04Z"
deletionGracePeriodSeconds: -2948232978388571762 deletionGracePeriodSeconds: 5497143372256332223
finalizers: finalizers:
- "503" - "503"
generateName: "492" generateName: "492"
generation: 4446917721686139397 generation: 6477367096865964611
labels: labels:
"496": "497" "496": "497"
managedFields: managedFields:
- apiVersion: "506" - apiVersion: "506"
fieldsType: "507" fieldsType: "507"
manager: "505" manager: "505"
operation: Ʀ§:Ǫ魚Emv看ƜZ穑S operation: 董缞濪葷cŲNª
subresource: "508" subresource: "508"
name: "491" name: "491"
namespace: "493" namespace: "493"
ownerReferences: ownerReferences:
- apiVersion: "500" - apiVersion: "500"
blockOwnerDeletion: false blockOwnerDeletion: true
controller: false controller: false
kind: "501" kind: "501"
name: "502" name: "502"
uid: 憲Ħ焵i,ŋ uid: Z穑S13t
resourceVersion: "932117408350471144" resourceVersion: "5863709333089187294"
selfLink: "494" selfLink: "494"
uid: 4LM桵Ţ宧ʜ嵹ʌ5Ë} uid: '`'
spec: spec:
accessModes: accessModes:
- Is{豘ñ澀j劎笜釼鮭Ɯ - 豘ñ澀j劎笜釼鮭Ɯ镶Eq荣¿S5Tƙ
dataSource: dataSource:
apiGroup: "517" apiGroup: "517"
kind: "518" kind: "518"
@ -1104,44 +1106,46 @@ spec:
name: "522" name: "522"
resources: resources:
limits: limits:
獪霛圦Ƶ: "159" xġ疾ɇù扻喥|{軈ĕʦ竳÷ 骵蓧: "587"
requests: requests:
-劺b: "142" "": "856"
selector: selector:
matchExpressions: matchExpressions:
- key: R_-U7-F34-6.-_-O-F__h9 - key: 7--4a06y7-dt--5--8-69vc31o-865227qok-3-v8e7wfk4ek.hi93f---z-4-q24gt/Mw.___-_-mv9h.-7.s__-_g6_-_No
operator: Exists operator: In
values:
- D.9-F_A-t0-o.7_a-t.-d6h__._-.Z-Q.1-B.__--wr_-Iu9._.UT-o
matchLabels: matchLabels:
789--9opn2/8.--4-___..1.N_l..-_.1-j---30q.-2_9.9-..-JA-H-C5-8_--4.__z22: E_3-a__w.___-_-mv9h.-7.s__-_g6_-_N4-R._P-___0..X N_l..-_.1-j---30q.-2_9.9-..-JA-H-5: 8_--4.__z2-.T2I
storageClassName: "516" storageClassName: "516"
volumeMode: ê婼SƸ炃&-Ƹ绿浠穸æǷ^ɘʘ volumeMode: 涼ĥ訛\`ĝňYuĞyÜ蛃慕ʓvâ
volumeName: "515" volumeName: "515"
status: status:
accessModes: accessModes:
- '>7u?=ȳ皆Cds壋' - v}鮩澊聝楧
capacity: capacity:
H%: "764" 问Ð7ɞŶJŖ)j{驟ʦcȃ: "657"
conditions: conditions:
- lastProbeTime: "2806-03-31T09:12:56Z" - lastProbeTime: "2156-05-28T07:29:36Z"
lastTransitionTime: "2430-10-28T09:53:06Z" lastTransitionTime: "2066-08-08T11:27:30Z"
message: "524" message: "524"
reason: "523" reason: "523"
status: =击S status: Q¢鬣_棈Ý泷
type: A麭T棞詢¡ɅǏõxġ疾ɇ type: ņȎZȐ樾'Ż£劾ů
phase: h蹤?攫垳ȿūDmÒ侠泊蠻毜鷟傚罢ț phase: 忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ
status: status:
availableReplicas: -346713296 availableReplicas: -1012893423
collisionCount: 1261428189 collisionCount: -1290326833
conditions: conditions:
- lastTransitionTime: "2128-12-14T15:28:07Z" - lastTransitionTime: "2464-04-30T23:47:03Z"
message: "529" message: "529"
reason: "528" reason: "528"
status: N崑-ņȎ status: 蟷尨BABȳ
type: 鮩澊聝楧p问Ð7ɞŶJŖ)j{驟ʦ type: ´Aƺå嫹^Ȇɀ*ǹ
currentReplicas: -1694062357 currentReplicas: 1862659237
currentRevision: "526" currentRevision: "526"
observedGeneration: 5447372700200122498 observedGeneration: 7422250233075984176
readyReplicas: 1702437783 readyReplicas: 1683394621
replicas: -2070785865 replicas: -326265137
updateRevision: "527" updateRevision: "527"
updatedReplicas: -296989682 updatedReplicas: 798811297

View File

@ -1537,40 +1537,44 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "c'V{E犓`ɜɅc"
}
} }
}, },
"strategy": { "strategy": {
"type": "ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj", "type": "Ýɹ橽ƴåj}c殶ėŔ裑烴\u003c暉Ŝ!",
"rollingUpdate": { "rollingUpdate": {
"maxUnavailable": 2, "maxUnavailable": 2,
"maxSurge": 3 "maxSurge": 3
} }
}, },
"minReadySeconds": 2115665292, "minReadySeconds": -779806398,
"revisionHistoryLimit": 237456757, "revisionHistoryLimit": 440570496,
"paused": true,
"rollbackTo": { "rollbackTo": {
"revision": 1498428055681994500 "revision": -7008927308432218140
}, },
"progressDeadlineSeconds": -164140734 "progressDeadlineSeconds": -43713883
}, },
"status": { "status": {
"observedGeneration": -1635909846206320942, "observedGeneration": 6595930309397245706,
"replicas": -253906853, "replicas": -98839735,
"updatedReplicas": -602665165, "updatedReplicas": -691251015,
"readyReplicas": -859094691, "readyReplicas": -408821490,
"availableReplicas": -1624946983, "availableReplicas": 376262938,
"unavailableReplicas": -779806398, "unavailableReplicas": 632292328,
"conditions": [ "conditions": [
{ {
"type": "mv看ƜZ", "type": "ĈȖ董缞濪葷cŲ",
"status": "ȇ\u003e尪璎妽4LM桵Ţ宧ʜ", "status": "",
"lastUpdateTime": "2322-02-12T18:39:07Z", "lastUpdateTime": "2909-01-09T22:03:18Z",
"lastTransitionTime": "2398-05-12T06:43:28Z", "lastTransitionTime": "2294-05-20T00:00:03Z",
"reason": "491", "reason": "491",
"message": "492" "message": "492"
} }
], ],
"collisionCount": 165914268 "collisionCount": 955020766
} }
} }

View File

@ -31,12 +31,13 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: 2115665292 minReadySeconds: -779806398
progressDeadlineSeconds: -164140734 paused: true
progressDeadlineSeconds: -43713883
replicas: 896585016 replicas: 896585016
revisionHistoryLimit: 237456757 revisionHistoryLimit: 440570496
rollbackTo: rollbackTo:
revision: 1498428055681994500 revision: -7008927308432218140
selector: selector:
matchExpressions: matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99 - key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@ -47,7 +48,7 @@ spec:
rollingUpdate: rollingUpdate:
maxSurge: 3 maxSurge: 3
maxUnavailable: 2 maxUnavailable: 2
type: ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj type: Ýɹ橽ƴåj}c殶ėŔ裑烴<暉Ŝ!
template: template:
metadata: metadata:
annotations: annotations:
@ -746,6 +747,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: c'V{E犓`ɜɅc
overhead: overhead:
D輷: "792" D輷: "792"
preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆 preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆
@ -1063,17 +1066,17 @@ spec:
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
status: status:
availableReplicas: -1624946983 availableReplicas: 376262938
collisionCount: 165914268 collisionCount: 955020766
conditions: conditions:
- lastTransitionTime: "2398-05-12T06:43:28Z" - lastTransitionTime: "2294-05-20T00:00:03Z"
lastUpdateTime: "2322-02-12T18:39:07Z" lastUpdateTime: "2909-01-09T22:03:18Z"
message: "492" message: "492"
reason: "491" reason: "491"
status: ȇ>尪璎妽4LM桵Ţ宧ʜ status:
type: mv看ƜZ type: ĈȖ董缞濪葷cŲ
observedGeneration: -1635909846206320942 observedGeneration: 6595930309397245706
readyReplicas: -859094691 readyReplicas: -408821490
replicas: -253906853 replicas: -98839735
unavailableReplicas: -779806398 unavailableReplicas: 632292328
updatedReplicas: -602665165 updatedReplicas: -691251015

View File

@ -1537,7 +1537,10 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "c'V{E犓`ɜɅc"
}
} }
}, },
"volumeClaimTemplates": [ "volumeClaimTemplates": [
@ -1547,11 +1550,11 @@
"generateName": "492", "generateName": "492",
"namespace": "493", "namespace": "493",
"selfLink": "494", "selfLink": "494",
"uid": "4LM桵Ţ宧ʜ嵹ʌ5Ë}", "uid": "`",
"resourceVersion": "932117408350471144", "resourceVersion": "5863709333089187294",
"generation": 4446917721686139397, "generation": 6477367096865964611,
"creationTimestamp": "2013-04-06T12:27:00Z", "creationTimestamp": "2097-02-11T08:53:04Z",
"deletionGracePeriodSeconds": -2948232978388571762, "deletionGracePeriodSeconds": 5497143372256332223,
"labels": { "labels": {
"496": "497" "496": "497"
}, },
@ -1563,9 +1566,9 @@
"apiVersion": "500", "apiVersion": "500",
"kind": "501", "kind": "501",
"name": "502", "name": "502",
"uid": "憲Ħ焵i,ŋ", "uid": "Z穑S13t",
"controller": false, "controller": false,
"blockOwnerDeletion": false "blockOwnerDeletion": true
} }
], ],
"finalizers": [ "finalizers": [
@ -1575,7 +1578,7 @@
"managedFields": [ "managedFields": [
{ {
"manager": "505", "manager": "505",
"operation": "Ʀ§:Ǫ魚Emv看ƜZ穑S", "operation": "董缞濪葷cŲNª",
"apiVersion": "506", "apiVersion": "506",
"fieldsType": "507", "fieldsType": "507",
"subresource": "508" "subresource": "508"
@ -1584,30 +1587,33 @@
}, },
"spec": { "spec": {
"accessModes": [ "accessModes": [
"Is{豘ñ澀j劎笜釼鮭Ɯ" "豘ñ澀j劎笜釼鮭Ɯ镶Eq荣¿S5Tƙ"
], ],
"selector": { "selector": {
"matchLabels": { "matchLabels": {
"789--9opn2/8.--4-___..1.N_l..-_.1-j---30q.-2_9.9-..-JA-H-C5-8_--4.__z22": "E_3-a__w.___-_-mv9h.-7.s__-_g6_-_N4-R._P-___0..X" "N_l..-_.1-j---30q.-2_9.9-..-JA-H-5": "8_--4.__z2-.T2I"
}, },
"matchExpressions": [ "matchExpressions": [
{ {
"key": "R_-U7-F34-6.-_-O-F__h9", "key": "7--4a06y7-dt--5--8-69vc31o-865227qok-3-v8e7wfk4ek.hi93f---z-4-q24gt/Mw.___-_-mv9h.-7.s__-_g6_-_No",
"operator": "Exists" "operator": "In",
"values": [
"D.9-F_A-t0-o.7_a-t.-d6h__._-.Z-Q.1-B.__--wr_-Iu9._.UT-o"
]
} }
] ]
}, },
"resources": { "resources": {
"limits": { "limits": {
"獪霛圦Ƶ": "159" "xġ疾ɇù扻喥|{軈ĕʦ竳÷ 骵蓧": "587"
}, },
"requests": { "requests": {
"-劺b": "142" "": "856"
} }
}, },
"volumeName": "515", "volumeName": "515",
"storageClassName": "516", "storageClassName": "516",
"volumeMode": "ê婼SƸ炃\u0026-Ƹ绿浠穸æǷ^ɘʘ", "volumeMode": "涼ĥ訛\\`ĝňYuĞyÜ蛃慕ʓvâ",
"dataSource": { "dataSource": {
"apiGroup": "517", "apiGroup": "517",
"kind": "518", "kind": "518",
@ -1620,19 +1626,19 @@
} }
}, },
"status": { "status": {
"phase": "h蹤?攫垳ȿūDmÒ侠泊蠻毜鷟傚罢ț", "phase": "忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ",
"accessModes": [ "accessModes": [
"\u003e7u?=ȳ皆Cds壋" "v}鮩澊聝楧"
], ],
"capacity": { "capacity": {
"H%": "764" "问Ð7ɞŶJŖ)j{驟ʦcȃ": "657"
}, },
"conditions": [ "conditions": [
{ {
"type": "A麭T棞詢¡ɅǏõxġ疾ɇ", "type": "ņȎZȐ樾'Ż£劾ů",
"status": "=击S", "status": "Q¢鬣_棈Ý泷",
"lastProbeTime": "2806-03-31T09:12:56Z", "lastProbeTime": "2156-05-28T07:29:36Z",
"lastTransitionTime": "2430-10-28T09:53:06Z", "lastTransitionTime": "2066-08-08T11:27:30Z",
"reason": "523", "reason": "523",
"message": "524" "message": "524"
} }
@ -1641,34 +1647,34 @@
} }
], ],
"serviceName": "525", "serviceName": "525",
"podManagementPolicy": "軈ĕʦ竳÷ 骵蓧應ĸ簋涼ĥ訛\\`ĝňY", "podManagementPolicy": "婵=ǻ",
"updateStrategy": { "updateStrategy": {
"type": "Ä嚕uʟ膠ĉ班康%m忣àÂƺ琰Ȃ", "type": "ɝÔȗ$`Ž#",
"rollingUpdate": { "rollingUpdate": {
"partition": 804652982 "partition": -1644040574
} }
}, },
"revisionHistoryLimit": -827620894, "revisionHistoryLimit": -1205784111,
"minReadySeconds": -619299042 "minReadySeconds": 1505300966
}, },
"status": { "status": {
"observedGeneration": 186539306115504993, "observedGeneration": 2345785178116014414,
"replicas": 807518438, "replicas": 923301621,
"readyReplicas": -425205512, "readyReplicas": 2036280873,
"currentReplicas": 214266202, "currentReplicas": 2102009515,
"updatedReplicas": 702030092, "updatedReplicas": -1974512490,
"currentRevision": "526", "currentRevision": "526",
"updateRevision": "527", "updateRevision": "527",
"collisionCount": 1054770378, "collisionCount": -1001798049,
"conditions": [ "conditions": [
{ {
"type": "gWǰ绿络aw壳Ĝxɮǻ蝀}", "type": "Ǒl徙蔿Yċʤw",
"status": "驟ʦcȃ/ILǓ巟軷p羯孛", "status": "ǹ脡È6",
"lastTransitionTime": "2919-04-11T18:57:19Z", "lastTransitionTime": "2744-07-10T16:37:22Z",
"reason": "528", "reason": "528",
"message": "529" "message": "529"
} }
], ],
"availableReplicas": 597030717 "availableReplicas": -180607525
} }
} }

View File

@ -31,10 +31,10 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: -619299042 minReadySeconds: 1505300966
podManagementPolicy: 軈ĕʦ竳÷ 骵蓧應ĸ簋涼ĥ訛\`ĝňY podManagementPolicy: 婵=ǻ
replicas: 896585016 replicas: 896585016
revisionHistoryLimit: -827620894 revisionHistoryLimit: -1205784111
selector: selector:
matchExpressions: matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99 - key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@ -740,6 +740,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: c'V{E犓`ɜɅc
overhead: overhead:
D輷: "792" D輷: "792"
preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆 preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆
@ -1058,42 +1060,42 @@ spec:
volumePath: "103" volumePath: "103"
updateStrategy: updateStrategy:
rollingUpdate: rollingUpdate:
partition: 804652982 partition: -1644040574
type: Ä嚕uʟ膠ĉ班康%m忣àÂƺ琰Ȃ type: ɝÔȗ$`Ž#
volumeClaimTemplates: volumeClaimTemplates:
- metadata: - metadata:
annotations: annotations:
"498": "499" "498": "499"
clusterName: "504" clusterName: "504"
creationTimestamp: "2013-04-06T12:27:00Z" creationTimestamp: "2097-02-11T08:53:04Z"
deletionGracePeriodSeconds: -2948232978388571762 deletionGracePeriodSeconds: 5497143372256332223
finalizers: finalizers:
- "503" - "503"
generateName: "492" generateName: "492"
generation: 4446917721686139397 generation: 6477367096865964611
labels: labels:
"496": "497" "496": "497"
managedFields: managedFields:
- apiVersion: "506" - apiVersion: "506"
fieldsType: "507" fieldsType: "507"
manager: "505" manager: "505"
operation: Ʀ§:Ǫ魚Emv看ƜZ穑S operation: 董缞濪葷cŲNª
subresource: "508" subresource: "508"
name: "491" name: "491"
namespace: "493" namespace: "493"
ownerReferences: ownerReferences:
- apiVersion: "500" - apiVersion: "500"
blockOwnerDeletion: false blockOwnerDeletion: true
controller: false controller: false
kind: "501" kind: "501"
name: "502" name: "502"
uid: 憲Ħ焵i,ŋ uid: Z穑S13t
resourceVersion: "932117408350471144" resourceVersion: "5863709333089187294"
selfLink: "494" selfLink: "494"
uid: 4LM桵Ţ宧ʜ嵹ʌ5Ë} uid: '`'
spec: spec:
accessModes: accessModes:
- Is{豘ñ澀j劎笜釼鮭Ɯ - 豘ñ澀j劎笜釼鮭Ɯ镶Eq荣¿S5Tƙ
dataSource: dataSource:
apiGroup: "517" apiGroup: "517"
kind: "518" kind: "518"
@ -1104,44 +1106,46 @@ spec:
name: "522" name: "522"
resources: resources:
limits: limits:
獪霛圦Ƶ: "159" xġ疾ɇù扻喥|{軈ĕʦ竳÷ 骵蓧: "587"
requests: requests:
-劺b: "142" "": "856"
selector: selector:
matchExpressions: matchExpressions:
- key: R_-U7-F34-6.-_-O-F__h9 - key: 7--4a06y7-dt--5--8-69vc31o-865227qok-3-v8e7wfk4ek.hi93f---z-4-q24gt/Mw.___-_-mv9h.-7.s__-_g6_-_No
operator: Exists operator: In
values:
- D.9-F_A-t0-o.7_a-t.-d6h__._-.Z-Q.1-B.__--wr_-Iu9._.UT-o
matchLabels: matchLabels:
789--9opn2/8.--4-___..1.N_l..-_.1-j---30q.-2_9.9-..-JA-H-C5-8_--4.__z22: E_3-a__w.___-_-mv9h.-7.s__-_g6_-_N4-R._P-___0..X N_l..-_.1-j---30q.-2_9.9-..-JA-H-5: 8_--4.__z2-.T2I
storageClassName: "516" storageClassName: "516"
volumeMode: ê婼SƸ炃&-Ƹ绿浠穸æǷ^ɘʘ volumeMode: 涼ĥ訛\`ĝňYuĞyÜ蛃慕ʓvâ
volumeName: "515" volumeName: "515"
status: status:
accessModes: accessModes:
- '>7u?=ȳ皆Cds壋' - v}鮩澊聝楧
capacity: capacity:
H%: "764" 问Ð7ɞŶJŖ)j{驟ʦcȃ: "657"
conditions: conditions:
- lastProbeTime: "2806-03-31T09:12:56Z" - lastProbeTime: "2156-05-28T07:29:36Z"
lastTransitionTime: "2430-10-28T09:53:06Z" lastTransitionTime: "2066-08-08T11:27:30Z"
message: "524" message: "524"
reason: "523" reason: "523"
status: =击S status: Q¢鬣_棈Ý泷
type: A麭T棞詢¡ɅǏõxġ疾ɇ type: ņȎZȐ樾'Ż£劾ů
phase: h蹤?攫垳ȿūDmÒ侠泊蠻毜鷟傚罢ț phase: 忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ
status: status:
availableReplicas: 597030717 availableReplicas: -180607525
collisionCount: 1054770378 collisionCount: -1001798049
conditions: conditions:
- lastTransitionTime: "2919-04-11T18:57:19Z" - lastTransitionTime: "2744-07-10T16:37:22Z"
message: "529" message: "529"
reason: "528" reason: "528"
status: 驟ʦcȃ/ILǓ巟軷p羯孛 status: ǹ脡È6
type: gWǰ绿络aw壳Ĝxɮǻ蝀} type: Ǒl徙蔿Yċʤw
currentReplicas: 214266202 currentReplicas: 2102009515
currentRevision: "526" currentRevision: "526"
observedGeneration: 186539306115504993 observedGeneration: 2345785178116014414
readyReplicas: -425205512 readyReplicas: 2036280873
replicas: 807518438 replicas: 923301621
updateRevision: "527" updateRevision: "527"
updatedReplicas: 702030092 updatedReplicas: -1974512490

View File

@ -1533,34 +1533,37 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "Ê"
}
} }
}, },
"updateStrategy": { "updateStrategy": {
"type": "șa汸\u003cƋlɋN磋镮ȺPÈ", "type": "汸\u003cƋlɋN磋镮ȺPÈɥ偁髕ģƗ鐫",
"rollingUpdate": { "rollingUpdate": {
"maxUnavailable": 2, "maxUnavailable": 2,
"maxSurge": 3 "maxSurge": 3
} }
}, },
"minReadySeconds": 1750503412, "minReadySeconds": -463159422,
"revisionHistoryLimit": 128240007 "revisionHistoryLimit": -855944448
}, },
"status": { "status": {
"currentNumberScheduled": -900194589, "currentNumberScheduled": -1556190810,
"numberMisscheduled": 295177820, "numberMisscheduled": -487001726,
"desiredNumberScheduled": 1576197985, "desiredNumberScheduled": 929611261,
"numberReady": -702578810, "numberReady": -1728725476,
"observedGeneration": -1989254568785172688, "observedGeneration": -6594742865080720976,
"updatedNumberScheduled": -855944448, "updatedNumberScheduled": -1612961101,
"numberAvailable": -1556190810, "numberAvailable": 1731921624,
"numberUnavailable": -487001726, "numberUnavailable": 826023875,
"collisionCount": -2081947001, "collisionCount": 619959999,
"conditions": [ "conditions": [
{ {
"type": "薑Ȣ#闬輙怀¹bCũw¼ ǫ", "type": "¹bCũw¼ ǫđ槴Ċį軠\u003e桼劑躮",
"status": ":$", "status": "9=ȳB鼲糰Eè6苁嗀ĕ佣",
"lastTransitionTime": "2082-11-07T20:44:23Z", "lastTransitionTime": "2821-04-08T08:07:20Z",
"reason": "495", "reason": "495",
"message": "496" "message": "496"
} }

View File

@ -31,8 +31,8 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: 1750503412 minReadySeconds: -463159422
revisionHistoryLimit: 128240007 revisionHistoryLimit: -855944448
selector: selector:
matchExpressions: matchExpressions:
- key: p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0 - key: p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0
@ -736,6 +736,8 @@ spec:
nodeName: "399" nodeName: "399"
nodeSelector: nodeSelector:
"395": "396" "395": "396"
os:
name: Ê
overhead: overhead:
隅DžbİEMǶɼ`|褞: "229" 隅DžbİEMǶɼ`|褞: "229"
preemptionPolicy: n{ preemptionPolicy: n{
@ -1053,20 +1055,20 @@ spec:
rollingUpdate: rollingUpdate:
maxSurge: 3 maxSurge: 3
maxUnavailable: 2 maxUnavailable: 2
type: șa汸<ƋlɋN磋镮ȺPÈ type: 汸<ƋlɋN磋镮ȺPÈɥ偁髕ģƗ鐫
status: status:
collisionCount: -2081947001 collisionCount: 619959999
conditions: conditions:
- lastTransitionTime: "2082-11-07T20:44:23Z" - lastTransitionTime: "2821-04-08T08:07:20Z"
message: "496" message: "496"
reason: "495" reason: "495"
status: :$ status: 9=ȳB鼲糰Eè6苁嗀ĕ佣
type: 薑Ȣ#闬輙怀¹bCũw¼ ǫ type: ¹bCũw¼ ǫđ槴Ċį軠>桼劑躮
currentNumberScheduled: -900194589 currentNumberScheduled: -1556190810
desiredNumberScheduled: 1576197985 desiredNumberScheduled: 929611261
numberAvailable: -1556190810 numberAvailable: 1731921624
numberMisscheduled: 295177820 numberMisscheduled: -487001726
numberReady: -702578810 numberReady: -1728725476
numberUnavailable: -487001726 numberUnavailable: 826023875
observedGeneration: -1989254568785172688 observedGeneration: -6594742865080720976
updatedNumberScheduled: -855944448 updatedNumberScheduled: -1612961101

View File

@ -1537,37 +1537,41 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "c'V{E犓`ɜɅc"
}
} }
}, },
"strategy": { "strategy": {
"type": "ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj", "type": "Ýɹ橽ƴåj}c殶ėŔ裑烴\u003c暉Ŝ!",
"rollingUpdate": { "rollingUpdate": {
"maxUnavailable": 2, "maxUnavailable": 2,
"maxSurge": 3 "maxSurge": 3
} }
}, },
"minReadySeconds": 2115665292, "minReadySeconds": -779806398,
"revisionHistoryLimit": 237456757, "revisionHistoryLimit": 440570496,
"progressDeadlineSeconds": -1402499324 "paused": true,
"progressDeadlineSeconds": 1952245732
}, },
"status": { "status": {
"observedGeneration": -8619941635428506201, "observedGeneration": 3465735415490749292,
"replicas": -380889943, "replicas": 1535734699,
"updatedReplicas": 466048730, "updatedReplicas": 1969397344,
"readyReplicas": -601845829, "readyReplicas": 1117243224,
"availableReplicas": 426527089, "availableReplicas": 1150861753,
"unavailableReplicas": -1890403855, "unavailableReplicas": -750110452,
"conditions": [ "conditions": [
{ {
"type": "绰爪qĖĖȠ姓ȇ\u003e尪璎妽", "type": "4LM桵Ţ宧ʜ",
"status": "ĈȖ董缞濪葷cŲ", "status": "ŲNªǕt谍Ã\u0026榠塹",
"lastUpdateTime": "1999-05-06T18:42:43Z", "lastUpdateTime": "2128-12-14T03:53:25Z",
"lastTransitionTime": "2109-09-25T13:37:56Z", "lastTransitionTime": "2463-06-07T06:21:23Z",
"reason": "491", "reason": "491",
"message": "492" "message": "492"
} }
], ],
"collisionCount": -2046786896 "collisionCount": 407647568
} }
} }

View File

@ -31,10 +31,11 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: 2115665292 minReadySeconds: -779806398
progressDeadlineSeconds: -1402499324 paused: true
progressDeadlineSeconds: 1952245732
replicas: 896585016 replicas: 896585016
revisionHistoryLimit: 237456757 revisionHistoryLimit: 440570496
selector: selector:
matchExpressions: matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99 - key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@ -45,7 +46,7 @@ spec:
rollingUpdate: rollingUpdate:
maxSurge: 3 maxSurge: 3
maxUnavailable: 2 maxUnavailable: 2
type: ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj type: Ýɹ橽ƴåj}c殶ėŔ裑烴<暉Ŝ!
template: template:
metadata: metadata:
annotations: annotations:
@ -744,6 +745,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: c'V{E犓`ɜɅc
overhead: overhead:
D輷: "792" D輷: "792"
preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆 preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆
@ -1061,17 +1064,17 @@ spec:
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
status: status:
availableReplicas: 426527089 availableReplicas: 1150861753
collisionCount: -2046786896 collisionCount: 407647568
conditions: conditions:
- lastTransitionTime: "2109-09-25T13:37:56Z" - lastTransitionTime: "2463-06-07T06:21:23Z"
lastUpdateTime: "1999-05-06T18:42:43Z" lastUpdateTime: "2128-12-14T03:53:25Z"
message: "492" message: "492"
reason: "491" reason: "491"
status: ĈȖ董缞濪葷cŲ status: ŲNªǕt谍Ã&榠塹
type: 绰爪qĖĖȠ姓ȇ>尪璎 type: 4LM桵Ţ宧ʜ
observedGeneration: -8619941635428506201 observedGeneration: 3465735415490749292
readyReplicas: -601845829 readyReplicas: 1117243224
replicas: -380889943 replicas: 1535734699
unavailableReplicas: -1890403855 unavailableReplicas: -750110452
updatedReplicas: 466048730 updatedReplicas: 1969397344

View File

@ -1542,21 +1542,24 @@
} }
} }
], ],
"setHostnameAsFQDN": true "setHostnameAsFQDN": true,
"os": {
"name": "+\u0026ɃB沅零șPî壣"
}
} }
} }
}, },
"status": { "status": {
"replicas": 1205668420, "replicas": 157451826,
"fullyLabeledReplicas": -1754098513, "fullyLabeledReplicas": -1872689134,
"readyReplicas": -877836536, "readyReplicas": 1791185938,
"availableReplicas": 138992869, "availableReplicas": 1559072561,
"observedGeneration": -7169014491472696647, "observedGeneration": 5029735218517286947,
"conditions": [ "conditions": [
{ {
"type": "零șPî壣V礆á¤拈tY圻醆锛[", "type": "Y圻醆锛[M牍Ƃ氙吐ɝ鶼",
"status": "嬜Š\u0026?鳢.ǀŭ瘢颦z疵", "status": "ŭ瘢颦z疵悡nȩ純z邜",
"lastTransitionTime": "2455-07-16T22:37:15Z", "lastTransitionTime": "2124-10-20T09:17:54Z",
"reason": "491", "reason": "491",
"message": "492" "message": "492"
} }

View File

@ -742,6 +742,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: +&ɃB沅零șPî壣
overhead: overhead:
D傕Ɠ栊闔虝巒瀦ŕ: "124" D傕Ɠ栊闔虝巒瀦ŕ: "124"
preemptionPolicy: Iƭij韺ʧ> preemptionPolicy: Iƭij韺ʧ>
@ -1055,14 +1057,14 @@ spec:
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
status: status:
availableReplicas: 138992869 availableReplicas: 1559072561
conditions: conditions:
- lastTransitionTime: "2455-07-16T22:37:15Z" - lastTransitionTime: "2124-10-20T09:17:54Z"
message: "492" message: "492"
reason: "491" reason: "491"
status: 嬜Š&?鳢.ǀŭ瘢颦z疵 status: ŭ瘢颦z疵悡nȩ純z邜
type: 零șPî壣V礆á¤拈tY圻醆锛[ type: Y圻醆锛[M牍Ƃ氙吐ɝ鶼
fullyLabeledReplicas: -1754098513 fullyLabeledReplicas: -1872689134
observedGeneration: -7169014491472696647 observedGeneration: 5029735218517286947
readyReplicas: -877836536 readyReplicas: 1791185938
replicas: 1205668420 replicas: 157451826

View File

@ -1537,7 +1537,10 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "c'V{E犓`ɜɅc"
}
} }
}, },
"volumeClaimTemplates": [ "volumeClaimTemplates": [
@ -1547,11 +1550,11 @@
"generateName": "492", "generateName": "492",
"namespace": "493", "namespace": "493",
"selfLink": "494", "selfLink": "494",
"uid": "4LM桵Ţ宧ʜ嵹ʌ5Ë}", "uid": "`",
"resourceVersion": "932117408350471144", "resourceVersion": "5863709333089187294",
"generation": 4446917721686139397, "generation": 6477367096865964611,
"creationTimestamp": "2013-04-06T12:27:00Z", "creationTimestamp": "2097-02-11T08:53:04Z",
"deletionGracePeriodSeconds": -2948232978388571762, "deletionGracePeriodSeconds": 5497143372256332223,
"labels": { "labels": {
"496": "497" "496": "497"
}, },
@ -1563,9 +1566,9 @@
"apiVersion": "500", "apiVersion": "500",
"kind": "501", "kind": "501",
"name": "502", "name": "502",
"uid": "憲Ħ焵i,ŋ", "uid": "Z穑S13t",
"controller": false, "controller": false,
"blockOwnerDeletion": false "blockOwnerDeletion": true
} }
], ],
"finalizers": [ "finalizers": [
@ -1575,7 +1578,7 @@
"managedFields": [ "managedFields": [
{ {
"manager": "505", "manager": "505",
"operation": "Ʀ§:Ǫ魚Emv看ƜZ穑S", "operation": "董缞濪葷cŲNª",
"apiVersion": "506", "apiVersion": "506",
"fieldsType": "507", "fieldsType": "507",
"subresource": "508" "subresource": "508"
@ -1584,30 +1587,33 @@
}, },
"spec": { "spec": {
"accessModes": [ "accessModes": [
"Is{豘ñ澀j劎笜釼鮭Ɯ" "豘ñ澀j劎笜釼鮭Ɯ镶Eq荣¿S5Tƙ"
], ],
"selector": { "selector": {
"matchLabels": { "matchLabels": {
"789--9opn2/8.--4-___..1.N_l..-_.1-j---30q.-2_9.9-..-JA-H-C5-8_--4.__z22": "E_3-a__w.___-_-mv9h.-7.s__-_g6_-_N4-R._P-___0..X" "N_l..-_.1-j---30q.-2_9.9-..-JA-H-5": "8_--4.__z2-.T2I"
}, },
"matchExpressions": [ "matchExpressions": [
{ {
"key": "R_-U7-F34-6.-_-O-F__h9", "key": "7--4a06y7-dt--5--8-69vc31o-865227qok-3-v8e7wfk4ek.hi93f---z-4-q24gt/Mw.___-_-mv9h.-7.s__-_g6_-_No",
"operator": "Exists" "operator": "In",
"values": [
"D.9-F_A-t0-o.7_a-t.-d6h__._-.Z-Q.1-B.__--wr_-Iu9._.UT-o"
]
} }
] ]
}, },
"resources": { "resources": {
"limits": { "limits": {
"獪霛圦Ƶ": "159" "xġ疾ɇù扻喥|{軈ĕʦ竳÷ 骵蓧": "587"
}, },
"requests": { "requests": {
"-劺b": "142" "": "856"
} }
}, },
"volumeName": "515", "volumeName": "515",
"storageClassName": "516", "storageClassName": "516",
"volumeMode": "ê婼SƸ炃\u0026-Ƹ绿浠穸æǷ^ɘʘ", "volumeMode": "涼ĥ訛\\`ĝňYuĞyÜ蛃慕ʓvâ",
"dataSource": { "dataSource": {
"apiGroup": "517", "apiGroup": "517",
"kind": "518", "kind": "518",
@ -1620,19 +1626,19 @@
} }
}, },
"status": { "status": {
"phase": "h蹤?攫垳ȿūDmÒ侠泊蠻毜鷟傚罢ț", "phase": "忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ",
"accessModes": [ "accessModes": [
"\u003e7u?=ȳ皆Cds壋" "v}鮩澊聝楧"
], ],
"capacity": { "capacity": {
"H%": "764" "问Ð7ɞŶJŖ)j{驟ʦcȃ": "657"
}, },
"conditions": [ "conditions": [
{ {
"type": "A麭T棞詢¡ɅǏõxġ疾ɇ", "type": "ņȎZȐ樾'Ż£劾ů",
"status": "=击S", "status": "Q¢鬣_棈Ý泷",
"lastProbeTime": "2806-03-31T09:12:56Z", "lastProbeTime": "2156-05-28T07:29:36Z",
"lastTransitionTime": "2430-10-28T09:53:06Z", "lastTransitionTime": "2066-08-08T11:27:30Z",
"reason": "523", "reason": "523",
"message": "524" "message": "524"
} }
@ -1641,34 +1647,34 @@
} }
], ],
"serviceName": "525", "serviceName": "525",
"podManagementPolicy": "軈ĕʦ竳÷ 骵蓧應ĸ簋涼ĥ訛\\`ĝňY", "podManagementPolicy": "婵=ǻ",
"updateStrategy": { "updateStrategy": {
"type": "Ä嚕uʟ膠ĉ班康%m忣àÂƺ琰Ȃ", "type": "ɝÔȗ$`Ž#",
"rollingUpdate": { "rollingUpdate": {
"partition": 804652982 "partition": -1644040574
} }
}, },
"revisionHistoryLimit": -827620894, "revisionHistoryLimit": -1205784111,
"minReadySeconds": -619299042 "minReadySeconds": 1505300966
}, },
"status": { "status": {
"observedGeneration": 5447372700200122498, "observedGeneration": 7422250233075984176,
"replicas": -2070785865, "replicas": -326265137,
"readyReplicas": 1702437783, "readyReplicas": 1683394621,
"currentReplicas": -1694062357, "currentReplicas": 1862659237,
"updatedReplicas": -296989682, "updatedReplicas": 798811297,
"currentRevision": "526", "currentRevision": "526",
"updateRevision": "527", "updateRevision": "527",
"collisionCount": 1261428189, "collisionCount": -1290326833,
"conditions": [ "conditions": [
{ {
"type": "鮩澊聝楧p问Ð7ɞŶJŖ)j{驟ʦ", "type": "´Aƺå嫹^Ȇɀ*ǹ",
"status": "N崑-ņȎ", "status": "蟷尨BABȳ",
"lastTransitionTime": "2128-12-14T15:28:07Z", "lastTransitionTime": "2464-04-30T23:47:03Z",
"reason": "528", "reason": "528",
"message": "529" "message": "529"
} }
], ],
"availableReplicas": -346713296 "availableReplicas": -1012893423
} }
} }

View File

@ -31,10 +31,10 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: -619299042 minReadySeconds: 1505300966
podManagementPolicy: 軈ĕʦ竳÷ 骵蓧應ĸ簋涼ĥ訛\`ĝňY podManagementPolicy: 婵=ǻ
replicas: 896585016 replicas: 896585016
revisionHistoryLimit: -827620894 revisionHistoryLimit: -1205784111
selector: selector:
matchExpressions: matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99 - key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@ -740,6 +740,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: c'V{E犓`ɜɅc
overhead: overhead:
D輷: "792" D輷: "792"
preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆 preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆
@ -1058,42 +1060,42 @@ spec:
volumePath: "103" volumePath: "103"
updateStrategy: updateStrategy:
rollingUpdate: rollingUpdate:
partition: 804652982 partition: -1644040574
type: Ä嚕uʟ膠ĉ班康%m忣àÂƺ琰Ȃ type: ɝÔȗ$`Ž#
volumeClaimTemplates: volumeClaimTemplates:
- metadata: - metadata:
annotations: annotations:
"498": "499" "498": "499"
clusterName: "504" clusterName: "504"
creationTimestamp: "2013-04-06T12:27:00Z" creationTimestamp: "2097-02-11T08:53:04Z"
deletionGracePeriodSeconds: -2948232978388571762 deletionGracePeriodSeconds: 5497143372256332223
finalizers: finalizers:
- "503" - "503"
generateName: "492" generateName: "492"
generation: 4446917721686139397 generation: 6477367096865964611
labels: labels:
"496": "497" "496": "497"
managedFields: managedFields:
- apiVersion: "506" - apiVersion: "506"
fieldsType: "507" fieldsType: "507"
manager: "505" manager: "505"
operation: Ʀ§:Ǫ魚Emv看ƜZ穑S operation: 董缞濪葷cŲNª
subresource: "508" subresource: "508"
name: "491" name: "491"
namespace: "493" namespace: "493"
ownerReferences: ownerReferences:
- apiVersion: "500" - apiVersion: "500"
blockOwnerDeletion: false blockOwnerDeletion: true
controller: false controller: false
kind: "501" kind: "501"
name: "502" name: "502"
uid: 憲Ħ焵i,ŋ uid: Z穑S13t
resourceVersion: "932117408350471144" resourceVersion: "5863709333089187294"
selfLink: "494" selfLink: "494"
uid: 4LM桵Ţ宧ʜ嵹ʌ5Ë} uid: '`'
spec: spec:
accessModes: accessModes:
- Is{豘ñ澀j劎笜釼鮭Ɯ - 豘ñ澀j劎笜釼鮭Ɯ镶Eq荣¿S5Tƙ
dataSource: dataSource:
apiGroup: "517" apiGroup: "517"
kind: "518" kind: "518"
@ -1104,44 +1106,46 @@ spec:
name: "522" name: "522"
resources: resources:
limits: limits:
獪霛圦Ƶ: "159" xġ疾ɇù扻喥|{軈ĕʦ竳÷ 骵蓧: "587"
requests: requests:
-劺b: "142" "": "856"
selector: selector:
matchExpressions: matchExpressions:
- key: R_-U7-F34-6.-_-O-F__h9 - key: 7--4a06y7-dt--5--8-69vc31o-865227qok-3-v8e7wfk4ek.hi93f---z-4-q24gt/Mw.___-_-mv9h.-7.s__-_g6_-_No
operator: Exists operator: In
values:
- D.9-F_A-t0-o.7_a-t.-d6h__._-.Z-Q.1-B.__--wr_-Iu9._.UT-o
matchLabels: matchLabels:
789--9opn2/8.--4-___..1.N_l..-_.1-j---30q.-2_9.9-..-JA-H-C5-8_--4.__z22: E_3-a__w.___-_-mv9h.-7.s__-_g6_-_N4-R._P-___0..X N_l..-_.1-j---30q.-2_9.9-..-JA-H-5: 8_--4.__z2-.T2I
storageClassName: "516" storageClassName: "516"
volumeMode: ê婼SƸ炃&-Ƹ绿浠穸æǷ^ɘʘ volumeMode: 涼ĥ訛\`ĝňYuĞyÜ蛃慕ʓvâ
volumeName: "515" volumeName: "515"
status: status:
accessModes: accessModes:
- '>7u?=ȳ皆Cds壋' - v}鮩澊聝楧
capacity: capacity:
H%: "764" 问Ð7ɞŶJŖ)j{驟ʦcȃ: "657"
conditions: conditions:
- lastProbeTime: "2806-03-31T09:12:56Z" - lastProbeTime: "2156-05-28T07:29:36Z"
lastTransitionTime: "2430-10-28T09:53:06Z" lastTransitionTime: "2066-08-08T11:27:30Z"
message: "524" message: "524"
reason: "523" reason: "523"
status: =击S status: Q¢鬣_棈Ý泷
type: A麭T棞詢¡ɅǏõxġ疾ɇ type: ņȎZȐ樾'Ż£劾ů
phase: h蹤?攫垳ȿūDmÒ侠泊蠻毜鷟傚罢ț phase: 忣àÂƺ琰Ȃ芋醳鮩!廊臚cɶċ
status: status:
availableReplicas: -346713296 availableReplicas: -1012893423
collisionCount: 1261428189 collisionCount: -1290326833
conditions: conditions:
- lastTransitionTime: "2128-12-14T15:28:07Z" - lastTransitionTime: "2464-04-30T23:47:03Z"
message: "529" message: "529"
reason: "528" reason: "528"
status: N崑-ņȎ status: 蟷尨BABȳ
type: 鮩澊聝楧p问Ð7ɞŶJŖ)j{驟ʦ type: ´Aƺå嫹^Ȇɀ*ǹ
currentReplicas: -1694062357 currentReplicas: 1862659237
currentRevision: "526" currentRevision: "526"
observedGeneration: 5447372700200122498 observedGeneration: 7422250233075984176
readyReplicas: 1702437783 readyReplicas: 1683394621
replicas: -2070785865 replicas: -326265137
updateRevision: "527" updateRevision: "527"
updatedReplicas: -296989682 updatedReplicas: 798811297

View File

@ -1597,11 +1597,14 @@
} }
} }
], ],
"setHostnameAsFQDN": true "setHostnameAsFQDN": true,
"os": {
"name": "+\u0026ɃB沅零șPî壣"
}
} }
}, },
"ttlSecondsAfterFinished": -1166275743, "ttlSecondsAfterFinished": -2008027992,
"completionMode": "ĵ/Ş槀墺=Ĉ鳟/d\u0026蒡", "completionMode": "蒡",
"suspend": false "suspend": false
} }
}, },

View File

@ -67,7 +67,7 @@ spec:
spec: spec:
activeDeadlineSeconds: -1483125035702892746 activeDeadlineSeconds: -1483125035702892746
backoffLimit: -1822122846 backoffLimit: -1822122846
completionMode: ĵ/Ş槀墺=Ĉ鳟/d& completionMode:
completions: -106888179 completions: -106888179
manualSelector: true manualSelector: true
parallelism: -856030588 parallelism: -856030588
@ -784,6 +784,8 @@ spec:
nodeName: "411" nodeName: "411"
nodeSelector: nodeSelector:
"407": "408" "407": "408"
os:
name: +&ɃB沅零șPî壣
overhead: overhead:
D傕Ɠ栊闔虝巒瀦ŕ: "124" D傕Ɠ栊闔虝巒瀦ŕ: "124"
preemptionPolicy: Iƭij韺ʧ> preemptionPolicy: Iƭij韺ʧ>
@ -1099,7 +1101,7 @@ spec:
storagePolicyID: "125" storagePolicyID: "125"
storagePolicyName: "124" storagePolicyName: "124"
volumePath: "122" volumePath: "122"
ttlSecondsAfterFinished: -1166275743 ttlSecondsAfterFinished: -2008027992
schedule: "20" schedule: "20"
startingDeadlineSeconds: -2555947251840004808 startingDeadlineSeconds: -2555947251840004808
successfulJobsHistoryLimit: -1190434752 successfulJobsHistoryLimit: -1190434752

View File

@ -1544,36 +1544,39 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "脡ǯ?b砸ƻ舁Ȁ贠ȇö匉"
}
} }
}, },
"ttlSecondsAfterFinished": -1284862566, "ttlSecondsAfterFinished": -166315230,
"completionMode": "", "completionMode": "TaI楅©Ǫ壿/š^劶äɲ泒",
"suspend": false "suspend": true
}, },
"status": { "status": {
"conditions": [ "conditions": [
{ {
"type": "ɓ为\\Ŧƺ猑\\#ȼ縤ɰTaI楅©", "type": "燬Ǻ媳ɦ:Ȱ掯鿊刞篍倧F*Ʊ巭銔0",
"status": "翻颌徚J殦殐ƕ蟶ŃēÖ釐駆Ŕƿe魛ĩ", "status": "",
"lastProbeTime": "2427-08-17T22:26:07Z", "lastProbeTime": "2534-12-23T07:02:01Z",
"lastTransitionTime": "2012-08-22T05:26:31Z", "lastTransitionTime": "2015-06-07T16:38:22Z",
"reason": "493", "reason": "493",
"message": "494" "message": "494"
} }
], ],
"active": 543081713, "active": -257419482,
"succeeded": -377965530, "succeeded": -808276219,
"failed": 77405208, "failed": -29650850,
"completedIndexes": "495", "completedIndexes": "495",
"uncountedTerminatedPods": { "uncountedTerminatedPods": {
"succeeded": [ "succeeded": [
"Ʊ巭銔07?为Èá網抒h" "抒h莤W{ɳ謏Ɵȗń暸a"
], ],
"failed": [ "failed": [
"W" "ʖ臓祴ʬlǢǤųG3Ç"
] ]
}, },
"ready": -1917014749 "ready": 934248925
} }
} }

View File

@ -33,7 +33,7 @@ metadata:
spec: spec:
activeDeadlineSeconds: -5584804243908071872 activeDeadlineSeconds: -5584804243908071872
backoffLimit: -783752440 backoffLimit: -783752440
completionMode: "" completionMode: TaI楅©Ǫ壿/š^劶äɲ泒
completions: 1305381319 completions: 1305381319
manualSelector: true manualSelector: true
parallelism: 896585016 parallelism: 896585016
@ -45,7 +45,7 @@ spec:
- 3_bQw.-dG6c-.x - 3_bQw.-dG6c-.x
matchLabels: matchLabels:
hjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N4: 3L.u hjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N4: 3L.u
suspend: false suspend: true
template: template:
metadata: metadata:
annotations: annotations:
@ -749,6 +749,8 @@ spec:
nodeName: "397" nodeName: "397"
nodeSelector: nodeSelector:
"393": "394" "393": "394"
os:
name: 脡ǯ?b砸ƻ舁Ȁ贠ȇö匉
overhead: overhead:
<ƋlɋN磋镮ȺPÈɥ偁髕ģƗ: "283" <ƋlɋN磋镮ȺPÈɥ偁髕ģƗ: "283"
preemptionPolicy: 梊蝴.Ĉ马āƭw鰕ǰ"șa preemptionPolicy: 梊蝴.Ĉ马āƭw鰕ǰ"șa
@ -1059,22 +1061,22 @@ spec:
storagePolicyID: "106" storagePolicyID: "106"
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
ttlSecondsAfterFinished: -1284862566 ttlSecondsAfterFinished: -166315230
status: status:
active: 543081713 active: -257419482
completedIndexes: "495" completedIndexes: "495"
conditions: conditions:
- lastProbeTime: "2427-08-17T22:26:07Z" - lastProbeTime: "2534-12-23T07:02:01Z"
lastTransitionTime: "2012-08-22T05:26:31Z" lastTransitionTime: "2015-06-07T16:38:22Z"
message: "494" message: "494"
reason: "493" reason: "493"
status: 翻颌徚J殦殐ƕ蟶ŃēÖ釐駆Ŕƿe魛ĩ status: ""
type: ɓ为\Ŧƺ猑\#ȼ縤ɰTaI楅© type: 燬Ǻ媳ɦ:Ȱ掯鿊刞篍倧F*Ʊ巭銔0
failed: 77405208 failed: -29650850
ready: -1917014749 ready: 934248925
succeeded: -377965530 succeeded: -808276219
uncountedTerminatedPods: uncountedTerminatedPods:
failed: failed:
- W - ʖ臓祴ʬlǢǤųG3Ç
succeeded: succeeded:
- Ʊ巭銔07?为Èá網抒h - 抒h莤W{ɳ謏Ɵȗń暸a

View File

@ -1597,11 +1597,14 @@
} }
} }
], ],
"setHostnameAsFQDN": true "setHostnameAsFQDN": true,
"os": {
"name": "+\u0026ɃB沅零șPî壣"
}
} }
}, },
"ttlSecondsAfterFinished": -1166275743, "ttlSecondsAfterFinished": -2008027992,
"completionMode": "ĵ/Ş槀墺=Ĉ鳟/d\u0026蒡", "completionMode": "蒡",
"suspend": false "suspend": false
} }
}, },

View File

@ -67,7 +67,7 @@ spec:
spec: spec:
activeDeadlineSeconds: -1483125035702892746 activeDeadlineSeconds: -1483125035702892746
backoffLimit: -1822122846 backoffLimit: -1822122846
completionMode: ĵ/Ş槀墺=Ĉ鳟/d& completionMode:
completions: -106888179 completions: -106888179
manualSelector: true manualSelector: true
parallelism: -856030588 parallelism: -856030588
@ -784,6 +784,8 @@ spec:
nodeName: "411" nodeName: "411"
nodeSelector: nodeSelector:
"407": "408" "407": "408"
os:
name: +&ɃB沅零șPî壣
overhead: overhead:
D傕Ɠ栊闔虝巒瀦ŕ: "124" D傕Ɠ栊闔虝巒瀦ŕ: "124"
preemptionPolicy: Iƭij韺ʧ> preemptionPolicy: Iƭij韺ʧ>
@ -1099,7 +1101,7 @@ spec:
storagePolicyID: "125" storagePolicyID: "125"
storagePolicyName: "124" storagePolicyName: "124"
volumePath: "122" volumePath: "122"
ttlSecondsAfterFinished: -1166275743 ttlSecondsAfterFinished: -2008027992
schedule: "20" schedule: "20"
startingDeadlineSeconds: -2555947251840004808 startingDeadlineSeconds: -2555947251840004808
successfulJobsHistoryLimit: -1190434752 successfulJobsHistoryLimit: -1190434752

View File

@ -1591,12 +1591,15 @@
} }
} }
], ],
"setHostnameAsFQDN": true "setHostnameAsFQDN": true,
"os": {
"name": "Ʌmƣ乇ǡ\u003cʍʃ'ơa6ʔF{ȃ"
}
} }
}, },
"ttlSecondsAfterFinished": 1600150514, "ttlSecondsAfterFinished": -908823020,
"completionMode": "ıȦjJ綒鷈颿懽]轸", "completionMode": "`",
"suspend": false "suspend": true
} }
} }
} }

View File

@ -64,7 +64,7 @@ template:
spec: spec:
activeDeadlineSeconds: -9086179100394185427 activeDeadlineSeconds: -9086179100394185427
backoffLimit: -1796008812 backoffLimit: -1796008812
completionMode: ıȦjJ綒鷈颿懽]轸 completionMode: '`'
completions: -1771909905 completions: -1771909905
manualSelector: false manualSelector: false
parallelism: -443114323 parallelism: -443114323
@ -76,7 +76,7 @@ template:
- Ou1.m_.5AW-_S-.3g.7_2fNc5-_.-RX8 - Ou1.m_.5AW-_S-.3g.7_2fNc5-_.-RX8
matchLabels: matchLabels:
g5i9/l-Y._.-444: c2_kS91.e5K-_e63_-_3-n-_-__3u-.__P__.7U-Uo_4_-D7r__.am64 g5i9/l-Y._.-444: c2_kS91.e5K-_e63_-_3-n-_-__3u-.__P__.7U-Uo_4_-D7r__.am64
suspend: false suspend: true
template: template:
metadata: metadata:
annotations: annotations:
@ -781,6 +781,8 @@ template:
nodeName: "409" nodeName: "409"
nodeSelector: nodeSelector:
"405": "406" "405": "406"
os:
name: Ʌmƣ乇ǡ<ʍʃ'ơa6ʔF{ȃ
overhead: overhead:
Ɇȏ+&ɃB沅零șPî壣V礆á¤: "650" Ɇȏ+&ɃB沅零șPî壣V礆á¤: "650"
preemptionPolicy: 牯雫íȣƎǗ啕倽|銜Ʌ0斃搡Cʼn嘡 preemptionPolicy: 牯雫íȣƎǗ啕倽|銜Ʌ0斃搡Cʼn嘡
@ -1095,4 +1097,4 @@ template:
storagePolicyID: "124" storagePolicyID: "124"
storagePolicyName: "123" storagePolicyName: "123"
volumePath: "121" volumePath: "121"
ttlSecondsAfterFinished: 1600150514 ttlSecondsAfterFinished: -908823020

View File

@ -1475,16 +1475,19 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "値å镮"
}
}, },
"status": { "status": {
"phase": "VǢɾ纤ą", "phase": "ą¨?ɣ蔫椁",
"conditions": [ "conditions": [
{ {
"type": "?ɣ蔫椁Ȕ蝬KȴǃmŁȒ|'从", "type": "蝬KȴǃmŁȒ|'从LŸɬʥ",
"status": "{煰", "status": "鮫ʌ槧ą°Z拕獘:p",
"lastProbeTime": "2761-08-29T15:09:53Z", "lastProbeTime": "2964-11-28T11:39:16Z",
"lastTransitionTime": "2608-03-08T03:06:33Z", "lastTransitionTime": "2684-04-17T20:01:15Z",
"reason": "466", "reason": "466",
"message": "467" "message": "467"
} }
@ -1508,15 +1511,15 @@
"message": "476" "message": "476"
}, },
"running": { "running": {
"startedAt": "2207-07-09T15:21:43Z" "startedAt": "2045-05-04T00:27:18Z"
}, },
"terminated": { "terminated": {
"exitCode": 1874682186, "exitCode": 840157370,
"signal": -768346969, "signal": 165747350,
"reason": "477", "reason": "477",
"message": "478", "message": "478",
"startedAt": "2757-03-25T09:04:49Z", "startedAt": "2362-01-25T20:42:09Z",
"finishedAt": "2465-03-18T23:55:27Z", "finishedAt": "2115-03-23T22:33:35Z",
"containerID": "479" "containerID": "479"
} }
}, },
@ -1526,24 +1529,24 @@
"message": "481" "message": "481"
}, },
"running": { "running": {
"startedAt": "2687-07-04T15:23:41Z" "startedAt": "2405-08-10T09:51:44Z"
}, },
"terminated": { "terminated": {
"exitCode": 1892596557, "exitCode": 1690803571,
"signal": -1952419528, "signal": 1574959758,
"reason": "482", "reason": "482",
"message": "483", "message": "483",
"startedAt": "2135-06-21T01:04:43Z", "startedAt": "2871-08-02T00:56:38Z",
"finishedAt": "2719-07-17T22:00:10Z", "finishedAt": "2056-06-22T17:22:55Z",
"containerID": "484" "containerID": "484"
} }
}, },
"ready": false, "ready": true,
"restartCount": -391574961, "restartCount": -560956057,
"image": "485", "image": "485",
"imageID": "486", "imageID": "486",
"containerID": "487", "containerID": "487",
"started": true "started": false
} }
], ],
"containerStatuses": [ "containerStatuses": [
@ -1555,15 +1558,15 @@
"message": "490" "message": "490"
}, },
"running": { "running": {
"startedAt": "2760-10-14T11:51:24Z" "startedAt": "2514-10-23T19:30:50Z"
}, },
"terminated": { "terminated": {
"exitCode": 165747350, "exitCode": -1915588568,
"signal": 470888375, "signal": -748558554,
"reason": "491", "reason": "491",
"message": "492", "message": "492",
"startedAt": "2942-12-12T07:01:06Z", "startedAt": "2669-01-03T02:05:34Z",
"finishedAt": "2699-11-10T05:45:30Z", "finishedAt": "2539-08-23T00:33:24Z",
"containerID": "493" "containerID": "493"
} }
}, },
@ -1573,27 +1576,27 @@
"message": "495" "message": "495"
}, },
"running": { "running": {
"startedAt": "2127-06-24T09:29:52Z" "startedAt": "2940-02-10T02:45:51Z"
}, },
"terminated": { "terminated": {
"exitCode": 1574959758, "exitCode": 508776344,
"signal": 1657812021, "signal": -419737006,
"reason": "496", "reason": "496",
"message": "497", "message": "497",
"startedAt": "2153-04-02T23:06:37Z", "startedAt": "2556-04-09T04:29:45Z",
"finishedAt": "2299-04-20T19:57:50Z", "finishedAt": "2716-06-10T12:34:06Z",
"containerID": "498" "containerID": "498"
} }
}, },
"ready": true, "ready": false,
"restartCount": 2015720150, "restartCount": 839330574,
"image": "499", "image": "499",
"imageID": "500", "imageID": "500",
"containerID": "501", "containerID": "501",
"started": false "started": true
} }
], ],
"qosClass": "澵貛香\"砻B", "qosClass": "!ɝ茀ǨĪ弊ʥ汹ȡWU=ȑ-A敲",
"ephemeralContainerStatuses": [ "ephemeralContainerStatuses": [
{ {
"name": "502", "name": "502",
@ -1603,15 +1606,15 @@
"message": "504" "message": "504"
}, },
"running": { "running": {
"startedAt": "2513-06-23T10:07:34Z" "startedAt": "2307-01-05T17:43:36Z"
}, },
"terminated": { "terminated": {
"exitCode": -1155216843, "exitCode": 390203674,
"signal": 839330574, "signal": -372320382,
"reason": "505", "reason": "505",
"message": "506", "message": "506",
"startedAt": "2296-08-29T04:36:22Z", "startedAt": "2843-07-14T02:23:26Z",
"finishedAt": "2685-03-12T10:07:19Z", "finishedAt": "2475-06-22T13:38:30Z",
"containerID": "507" "containerID": "507"
} }
}, },
@ -1621,20 +1624,20 @@
"message": "509" "message": "509"
}, },
"running": { "running": {
"startedAt": "2100-10-03T01:21:07Z" "startedAt": "2873-08-04T14:47:20Z"
}, },
"terminated": { "terminated": {
"exitCode": -1308926448, "exitCode": -1736264167,
"signal": 1208014329, "signal": -61756682,
"reason": "510", "reason": "510",
"message": "511", "message": "511",
"startedAt": "2915-11-30T10:57:55Z", "startedAt": "2083-06-13T02:40:30Z",
"finishedAt": "2358-12-25T12:18:48Z", "finishedAt": "2162-04-09T16:36:03Z",
"containerID": "512" "containerID": "512"
} }
}, },
"ready": true, "ready": true,
"restartCount": 1093414706, "restartCount": -598136292,
"image": "513", "image": "513",
"imageID": "514", "imageID": "514",
"containerID": "515", "containerID": "515",

View File

@ -696,6 +696,8 @@ spec:
nodeName: "370" nodeName: "370"
nodeSelector: nodeSelector:
"366": "367" "366": "367"
os:
name: 値å镮
overhead: overhead:
: "313" : "313"
preemptionPolicy: ħ\ preemptionPolicy: ħ\
@ -1008,45 +1010,45 @@ spec:
volumePath: "79" volumePath: "79"
status: status:
conditions: conditions:
- lastProbeTime: "2761-08-29T15:09:53Z" - lastProbeTime: "2964-11-28T11:39:16Z"
lastTransitionTime: "2608-03-08T03:06:33Z" lastTransitionTime: "2684-04-17T20:01:15Z"
message: "467" message: "467"
reason: "466" reason: "466"
status: '{煰' status: 鮫ʌ槧ą°Z拕獘:p
type: ?ɣ蔫椁Ȕ蝬KȴǃmŁȒ|'从 type: 蝬KȴǃmŁȒ|'从LŸɬʥ
containerStatuses: containerStatuses:
- containerID: "501" - containerID: "501"
image: "499" image: "499"
imageID: "500" imageID: "500"
lastState: lastState:
running: running:
startedAt: "2127-06-24T09:29:52Z" startedAt: "2940-02-10T02:45:51Z"
terminated: terminated:
containerID: "498" containerID: "498"
exitCode: 1574959758 exitCode: 508776344
finishedAt: "2299-04-20T19:57:50Z" finishedAt: "2716-06-10T12:34:06Z"
message: "497" message: "497"
reason: "496" reason: "496"
signal: 1657812021 signal: -419737006
startedAt: "2153-04-02T23:06:37Z" startedAt: "2556-04-09T04:29:45Z"
waiting: waiting:
message: "495" message: "495"
reason: "494" reason: "494"
name: "488" name: "488"
ready: true ready: false
restartCount: 2015720150 restartCount: 839330574
started: false started: true
state: state:
running: running:
startedAt: "2760-10-14T11:51:24Z" startedAt: "2514-10-23T19:30:50Z"
terminated: terminated:
containerID: "493" containerID: "493"
exitCode: 165747350 exitCode: -1915588568
finishedAt: "2699-11-10T05:45:30Z" finishedAt: "2539-08-23T00:33:24Z"
message: "492" message: "492"
reason: "491" reason: "491"
signal: 470888375 signal: -748558554
startedAt: "2942-12-12T07:01:06Z" startedAt: "2669-01-03T02:05:34Z"
waiting: waiting:
message: "490" message: "490"
reason: "489" reason: "489"
@ -1056,33 +1058,33 @@ status:
imageID: "514" imageID: "514"
lastState: lastState:
running: running:
startedAt: "2100-10-03T01:21:07Z" startedAt: "2873-08-04T14:47:20Z"
terminated: terminated:
containerID: "512" containerID: "512"
exitCode: -1308926448 exitCode: -1736264167
finishedAt: "2358-12-25T12:18:48Z" finishedAt: "2162-04-09T16:36:03Z"
message: "511" message: "511"
reason: "510" reason: "510"
signal: 1208014329 signal: -61756682
startedAt: "2915-11-30T10:57:55Z" startedAt: "2083-06-13T02:40:30Z"
waiting: waiting:
message: "509" message: "509"
reason: "508" reason: "508"
name: "502" name: "502"
ready: true ready: true
restartCount: 1093414706 restartCount: -598136292
started: true started: true
state: state:
running: running:
startedAt: "2513-06-23T10:07:34Z" startedAt: "2307-01-05T17:43:36Z"
terminated: terminated:
containerID: "507" containerID: "507"
exitCode: -1155216843 exitCode: 390203674
finishedAt: "2685-03-12T10:07:19Z" finishedAt: "2475-06-22T13:38:30Z"
message: "506" message: "506"
reason: "505" reason: "505"
signal: 839330574 signal: -372320382
startedAt: "2296-08-29T04:36:22Z" startedAt: "2843-07-14T02:23:26Z"
waiting: waiting:
message: "504" message: "504"
reason: "503" reason: "503"
@ -1093,41 +1095,41 @@ status:
imageID: "486" imageID: "486"
lastState: lastState:
running: running:
startedAt: "2687-07-04T15:23:41Z" startedAt: "2405-08-10T09:51:44Z"
terminated: terminated:
containerID: "484" containerID: "484"
exitCode: 1892596557 exitCode: 1690803571
finishedAt: "2719-07-17T22:00:10Z" finishedAt: "2056-06-22T17:22:55Z"
message: "483" message: "483"
reason: "482" reason: "482"
signal: -1952419528 signal: 1574959758
startedAt: "2135-06-21T01:04:43Z" startedAt: "2871-08-02T00:56:38Z"
waiting: waiting:
message: "481" message: "481"
reason: "480" reason: "480"
name: "474" name: "474"
ready: false ready: true
restartCount: -391574961 restartCount: -560956057
started: true started: false
state: state:
running: running:
startedAt: "2207-07-09T15:21:43Z" startedAt: "2045-05-04T00:27:18Z"
terminated: terminated:
containerID: "479" containerID: "479"
exitCode: 1874682186 exitCode: 840157370
finishedAt: "2465-03-18T23:55:27Z" finishedAt: "2115-03-23T22:33:35Z"
message: "478" message: "478"
reason: "477" reason: "477"
signal: -768346969 signal: 165747350
startedAt: "2757-03-25T09:04:49Z" startedAt: "2362-01-25T20:42:09Z"
waiting: waiting:
message: "476" message: "476"
reason: "475" reason: "475"
message: "468" message: "468"
nominatedNodeName: "470" nominatedNodeName: "470"
phase: VǢɾ纤ą phase: ą¨?ɣ蔫椁
podIP: "472" podIP: "472"
podIPs: podIPs:
- ip: "473" - ip: "473"
qosClass: 澵貛香"砻B qosClass: '!ɝ茀ǨĪ弊ʥ汹ȡWU=ȑ-A敲'
reason: "469" reason: "469"

View File

@ -1527,7 +1527,10 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "脡ǯ?b砸ƻ舁Ȁ贠ȇö匉"
}
} }
} }
} }

View File

@ -733,6 +733,8 @@ template:
nodeName: "390" nodeName: "390"
nodeSelector: nodeSelector:
"386": "387" "386": "387"
os:
name: 脡ǯ?b砸ƻ舁Ȁ贠ȇö匉
overhead: overhead:
<ƋlɋN磋镮ȺPÈɥ偁髕ģƗ: "283" <ƋlɋN磋镮ȺPÈɥ偁髕ģƗ: "283"
preemptionPolicy: 梊蝴.Ĉ马āƭw鰕ǰ"șa preemptionPolicy: 梊蝴.Ĉ马āƭw鰕ǰ"șa

View File

@ -1531,21 +1531,24 @@
} }
} }
], ],
"setHostnameAsFQDN": true "setHostnameAsFQDN": true,
"os": {
"name": "+\u0026ɃB沅零șPî壣"
}
} }
} }
}, },
"status": { "status": {
"replicas": 1205668420, "replicas": 157451826,
"fullyLabeledReplicas": -1754098513, "fullyLabeledReplicas": -1872689134,
"readyReplicas": -877836536, "readyReplicas": 1791185938,
"availableReplicas": 138992869, "availableReplicas": 1559072561,
"observedGeneration": -7169014491472696647, "observedGeneration": 5029735218517286947,
"conditions": [ "conditions": [
{ {
"type": "零șPî壣V礆á¤拈tY圻醆锛[", "type": "Y圻醆锛[M牍Ƃ氙吐ɝ鶼",
"status": "嬜Š\u0026?鳢.ǀŭ瘢颦z疵", "status": "ŭ瘢颦z疵悡nȩ純z邜",
"lastTransitionTime": "2455-07-16T22:37:15Z", "lastTransitionTime": "2124-10-20T09:17:54Z",
"reason": "487", "reason": "487",
"message": "488" "message": "488"
} }

View File

@ -734,6 +734,8 @@ spec:
nodeName: "391" nodeName: "391"
nodeSelector: nodeSelector:
"387": "388" "387": "388"
os:
name: +&ɃB沅零șPî壣
overhead: overhead:
D傕Ɠ栊闔虝巒瀦ŕ: "124" D傕Ɠ栊闔虝巒瀦ŕ: "124"
preemptionPolicy: Iƭij韺ʧ> preemptionPolicy: Iƭij韺ʧ>
@ -1048,14 +1050,14 @@ spec:
storagePolicyName: "101" storagePolicyName: "101"
volumePath: "99" volumePath: "99"
status: status:
availableReplicas: 138992869 availableReplicas: 1559072561
conditions: conditions:
- lastTransitionTime: "2455-07-16T22:37:15Z" - lastTransitionTime: "2124-10-20T09:17:54Z"
message: "488" message: "488"
reason: "487" reason: "487"
status: 嬜Š&?鳢.ǀŭ瘢颦z疵 status: ŭ瘢颦z疵悡nȩ純z邜
type: 零șPî壣V礆á¤拈tY圻醆锛[ type: Y圻醆锛[M牍Ƃ氙吐ɝ鶼
fullyLabeledReplicas: -1754098513 fullyLabeledReplicas: -1872689134
observedGeneration: -7169014491472696647 observedGeneration: 5029735218517286947
readyReplicas: -877836536 readyReplicas: 1791185938
replicas: 1205668420 replicas: 157451826

View File

@ -1533,35 +1533,38 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "Ê"
}
} }
}, },
"updateStrategy": { "updateStrategy": {
"type": "șa汸\u003cƋlɋN磋镮ȺPÈ", "type": "汸\u003cƋlɋN磋镮ȺPÈɥ偁髕ģƗ鐫",
"rollingUpdate": { "rollingUpdate": {
"maxUnavailable": 2, "maxUnavailable": 2,
"maxSurge": 3 "maxSurge": 3
} }
}, },
"minReadySeconds": 1750503412, "minReadySeconds": -463159422,
"templateGeneration": -360030892563979363, "templateGeneration": 6610342178136989005,
"revisionHistoryLimit": -900194589 "revisionHistoryLimit": -1556190810
}, },
"status": { "status": {
"currentNumberScheduled": 295177820, "currentNumberScheduled": -487001726,
"numberMisscheduled": 1576197985, "numberMisscheduled": 929611261,
"desiredNumberScheduled": -702578810, "desiredNumberScheduled": -1728725476,
"numberReady": 1539090224, "numberReady": -36544080,
"observedGeneration": 1991467680216601344, "observedGeneration": 3978304359289858739,
"updatedNumberScheduled": -1556190810, "updatedNumberScheduled": 1731921624,
"numberAvailable": -487001726, "numberAvailable": 826023875,
"numberUnavailable": 929611261, "numberUnavailable": -780958866,
"collisionCount": -1535458227, "collisionCount": -1460952461,
"conditions": [ "conditions": [
{ {
"type": "Ȣ#", "type": "bCũw¼ ǫđ槴Ċį軠\u003e桼劑",
"status": "罦¦褅桃|薝Țµʍ^鼑:$Ǿ觇ƒ幦", "status": "Y9=ȳB鼲糰Eè6苁嗀ĕ佣8ç",
"lastTransitionTime": "2721-06-15T10:27:00Z", "lastTransitionTime": "2885-07-28T14:08:43Z",
"reason": "495", "reason": "495",
"message": "496" "message": "496"
} }

View File

@ -31,8 +31,8 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: 1750503412 minReadySeconds: -463159422
revisionHistoryLimit: -900194589 revisionHistoryLimit: -1556190810
selector: selector:
matchExpressions: matchExpressions:
- key: p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0 - key: p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0
@ -736,6 +736,8 @@ spec:
nodeName: "399" nodeName: "399"
nodeSelector: nodeSelector:
"395": "396" "395": "396"
os:
name: Ê
overhead: overhead:
隅DžbİEMǶɼ`|褞: "229" 隅DžbİEMǶɼ`|褞: "229"
preemptionPolicy: n{ preemptionPolicy: n{
@ -1049,25 +1051,25 @@ spec:
storagePolicyID: "106" storagePolicyID: "106"
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
templateGeneration: -360030892563979363 templateGeneration: 6610342178136989005
updateStrategy: updateStrategy:
rollingUpdate: rollingUpdate:
maxSurge: 3 maxSurge: 3
maxUnavailable: 2 maxUnavailable: 2
type: șa汸<ƋlɋN磋镮ȺPÈ type: 汸<ƋlɋN磋镮ȺPÈɥ偁髕ģƗ鐫
status: status:
collisionCount: -1535458227 collisionCount: -1460952461
conditions: conditions:
- lastTransitionTime: "2721-06-15T10:27:00Z" - lastTransitionTime: "2885-07-28T14:08:43Z"
message: "496" message: "496"
reason: "495" reason: "495"
status: 罦¦褅桃|薝Țµʍ^鼑:$Ǿ觇ƒ幦 status: Y9=ȳB鼲糰Eè6苁嗀ĕ佣8ç
type: Ȣ# type: bCũw¼ ǫđ槴Ċį軠>桼劑
currentNumberScheduled: 295177820 currentNumberScheduled: -487001726
desiredNumberScheduled: -702578810 desiredNumberScheduled: -1728725476
numberAvailable: -487001726 numberAvailable: 826023875
numberMisscheduled: 1576197985 numberMisscheduled: 929611261
numberReady: 1539090224 numberReady: -36544080
numberUnavailable: 929611261 numberUnavailable: -780958866
observedGeneration: 1991467680216601344 observedGeneration: 3978304359289858739
updatedNumberScheduled: -1556190810 updatedNumberScheduled: 1731921624

View File

@ -1537,40 +1537,44 @@
} }
} }
], ],
"setHostnameAsFQDN": false "setHostnameAsFQDN": false,
"os": {
"name": "c'V{E犓`ɜɅc"
}
} }
}, },
"strategy": { "strategy": {
"type": "ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj", "type": "Ýɹ橽ƴåj}c殶ėŔ裑烴\u003c暉Ŝ!",
"rollingUpdate": { "rollingUpdate": {
"maxUnavailable": 2, "maxUnavailable": 2,
"maxSurge": 3 "maxSurge": 3
} }
}, },
"minReadySeconds": 2115665292, "minReadySeconds": -779806398,
"revisionHistoryLimit": 237456757, "revisionHistoryLimit": 440570496,
"paused": true,
"rollbackTo": { "rollbackTo": {
"revision": 1498428055681994500 "revision": -7008927308432218140
}, },
"progressDeadlineSeconds": -164140734 "progressDeadlineSeconds": -43713883
}, },
"status": { "status": {
"observedGeneration": -1635909846206320942, "observedGeneration": 6595930309397245706,
"replicas": -253906853, "replicas": -98839735,
"updatedReplicas": -602665165, "updatedReplicas": -691251015,
"readyReplicas": -859094691, "readyReplicas": -408821490,
"availableReplicas": -1624946983, "availableReplicas": 376262938,
"unavailableReplicas": -779806398, "unavailableReplicas": 632292328,
"conditions": [ "conditions": [
{ {
"type": "mv看ƜZ", "type": "ĈȖ董缞濪葷cŲ",
"status": "ȇ\u003e尪璎妽4LM桵Ţ宧ʜ", "status": "",
"lastUpdateTime": "2322-02-12T18:39:07Z", "lastUpdateTime": "2909-01-09T22:03:18Z",
"lastTransitionTime": "2398-05-12T06:43:28Z", "lastTransitionTime": "2294-05-20T00:00:03Z",
"reason": "491", "reason": "491",
"message": "492" "message": "492"
} }
], ],
"collisionCount": 165914268 "collisionCount": 955020766
} }
} }

View File

@ -31,12 +31,13 @@ metadata:
selfLink: "5" selfLink: "5"
uid: "7" uid: "7"
spec: spec:
minReadySeconds: 2115665292 minReadySeconds: -779806398
progressDeadlineSeconds: -164140734 paused: true
progressDeadlineSeconds: -43713883
replicas: 896585016 replicas: 896585016
revisionHistoryLimit: 237456757 revisionHistoryLimit: 440570496
rollbackTo: rollbackTo:
revision: 1498428055681994500 revision: -7008927308432218140
selector: selector:
matchExpressions: matchExpressions:
- key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99 - key: 50-u--25cu87--r7p-w1e67-8pj5t-kl-v0q6b68--nu5oii38fn-8.629b-jd-8c45-0-8--6n--w0--w---196g8d--iv1-5--5ht-a-29--0qso796/3___47._49pIB_o61ISU4--A_.XK_._M99
@ -47,7 +48,7 @@ spec:
rollingUpdate: rollingUpdate:
maxSurge: 3 maxSurge: 3
maxUnavailable: 2 maxUnavailable: 2
type: ʔF{ȃ騑ȫ(踶NJđƟÝɹ橽ƴåj type: Ýɹ橽ƴåj}c殶ėŔ裑烴<暉Ŝ!
template: template:
metadata: metadata:
annotations: annotations:
@ -746,6 +747,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: c'V{E犓`ɜɅc
overhead: overhead:
D輷: "792" D輷: "792"
preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆 preemptionPolicy: m珢\%傢z¦Ā竚ĐȌƨǴ叆
@ -1063,17 +1066,17 @@ spec:
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
status: status:
availableReplicas: -1624946983 availableReplicas: 376262938
collisionCount: 165914268 collisionCount: 955020766
conditions: conditions:
- lastTransitionTime: "2398-05-12T06:43:28Z" - lastTransitionTime: "2294-05-20T00:00:03Z"
lastUpdateTime: "2322-02-12T18:39:07Z" lastUpdateTime: "2909-01-09T22:03:18Z"
message: "492" message: "492"
reason: "491" reason: "491"
status: ȇ>尪璎妽4LM桵Ţ宧ʜ status:
type: mv看ƜZ type: ĈȖ董缞濪葷cŲ
observedGeneration: -1635909846206320942 observedGeneration: 6595930309397245706
readyReplicas: -859094691 readyReplicas: -408821490
replicas: -253906853 replicas: -98839735
unavailableReplicas: -779806398 unavailableReplicas: 632292328
updatedReplicas: -602665165 updatedReplicas: -691251015

View File

@ -1542,21 +1542,24 @@
} }
} }
], ],
"setHostnameAsFQDN": true "setHostnameAsFQDN": true,
"os": {
"name": "+\u0026ɃB沅零șPî壣"
}
} }
} }
}, },
"status": { "status": {
"replicas": 1205668420, "replicas": 157451826,
"fullyLabeledReplicas": -1754098513, "fullyLabeledReplicas": -1872689134,
"readyReplicas": -877836536, "readyReplicas": 1791185938,
"availableReplicas": 138992869, "availableReplicas": 1559072561,
"observedGeneration": -7169014491472696647, "observedGeneration": 5029735218517286947,
"conditions": [ "conditions": [
{ {
"type": "零șPî壣V礆á¤拈tY圻醆锛[", "type": "Y圻醆锛[M牍Ƃ氙吐ɝ鶼",
"status": "嬜Š\u0026?鳢.ǀŭ瘢颦z疵", "status": "ŭ瘢颦z疵悡nȩ純z邜",
"lastTransitionTime": "2455-07-16T22:37:15Z", "lastTransitionTime": "2124-10-20T09:17:54Z",
"reason": "491", "reason": "491",
"message": "492" "message": "492"
} }

View File

@ -742,6 +742,8 @@ spec:
nodeName: "395" nodeName: "395"
nodeSelector: nodeSelector:
"391": "392" "391": "392"
os:
name: +&ɃB沅零șPî壣
overhead: overhead:
D傕Ɠ栊闔虝巒瀦ŕ: "124" D傕Ɠ栊闔虝巒瀦ŕ: "124"
preemptionPolicy: Iƭij韺ʧ> preemptionPolicy: Iƭij韺ʧ>
@ -1055,14 +1057,14 @@ spec:
storagePolicyName: "105" storagePolicyName: "105"
volumePath: "103" volumePath: "103"
status: status:
availableReplicas: 138992869 availableReplicas: 1559072561
conditions: conditions:
- lastTransitionTime: "2455-07-16T22:37:15Z" - lastTransitionTime: "2124-10-20T09:17:54Z"
message: "492" message: "492"
reason: "491" reason: "491"
status: 嬜Š&?鳢.ǀŭ瘢颦z疵 status: ŭ瘢颦z疵悡nȩ純z邜
type: 零șPî壣V礆á¤拈tY圻醆锛[ type: Y圻醆锛[M牍Ƃ氙吐ɝ鶼
fullyLabeledReplicas: -1754098513 fullyLabeledReplicas: -1872689134
observedGeneration: -7169014491472696647 observedGeneration: 5029735218517286947
readyReplicas: -877836536 readyReplicas: 1791185938
replicas: 1205668420 replicas: 157451826

View File

@ -0,0 +1,43 @@
/*
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.
*/
// Code generated by applyconfiguration-gen. DO NOT EDIT.
package v1
import (
v1 "k8s.io/api/core/v1"
)
// PodOSApplyConfiguration represents an declarative configuration of the PodOS type for use
// with apply.
type PodOSApplyConfiguration struct {
Name *v1.OSName `json:"name,omitempty"`
}
// PodOSApplyConfiguration constructs an declarative configuration of the PodOS type for use with
// apply.
func PodOS() *PodOSApplyConfiguration {
return &PodOSApplyConfiguration{}
}
// WithName sets the Name field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the Name field is set to the value of the last call.
func (b *PodOSApplyConfiguration) WithName(value v1.OSName) *PodOSApplyConfiguration {
b.Name = &value
return b
}

View File

@ -60,6 +60,7 @@ type PodSpecApplyConfiguration struct {
Overhead *corev1.ResourceList `json:"overhead,omitempty"` Overhead *corev1.ResourceList `json:"overhead,omitempty"`
TopologySpreadConstraints []TopologySpreadConstraintApplyConfiguration `json:"topologySpreadConstraints,omitempty"` TopologySpreadConstraints []TopologySpreadConstraintApplyConfiguration `json:"topologySpreadConstraints,omitempty"`
SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty"` SetHostnameAsFQDN *bool `json:"setHostnameAsFQDN,omitempty"`
OS *PodOSApplyConfiguration `json:"os,omitempty"`
} }
// PodSpecApplyConfiguration constructs an declarative configuration of the PodSpec type for use with // PodSpecApplyConfiguration constructs an declarative configuration of the PodSpec type for use with
@ -398,3 +399,11 @@ func (b *PodSpecApplyConfiguration) WithSetHostnameAsFQDN(value bool) *PodSpecAp
b.SetHostnameAsFQDN = &value b.SetHostnameAsFQDN = &value
return b return b
} }
// WithOS sets the OS field in the declarative configuration to the given value
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
// If called multiple times, the OS field is set to the value of the last call.
func (b *PodSpecApplyConfiguration) WithOS(value *PodOSApplyConfiguration) *PodSpecApplyConfiguration {
b.OS = value
return b
}

View File

@ -5226,6 +5226,13 @@ var schemaYAML = typed.YAMLObject(`types:
- name: ip - name: ip
type: type:
scalar: string scalar: string
- name: io.k8s.api.core.v1.PodOS
map:
fields:
- name: name
type:
scalar: string
default: ""
- name: io.k8s.api.core.v1.PodReadinessGate - name: io.k8s.api.core.v1.PodReadinessGate
map: map:
fields: fields:
@ -5354,6 +5361,9 @@ var schemaYAML = typed.YAMLObject(`types:
elementType: elementType:
scalar: string scalar: string
elementRelationship: atomic elementRelationship: atomic
- name: os
type:
namedType: io.k8s.api.core.v1.PodOS
- name: overhead - name: overhead
type: type:
map: map:

View File

@ -661,6 +661,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
return &applyconfigurationscorev1.PodDNSConfigOptionApplyConfiguration{} return &applyconfigurationscorev1.PodDNSConfigOptionApplyConfiguration{}
case corev1.SchemeGroupVersion.WithKind("PodIP"): case corev1.SchemeGroupVersion.WithKind("PodIP"):
return &applyconfigurationscorev1.PodIPApplyConfiguration{} return &applyconfigurationscorev1.PodIPApplyConfiguration{}
case corev1.SchemeGroupVersion.WithKind("PodOS"):
return &applyconfigurationscorev1.PodOSApplyConfiguration{}
case corev1.SchemeGroupVersion.WithKind("PodReadinessGate"): case corev1.SchemeGroupVersion.WithKind("PodReadinessGate"):
return &applyconfigurationscorev1.PodReadinessGateApplyConfiguration{} return &applyconfigurationscorev1.PodReadinessGateApplyConfiguration{}
case corev1.SchemeGroupVersion.WithKind("PodSecurityContext"): case corev1.SchemeGroupVersion.WithKind("PodSecurityContext"):