Skip to content

Commit

Permalink
Add v1.25.0
Browse files Browse the repository at this point in the history
Also change the request bodies of Delete and DeleteCollection requests to be
empty if the DeleteOptional has no fields set.

Ref: kubernetes/kubernetes#111985

Fixes #125
  • Loading branch information
Arnavion committed Aug 31, 2022
1 parent 39ea204 commit 7901186
Show file tree
Hide file tree
Showing 1,084 changed files with 140,894 additions and 1,059 deletions.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Expand Up @@ -56,7 +56,7 @@ K8S_RECORD=1 ./test.sh all run-tests

1. `/Cargo.toml`: Add a new feature for the new version.

1. `/Cargo.toml`: Update `package.metadata.docs.rs.features` to the new feature.
1. `/Cargo.toml`: Update `package.metadata."docs.rs".features` to the new feature.

1. Update feature name in the `rustdoc` command in the "To make a new crate release" section below.

Expand Down Expand Up @@ -108,7 +108,7 @@ K8S_RECORD=1 ./test.sh all run-tests

```sh
rm -rf ./target/doc/ &&
cargo rustdoc --features 'v1_24' -- -A 'rustdoc::bare_urls' -Z unstable-options --enable-index-page &&
cargo rustdoc --features 'v1_25' -- -A 'rustdoc::bare_urls' -Z unstable-options --enable-index-page &&
CARGO_TARGET_DIR="$(realpath ./target)" cargo rustdoc --manifest-path ./k8s-openapi-codegen-common/Cargo.toml -- -Z unstable-options --enable-index-page &&
CARGO_TARGET_DIR="$(realpath ./target)" cargo rustdoc --manifest-path ./k8s-openapi-derive/Cargo.toml -- -Z unstable-options --enable-index-page &&
rm -rf ../k8s-openapi-gh-pages/v0.15.x &&
Expand Down
3 changes: 2 additions & 1 deletion Cargo.toml
Expand Up @@ -59,10 +59,11 @@ v1_21 = []
v1_22 = []
v1_23 = []
v1_24 = []
v1_25 = []

[package.metadata.docs.rs]
# docs.rs generates docs for the latest version. To see the docs for an older version, please generate them yourself.
features = ["v1_24"]
features = ["v1_25"]

[workspace]
members = [
Expand Down
2 changes: 1 addition & 1 deletion build.rs
Expand Up @@ -2,7 +2,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
use std::io::Write;

const MIN: usize = 18;
const MAX: usize = 24;
const MAX: usize = 25;

println!("cargo:rerun-if-env-changed=K8S_OPENAPI_ENABLED_VERSION");

Expand Down
51 changes: 37 additions & 14 deletions k8s-openapi-codegen-common/src/lib.rs
Expand Up @@ -2049,25 +2049,51 @@ pub fn write_operation(

writeln!(out, "{indent} let __request = {local}http::Request::{method}(__url);")?;

write!(out, "{indent} let __body = ")?;
let body_parameter =
delete_optional_parameter.as_ref()
.or_else(|| parameters.iter().find(|(_, _, parameter)| parameter.location == swagger20::ParameterLocation::Body));
if let Some((parameter_name, _, parameter)) = &delete_optional_parameter {
// In v1.25, as of v1.25.0, sending a DeleteCollection request with any request body triggers a server error.
// Ref: https://github.com/kubernetes/kubernetes/issues/111985
//
// This includes a request body of `{}` corresponding to a DeleteOptional with no overridden fields.
// This use case is common enough that we make it work by special-casing it to set an empty request body instead.
// This happens to be how other language's clients behave with Delete and DeleteCollection API anyway.
//
// A DeleteOptional with one or more fields set will still serialize to a request body and thus trigger a server error,
// but that is upstream's problem to fix.

write!(out, "{indent} let __body = ")?;
if let Some((parameter_name, parameter_type, parameter)) = body_parameter {
if parameter.required {
if parameter_type.starts_with('&') {
writeln!(out, "{local}serde_json::to_vec({parameter_name}).map_err({local}RequestError::Json)?;")?;
writeln!(out, "if {parameter_name} == Default::default() {{")?;
writeln!(out, "{indent} vec![]")?;
writeln!(out, "{indent} }}")?;
writeln!(out, "{indent} else {{")?;
writeln!(out, "{indent} {local}serde_json::to_vec(&{parameter_name}).map_err({local}RequestError::Json)?")?;
writeln!(out, "{indent} }};")?;

Some((parameter_name, parameter))
}
else if let Some((parameter_name, parameter_type, parameter)) = parameters.iter().find(|(_, _, parameter)| parameter.location == swagger20::ParameterLocation::Body) {
if parameter.required {
if parameter_type.starts_with('&') {
writeln!(out, "{local}serde_json::to_vec({parameter_name}).map_err({local}RequestError::Json)?;")?;
}
else {
writeln!(out, "{local}serde_json::to_vec(&{parameter_name}).map_err({local}RequestError::Json)?;")?;
}
}
else {
writeln!(out, "{local}serde_json::to_vec(&{parameter_name}).map_err({local}RequestError::Json)?;")?;
writeln!(out)?;
writeln!(out, "{parameter_name}.unwrap_or(Ok(vec![]), |value| {local}serde_json::to_vec(value).map_err({local}RequestError::Json))?;")?;
}

Some((parameter_name, parameter))
}
else {
writeln!(out)?;
writeln!(out, "{parameter_name}.unwrap_or(Ok(vec![]), |value| {local}serde_json::to_vec(value).map_err({local}RequestError::Json))?;")?;
}
writeln!(out, "vec![];")?;

None
};

if let Some((parameter_name, parameter)) = body_parameter {
let is_patch =
if let swagger20::SchemaKind::Ref(ref_path) = &parameter.schema.kind {
ref_path.path == "io.k8s.apimachinery.pkg.apis.meta.v1.Patch"
Expand All @@ -2089,9 +2115,6 @@ pub fn write_operation(
r#"{indent} let __request = __request.header({local}http::header::CONTENT_TYPE, {local}http::header::HeaderValue::from_static("application/json"));"#)?;
}
}
else {
writeln!(out, "vec![];")?;
}

if operation_result_name.is_some() {
writeln!(out, "{indent} match __request.body(__body) {{")?;
Expand Down
10 changes: 10 additions & 0 deletions k8s-openapi-codegen/src/supported_version.rs
Expand Up @@ -6,6 +6,7 @@ pub(crate) const ALL: &[SupportedVersion] = &[
SupportedVersion::V1_22,
SupportedVersion::V1_23,
SupportedVersion::V1_24,
SupportedVersion::V1_25,
];

#[derive(Clone, Copy, Debug)]
Expand All @@ -17,6 +18,7 @@ pub(crate) enum SupportedVersion {
V1_22,
V1_23,
V1_24,
V1_25,
}

impl SupportedVersion {
Expand All @@ -29,6 +31,7 @@ impl SupportedVersion {
SupportedVersion::V1_22 => "1.22",
SupportedVersion::V1_23 => "1.23",
SupportedVersion::V1_24 => "1.24",
SupportedVersion::V1_25 => "1.25",
}
}

Expand All @@ -41,6 +44,7 @@ impl SupportedVersion {
SupportedVersion::V1_22 => "v1_22",
SupportedVersion::V1_23 => "v1_23",
SupportedVersion::V1_24 => "v1_24",
SupportedVersion::V1_25 => "v1_25",
}
}

Expand All @@ -53,6 +57,7 @@ impl SupportedVersion {
SupportedVersion::V1_22 => "https://raw.githubusercontent.com/kubernetes/kubernetes/v1.22.13/api/openapi-spec/swagger.json",
SupportedVersion::V1_23 => "https://raw.githubusercontent.com/kubernetes/kubernetes/v1.23.10/api/openapi-spec/swagger.json",
SupportedVersion::V1_24 => "https://raw.githubusercontent.com/kubernetes/kubernetes/v1.24.4/api/openapi-spec/swagger.json",
SupportedVersion::V1_25 => "https://raw.githubusercontent.com/kubernetes/kubernetes/v1.25.0/api/openapi-spec/swagger.json",
}
}

Expand Down Expand Up @@ -97,6 +102,11 @@ impl SupportedVersion {
crate::fixups::upstream_bugs::connect_options_gvk,
crate::fixups::upstream_bugs::pod_exec_command_parameter_type,
],

SupportedVersion::V1_25 => &[
crate::fixups::upstream_bugs::connect_options_gvk,
crate::fixups::upstream_bugs::pod_exec_command_parameter_type,
],
};

let special_fixups: &[fn(&mut crate::swagger20::Spec) -> Result<(), crate::Error>] = &[
Expand Down
1 change: 1 addition & 0 deletions k8s-openapi-tests-macro-deps/Cargo.toml
Expand Up @@ -22,3 +22,4 @@ test_v1_21 = ["k8s-openapi/v1_21"]
test_v1_22 = ["k8s-openapi/v1_22"]
test_v1_23 = ["k8s-openapi/v1_23"]
test_v1_24 = ["k8s-openapi/v1_24"]
test_v1_25 = ["k8s-openapi/v1_25"]
1 change: 1 addition & 0 deletions k8s-openapi-tests/Cargo.toml
Expand Up @@ -49,3 +49,4 @@ test_v1_21 = ["k8s-openapi/v1_21"]
test_v1_22 = ["k8s-openapi/v1_22"]
test_v1_23 = ["k8s-openapi/v1_23"]
test_v1_24 = ["k8s-openapi/v1_24"]
test_v1_25 = ["k8s-openapi/v1_25"]
2 changes: 1 addition & 1 deletion k8s-openapi-tests/build.rs
Expand Up @@ -4,7 +4,7 @@ fn main() {
// Assert that the DEP_K8S_OPENAPI_*_VERSION is set by the k8s-openapi crate's build script correctly.

const MIN: usize = 18;
const MAX: usize = 24;
const MAX: usize = 25;

let enabled_version = {
let mut enabled_versions = (MIN..=MAX).filter(|v| std::env::var(format!("CARGO_FEATURE_TEST_V1_{v}")).is_ok());
Expand Down
1 change: 1 addition & 0 deletions k8s-openapi-tests/src/lib.rs
Expand Up @@ -54,6 +54,7 @@ impl Client {
#[cfg(feature = "test_v1_22")] let replays_directory = "v1-22";
#[cfg(feature = "test_v1_23")] let replays_directory = "v1-23";
#[cfg(feature = "test_v1_24")] let replays_directory = "v1-24";
#[cfg(feature = "test_v1_25")] let replays_directory = "v1-25";

let replays_directory =
std::path::Path::new(concat!(env!("CARGO_MANIFEST_DIR")))
Expand Down
Expand Up @@ -50,7 +50,7 @@
{
"request_url": "/apis/k8s-openapi-tests-custom-resource-definition.com/v1/namespaces/default/foobars/fb1",
"request_method": "DELETE",
"request_body": "{}",
"request_body": "",
"request_content_type": "application/json",
"response_status_code": 200,
"response_body": "{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Success\",\"details\":{\"name\":\"fb1\",\"group\":\"k8s-openapi-tests-custom-resource-definition.com\",\"kind\":\"foobars\",\"uid\":\"d0d12e1f-1a22-4fa6-ac11-b36b2793930c\"}}\n"
Expand All @@ -74,7 +74,7 @@
{
"request_url": "/apis/apiextensions.k8s.io/v1/customresourcedefinitions/foobars.k8s-openapi-tests-custom-resource-definition.com",
"request_method": "DELETE",
"request_body": "{}",
"request_body": "",
"request_content_type": "application/json",
"response_status_code": 200,
"response_body": "{\"kind\":\"CustomResourceDefinition\",\"apiVersion\":\"apiextensions.k8s.io/v1\",\"metadata\":{\"name\":\"foobars.k8s-openapi-tests-custom-resource-definition.com\",\"selfLink\":\"/apis/apiextensions.k8s.io/v1/customresourcedefinitions/foobars.k8s-openapi-tests-custom-resource-definition.com\",\"uid\":\"a2790d0a-db92-4fca-8453-26873dc1c91c\",\"resourceVersion\":\"676\",\"generation\":1,\"creationTimestamp\":\"2021-04-15T05:55:00Z\",\"deletionTimestamp\":\"2021-04-15T05:55:00Z\",\"finalizers\":[\"customresourcecleanup.apiextensions.k8s.io\"],\"managedFields\":[{\"manager\":\"kube-apiserver\",\"operation\":\"Update\",\"apiVersion\":\"apiextensions.k8s.io/v1\",\"time\":\"2021-04-15T05:55:00Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:status\":{\"f:acceptedNames\":{\"f:kind\":{},\"f:listKind\":{},\"f:plural\":{},\"f:shortNames\":{},\"f:singular\":{}},\"f:conditions\":{}}}},{\"manager\":\"unknown\",\"operation\":\"Update\",\"apiVersion\":\"apiextensions.k8s.io/v1\",\"time\":\"2021-04-15T05:55:00Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:spec\":{\"f:conversion\":{\".\":{},\"f:strategy\":{}},\"f:group\":{},\"f:names\":{\"f:kind\":{},\"f:listKind\":{},\"f:plural\":{},\"f:shortNames\":{},\"f:singular\":{}},\"f:scope\":{},\"f:versions\":{}},\"f:status\":{\"f:storedVersions\":{}}}}]},\"spec\":{\"group\":\"k8s-openapi-tests-custom-resource-definition.com\",\"names\":{\"plural\":\"foobars\",\"singular\":\"foobar\",\"shortNames\":[\"fb\"],\"kind\":\"FooBar\",\"listKind\":\"FooBarList\"},\"scope\":\"Namespaced\",\"versions\":[{\"name\":\"v1\",\"served\":true,\"storage\":true,\"schema\":{\"openAPIV3Schema\":{\"type\":\"object\",\"properties\":{\"spec\":{\"type\":\"object\",\"required\":[\"prop1\",\"prop2\"],\"properties\":{\"prop1\":{\"type\":\"string\"},\"prop2\":{\"type\":\"array\",\"items\":{\"type\":\"boolean\"}},\"prop3\":{\"type\":\"integer\",\"format\":\"int32\"}}}}}},\"subresources\":{\"status\":{}}}],\"conversion\":{\"strategy\":\"None\"}},\"status\":{\"conditions\":[{\"type\":\"NamesAccepted\",\"status\":\"True\",\"lastTransitionTime\":\"2021-04-15T05:55:00Z\",\"reason\":\"NoConflicts\",\"message\":\"no conflicts found\"},{\"type\":\"Established\",\"status\":\"True\",\"lastTransitionTime\":\"2021-04-15T05:55:00Z\",\"reason\":\"InitialNamesAccepted\",\"message\":\"the initial names have been accepted\"},{\"type\":\"Terminating\",\"status\":\"True\",\"lastTransitionTime\":\"2021-04-15T05:55:00Z\",\"reason\":\"InstanceDeletionPending\",\"message\":\"CustomResourceDefinition marked for deletion; CustomResource deletion will begin soon\"}],\"acceptedNames\":{\"plural\":\"foobars\",\"singular\":\"foobar\",\"shortNames\":[\"fb\"],\"kind\":\"FooBar\",\"listKind\":\"FooBarList\"},\"storedVersions\":[\"v1\"]}}\n"
Expand Down
4 changes: 2 additions & 2 deletions k8s-openapi-tests/test-replays/v1-18/job-create.json
Expand Up @@ -130,15 +130,15 @@
{
"request_url": "/apis/batch/v1/namespaces/default/jobs/k8s-openapi-tests-create-job",
"request_method": "DELETE",
"request_body": "{}",
"request_body": "",
"request_content_type": "application/json",
"response_status_code": 200,
"response_body": "{\"kind\":\"Job\",\"apiVersion\":\"batch/v1\",\"metadata\":{\"name\":\"k8s-openapi-tests-create-job\",\"namespace\":\"default\",\"selfLink\":\"/apis/batch/v1/namespaces/default/jobs/k8s-openapi-tests-create-job\",\"uid\":\"e967bd46-07e4-4b6c-a0dd-e5acea47366e\",\"resourceVersion\":\"743\",\"creationTimestamp\":\"2021-04-15T05:55:00Z\",\"deletionTimestamp\":\"2021-04-15T05:55:13Z\",\"deletionGracePeriodSeconds\":0,\"labels\":{\"controller-uid\":\"e967bd46-07e4-4b6c-a0dd-e5acea47366e\",\"job-name\":\"k8s-openapi-tests-create-job\"},\"finalizers\":[\"orphan\"],\"managedFields\":[{\"manager\":\"unknown\",\"operation\":\"Update\",\"apiVersion\":\"batch/v1\",\"time\":\"2021-04-15T05:55:00Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:spec\":{\"f:backoffLimit\":{},\"f:completions\":{},\"f:parallelism\":{},\"f:template\":{\"f:spec\":{\"f:containers\":{\"k:{\\\"name\\\":\\\"k8s-openapi-tests-create-job\\\"}\":{\".\":{},\"f:command\":{},\"f:env\":{\".\":{},\"k:{\\\"name\\\":\\\"TEST_ARG\\\"}\":{\".\":{},\"f:name\":{},\"f:value\":{}}},\"f:image\":{},\"f:imagePullPolicy\":{},\"f:name\":{},\"f:resources\":{},\"f:terminationMessagePath\":{},\"f:terminationMessagePolicy\":{}}},\"f:dnsPolicy\":{},\"f:restartPolicy\":{},\"f:schedulerName\":{},\"f:securityContext\":{},\"f:terminationGracePeriodSeconds\":{}}}}}},{\"manager\":\"kube-controller-manager\",\"operation\":\"Update\",\"apiVersion\":\"batch/v1\",\"time\":\"2021-04-15T05:55:13Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:status\":{\"f:conditions\":{\".\":{},\"k:{\\\"type\\\":\\\"Failed\\\"}\":{\".\":{},\"f:lastProbeTime\":{},\"f:lastTransitionTime\":{},\"f:message\":{},\"f:reason\":{},\"f:status\":{},\"f:type\":{}}},\"f:failed\":{},\"f:startTime\":{}}}}]},\"spec\":{\"parallelism\":1,\"completions\":1,\"backoffLimit\":0,\"selector\":{\"matchLabels\":{\"controller-uid\":\"e967bd46-07e4-4b6c-a0dd-e5acea47366e\"}},\"template\":{\"metadata\":{\"creationTimestamp\":null,\"labels\":{\"controller-uid\":\"e967bd46-07e4-4b6c-a0dd-e5acea47366e\",\"job-name\":\"k8s-openapi-tests-create-job\"}},\"spec\":{\"containers\":[{\"name\":\"k8s-openapi-tests-create-job\",\"image\":\"alpine\",\"command\":[\"sh\",\"-c\",\"exit $TEST_ARG\"],\"env\":[{\"name\":\"TEST_ARG\",\"value\":\"5\"}],\"resources\":{},\"terminationMessagePath\":\"/dev/termination-log\",\"terminationMessagePolicy\":\"File\",\"imagePullPolicy\":\"Always\"}],\"restartPolicy\":\"Never\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"securityContext\":{},\"schedulerName\":\"default-scheduler\"}}},\"status\":{\"conditions\":[{\"type\":\"Failed\",\"status\":\"True\",\"lastProbeTime\":\"2021-04-15T05:55:13Z\",\"lastTransitionTime\":\"2021-04-15T05:55:13Z\",\"reason\":\"BackoffLimitExceeded\",\"message\":\"Job has reached the specified backoff limit\"}],\"startTime\":\"2021-04-15T05:55:00Z\",\"failed\":1}}\n"
},
{
"request_url": "/api/v1/namespaces/default/pods?&labelSelector=job-name%3Dk8s-openapi-tests-create-job",
"request_method": "DELETE",
"request_body": "{}",
"request_body": "",
"request_content_type": "application/json",
"response_status_code": 200,
"response_body": "{\"kind\":\"PodList\",\"apiVersion\":\"v1\",\"metadata\":{\"selfLink\":\"/api/v1/namespaces/default/pods\",\"resourceVersion\":\"744\"},\"items\":[{\"metadata\":{\"name\":\"k8s-openapi-tests-create-job-d8qh2\",\"generateName\":\"k8s-openapi-tests-create-job-\",\"namespace\":\"default\",\"selfLink\":\"/api/v1/namespaces/default/pods/k8s-openapi-tests-create-job-d8qh2\",\"uid\":\"d82e09b3-56cf-449d-8e3b-c9626b315dc4\",\"resourceVersion\":\"744\",\"creationTimestamp\":\"2021-04-15T05:55:00Z\",\"labels\":{\"controller-uid\":\"e967bd46-07e4-4b6c-a0dd-e5acea47366e\",\"job-name\":\"k8s-openapi-tests-create-job\"},\"managedFields\":[{\"manager\":\"kube-controller-manager\",\"operation\":\"Update\",\"apiVersion\":\"v1\",\"time\":\"2021-04-15T05:55:00Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:metadata\":{\"f:generateName\":{},\"f:labels\":{\".\":{},\"f:controller-uid\":{},\"f:job-name\":{}}},\"f:spec\":{\"f:containers\":{\"k:{\\\"name\\\":\\\"k8s-openapi-tests-create-job\\\"}\":{\".\":{},\"f:command\":{},\"f:env\":{\".\":{},\"k:{\\\"name\\\":\\\"TEST_ARG\\\"}\":{\".\":{},\"f:name\":{},\"f:value\":{}}},\"f:image\":{},\"f:imagePullPolicy\":{},\"f:name\":{},\"f:resources\":{},\"f:terminationMessagePath\":{},\"f:terminationMessagePolicy\":{}}},\"f:dnsPolicy\":{},\"f:enableServiceLinks\":{},\"f:restartPolicy\":{},\"f:schedulerName\":{},\"f:securityContext\":{},\"f:terminationGracePeriodSeconds\":{}}}},{\"manager\":\"kubelet\",\"operation\":\"Update\",\"apiVersion\":\"v1\",\"time\":\"2021-04-15T05:55:13Z\",\"fieldsType\":\"FieldsV1\",\"fieldsV1\":{\"f:status\":{\"f:conditions\":{\"k:{\\\"type\\\":\\\"ContainersReady\\\"}\":{\".\":{},\"f:lastProbeTime\":{},\"f:lastTransitionTime\":{},\"f:message\":{},\"f:reason\":{},\"f:status\":{},\"f:type\":{}},\"k:{\\\"type\\\":\\\"Initialized\\\"}\":{\".\":{},\"f:lastProbeTime\":{},\"f:lastTransitionTime\":{},\"f:status\":{},\"f:type\":{}},\"k:{\\\"type\\\":\\\"Ready\\\"}\":{\".\":{},\"f:lastProbeTime\":{},\"f:lastTransitionTime\":{},\"f:message\":{},\"f:reason\":{},\"f:status\":{},\"f:type\":{}}},\"f:containerStatuses\":{},\"f:hostIP\":{},\"f:phase\":{},\"f:podIP\":{},\"f:podIPs\":{\".\":{},\"k:{\\\"ip\\\":\\\"10.244.0.6\\\"}\":{\".\":{},\"f:ip\":{}}},\"f:startTime\":{}}}}]},\"spec\":{\"volumes\":[{\"name\":\"default-token-2gfb4\",\"secret\":{\"secretName\":\"default-token-2gfb4\",\"defaultMode\":420}}],\"containers\":[{\"name\":\"k8s-openapi-tests-create-job\",\"image\":\"alpine\",\"command\":[\"sh\",\"-c\",\"exit $TEST_ARG\"],\"env\":[{\"name\":\"TEST_ARG\",\"value\":\"5\"}],\"resources\":{},\"volumeMounts\":[{\"name\":\"default-token-2gfb4\",\"readOnly\":true,\"mountPath\":\"/var/run/secrets/kubernetes.io/serviceaccount\"}],\"terminationMessagePath\":\"/dev/termination-log\",\"terminationMessagePolicy\":\"File\",\"imagePullPolicy\":\"Always\"}],\"restartPolicy\":\"Never\",\"terminationGracePeriodSeconds\":30,\"dnsPolicy\":\"ClusterFirst\",\"serviceAccountName\":\"default\",\"serviceAccount\":\"default\",\"nodeName\":\"v1.18-control-plane\",\"securityContext\":{},\"schedulerName\":\"default-scheduler\",\"tolerations\":[{\"key\":\"node.kubernetes.io/not-ready\",\"operator\":\"Exists\",\"effect\":\"NoExecute\",\"tolerationSeconds\":300},{\"key\":\"node.kubernetes.io/unreachable\",\"operator\":\"Exists\",\"effect\":\"NoExecute\",\"tolerationSeconds\":300}],\"priority\":0,\"enableServiceLinks\":true},\"status\":{\"phase\":\"Failed\",\"conditions\":[{\"type\":\"Initialized\",\"status\":\"True\",\"lastProbeTime\":null,\"lastTransitionTime\":\"2021-04-15T05:55:00Z\"},{\"type\":\"Ready\",\"status\":\"False\",\"lastProbeTime\":null,\"lastTransitionTime\":\"2021-04-15T05:55:00Z\",\"reason\":\"ContainersNotReady\",\"message\":\"containers with unready status: [k8s-openapi-tests-create-job]\"},{\"type\":\"ContainersReady\",\"status\":\"False\",\"lastProbeTime\":null,\"lastTransitionTime\":\"2021-04-15T05:55:00Z\",\"reason\":\"ContainersNotReady\",\"message\":\"containers with unready status: [k8s-openapi-tests-create-job]\"},{\"type\":\"PodScheduled\",\"status\":\"True\",\"lastProbeTime\":null,\"lastTransitionTime\":\"2021-04-15T05:55:00Z\"}],\"hostIP\":\"172.18.0.2\",\"podIP\":\"10.244.0.6\",\"podIPs\":[{\"ip\":\"10.244.0.6\"}],\"startTime\":\"2021-04-15T05:55:00Z\",\"containerStatuses\":[{\"name\":\"k8s-openapi-tests-create-job\",\"state\":{\"terminated\":{\"exitCode\":5,\"reason\":\"Error\",\"startedAt\":\"2021-04-15T05:55:12Z\",\"finishedAt\":\"2021-04-15T05:55:12Z\",\"containerID\":\"containerd://1f0fc78532524f0ecf6bad8d411cfc2327fde3ee7616d772a2b2f526cbee178b\"}},\"lastState\":{},\"ready\":false,\"restartCount\":0,\"image\":\"docker.io/library/alpine:latest\",\"imageID\":\"docker.io/library/alpine@sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f\",\"containerID\":\"containerd://1f0fc78532524f0ecf6bad8d411cfc2327fde3ee7616d772a2b2f526cbee178b\",\"started\":false}],\"qosClass\":\"BestEffort\"}}]}\n"
Expand Down

0 comments on commit 7901186

Please sign in to comment.