Skip to content

Commit 53195ea

Browse files
authored
Merge pull request #44510 from tengqm/fix-examples
Fix examples and examples tests
2 parents 8e747e0 + a2b9c21 commit 53195ea

File tree

4 files changed

+252
-575
lines changed

4 files changed

+252
-575
lines changed

content/en/examples/examples_test.go

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"strings"
2828
"testing"
2929

30+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3031
"k8s.io/apimachinery/pkg/runtime"
3132
"k8s.io/apimachinery/pkg/runtime/schema"
3233
"k8s.io/apimachinery/pkg/types"
@@ -65,7 +66,6 @@ import (
6566
storage_validation "k8s.io/kubernetes/pkg/apis/storage/validation"
6667

6768
"k8s.io/kubernetes/pkg/capabilities"
68-
"k8s.io/kubernetes/pkg/registry/batch/job"
6969

7070
// initialize install packages
7171
_ "k8s.io/kubernetes/pkg/apis/admissionregistration/install"
@@ -195,17 +195,13 @@ func validateObject(obj runtime.Object) (errors field.ErrorList) {
195195
case *api.Namespace:
196196
errors = validation.ValidateNamespace(t)
197197
case *api.PersistentVolume:
198-
opts := validation.PersistentVolumeSpecValidationOptions{
199-
AllowReadWriteOncePod: true,
200-
}
198+
opts := validation.PersistentVolumeSpecValidationOptions{}
201199
errors = validation.ValidatePersistentVolume(t, opts)
202200
case *api.PersistentVolumeClaim:
203201
if t.Namespace == "" {
204202
t.Namespace = api.NamespaceDefault
205203
}
206-
opts := validation.PersistentVolumeClaimSpecValidationOptions{
207-
AllowReadWriteOncePod: true,
208-
}
204+
opts := validation.PersistentVolumeClaimSpecValidationOptions{}
209205
errors = validation.ValidatePersistentVolumeClaim(t, opts)
210206
case *api.Pod:
211207
if t.Namespace == "" {
@@ -292,16 +288,34 @@ func validateObject(obj runtime.Object) (errors field.ErrorList) {
292288
if t.Namespace == "" {
293289
t.Namespace = api.NamespaceDefault
294290
}
291+
295292
// Job needs generateSelector called before validation, and job.Validate does this.
296-
// See: https://github.com/kubernetes/kubernetes/issues/20951#issuecomment-187787040
297-
t.ObjectMeta.UID = types.UID("fakeuid")
298293
if strings.Index(t.ObjectMeta.Name, "$") > -1 {
299294
t.ObjectMeta.Name = "skip-for-good"
300295
}
301-
errors = job.Strategy.Validate(nil, t)
296+
t.ObjectMeta.UID = types.UID("fakeuid")
297+
if t.Spec.Template.ObjectMeta.Labels == nil {
298+
t.Spec.Template.ObjectMeta.Labels = make(map[string]string)
299+
}
300+
t.Spec.Template.ObjectMeta.Labels["controller-uid"] = "fakeuid"
301+
t.Spec.Template.ObjectMeta.Labels["job-name"] = t.ObjectMeta.Name
302+
if t.Spec.Selector == nil {
303+
t.Spec.Selector = &metav1.LabelSelector{
304+
MatchLabels: map[string]string{
305+
"controller-uid": "fakeuid",
306+
"job-name": t.ObjectMeta.Name,
307+
},
308+
}
309+
}
310+
opts := batch_validation.JobValidationOptions{
311+
RequirePrefixedLabels: false,
312+
}
313+
errors = batch_validation.ValidateJob(t, opts)
314+
302315
// case *flowcontrol.FlowSchema:
303316
// TODO: This is still failing
304317
// errors = flowcontrol_validation.ValidateFlowSchema(t)
318+
305319
case *networking.Ingress:
306320
if t.Namespace == "" {
307321
t.Namespace = api.NamespaceDefault
@@ -314,8 +328,6 @@ func validateObject(obj runtime.Object) (errors field.ErrorList) {
314328
t.Namespace = api.NamespaceDefault
315329
}
316330
errors = networking_validation.ValidateNetworkPolicy(t, netValidationOptions)
317-
case *policy.PodSecurityPolicy:
318-
errors = policy_validation.ValidatePodSecurityPolicy(t)
319331
case *policy.PodDisruptionBudget:
320332
if t.Namespace == "" {
321333
t.Namespace = api.NamespaceDefault
@@ -509,7 +521,9 @@ func TestExampleObjectSchemas(t *testing.T) {
509521
"indexed-job-vol": {&batch.Job{}},
510522
},
511523
"application/job/rabbitmq": {
512-
"job": {&batch.Job{}},
524+
"job": {&batch.Job{}},
525+
"rabbitmq-statefulset": {&apps.StatefulSet{}},
526+
"rabbitmq-service": {&api.Service{}},
513527
},
514528
"application/job/redis": {
515529
"job": {&batch.Job{}},
@@ -671,18 +685,15 @@ func TestExampleObjectSchemas(t *testing.T) {
671685
"pv-pod": {&api.Pod{}},
672686
"pv-volume": {&api.PersistentVolume{}},
673687
"redis": {&api.Pod{}},
688+
"projected-clustertrustbundle": {&api.Pod{}},
674689
},
675690
"pods/topology-spread-constraints": {
676691
"one-constraint": {&api.Pod{}},
677692
"one-constraint-with-nodeaffinity": {&api.Pod{}},
678693
"two-constraints": {&api.Pod{}},
679694
},
680695
"policy": {
681-
"baseline-psp": {&policy.PodSecurityPolicy{}},
682-
"example-psp": {&policy.PodSecurityPolicy{}},
683-
"priority-class-resourcequota": {&api.ResourceQuota{}},
684-
"privileged-psp": {&policy.PodSecurityPolicy{}},
685-
"restricted-psp": {&policy.PodSecurityPolicy{}},
696+
"priority-class-resourcequota": {&api.ResourceQuota{}},
686697
"zookeeper-pod-disruption-budget-maxunavailable": {&policy.PodDisruptionBudget{}},
687698
"zookeeper-pod-disruption-budget-minavailable": {&policy.PodDisruptionBudget{}},
688699
},
@@ -766,6 +777,13 @@ func TestExampleObjectSchemas(t *testing.T) {
766777
"audit": {
767778
"audit-policy": true,
768779
},
780+
// PSP is dropped in v1.29, do not validate them
781+
"policy": {
782+
"baseline-psp": true,
783+
"example-psp": true,
784+
"privileged-psp": true,
785+
"restricted-psp": true,
786+
},
769787
}
770788
capabilities.SetForTests(capabilities.Capabilities{
771789
AllowPrivileged: true,

content/en/examples/pods/storage/projected-clustertrustbundle.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ spec:
1313
readOnly: true
1414
serviceAccountName: default
1515
volumes:
16-
- name: root-certificates-vol
16+
- name: token-vol
1717
projected:
1818
sources:
1919
- clusterTrustBundle:

go.mod

Lines changed: 73 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
module k8s.io/website
22

3-
go 1.20
3+
go 1.21
44

55
require (
6-
k8s.io/apimachinery v0.28.0
6+
k8s.io/apimachinery v0.29.0
77
k8s.io/kubernetes v0.0.0
88
)
99

@@ -18,26 +18,26 @@ require (
1818
github.com/coreos/go-semver v0.3.1 // indirect
1919
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
2020
github.com/davecgh/go-spew v1.1.1 // indirect
21-
github.com/docker/distribution v2.8.2+incompatible // indirect
22-
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
21+
github.com/distribution/reference v0.5.0 // indirect
22+
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
2323
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
2424
github.com/felixge/httpsnoop v1.0.3 // indirect
25-
github.com/fsnotify/fsnotify v1.6.0 // indirect
26-
github.com/go-logr/logr v1.2.4 // indirect
25+
github.com/fsnotify/fsnotify v1.7.0 // indirect
26+
github.com/go-logr/logr v1.3.0 // indirect
2727
github.com/go-logr/stdr v1.2.2 // indirect
2828
github.com/go-openapi/jsonpointer v0.19.6 // indirect
2929
github.com/go-openapi/jsonreference v0.20.2 // indirect
3030
github.com/go-openapi/swag v0.22.3 // indirect
3131
github.com/gogo/protobuf v1.3.2 // indirect
3232
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
3333
github.com/golang/protobuf v1.5.3 // indirect
34-
github.com/google/cel-go v0.16.0 // indirect
34+
github.com/google/cel-go v0.17.7 // indirect
3535
github.com/google/gnostic-models v0.6.8 // indirect
36-
github.com/google/go-cmp v0.5.9 // indirect
36+
github.com/google/go-cmp v0.6.0 // indirect
3737
github.com/google/gofuzz v1.2.0 // indirect
3838
github.com/google/uuid v1.3.0 // indirect
3939
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
40-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
40+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
4141
github.com/imdario/mergo v0.3.6 // indirect
4242
github.com/inconshreveable/mousetrap v1.1.0 // indirect
4343
github.com/josharian/intern v1.0.0 // indirect
@@ -57,87 +57,85 @@ require (
5757
github.com/spf13/cobra v1.7.0 // indirect
5858
github.com/spf13/pflag v1.0.5 // indirect
5959
github.com/stoewer/go-strcase v1.2.0 // indirect
60-
go.etcd.io/etcd/api/v3 v3.5.9 // indirect
61-
go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
62-
go.etcd.io/etcd/client/v3 v3.5.9 // indirect
63-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 // indirect
64-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.1 // indirect
65-
go.opentelemetry.io/otel v1.10.0 // indirect
66-
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
67-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
68-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
69-
go.opentelemetry.io/otel/metric v0.31.0 // indirect
70-
go.opentelemetry.io/otel/sdk v1.10.0 // indirect
71-
go.opentelemetry.io/otel/trace v1.10.0 // indirect
72-
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
73-
go.uber.org/atomic v1.10.0 // indirect
60+
go.etcd.io/etcd/api/v3 v3.5.10 // indirect
61+
go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect
62+
go.etcd.io/etcd/client/v3 v3.5.10 // indirect
63+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.42.0 // indirect
64+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 // indirect
65+
go.opentelemetry.io/otel v1.19.0 // indirect
66+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
67+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
68+
go.opentelemetry.io/otel/metric v1.19.0 // indirect
69+
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
70+
go.opentelemetry.io/otel/trace v1.19.0 // indirect
71+
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
7472
go.uber.org/multierr v1.11.0 // indirect
75-
go.uber.org/zap v1.19.0 // indirect
76-
golang.org/x/crypto v0.11.0 // indirect
73+
go.uber.org/zap v1.26.0 // indirect
74+
golang.org/x/crypto v0.16.0 // indirect
7775
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
78-
golang.org/x/net v0.13.0 // indirect
79-
golang.org/x/oauth2 v0.8.0 // indirect
80-
golang.org/x/sync v0.2.0 // indirect
81-
golang.org/x/sys v0.10.0 // indirect
82-
golang.org/x/term v0.10.0 // indirect
83-
golang.org/x/text v0.11.0 // indirect
76+
golang.org/x/net v0.19.0 // indirect
77+
golang.org/x/oauth2 v0.10.0 // indirect
78+
golang.org/x/sync v0.5.0 // indirect
79+
golang.org/x/sys v0.15.0 // indirect
80+
golang.org/x/term v0.15.0 // indirect
81+
golang.org/x/text v0.14.0 // indirect
8482
golang.org/x/time v0.3.0 // indirect
8583
google.golang.org/appengine v1.6.7 // indirect
86-
google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect
87-
google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect
88-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
89-
google.golang.org/grpc v1.54.0 // indirect
90-
google.golang.org/protobuf v1.30.0 // indirect
84+
google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 // indirect
85+
google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e // indirect
86+
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
87+
google.golang.org/grpc v1.58.3 // indirect
88+
google.golang.org/protobuf v1.31.0 // indirect
9189
gopkg.in/inf.v0 v0.9.1 // indirect
9290
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
9391
gopkg.in/yaml.v2 v2.4.0 // indirect
9492
gopkg.in/yaml.v3 v3.0.1 // indirect
95-
k8s.io/api v0.28.0 // indirect
93+
k8s.io/api v0.29.0 // indirect
9694
k8s.io/apiextensions-apiserver v0.0.0 // indirect
97-
k8s.io/apiserver v0.28.0 // indirect
98-
k8s.io/client-go v0.28.0 // indirect
95+
k8s.io/apiserver v0.29.0 // indirect
96+
k8s.io/client-go v0.29.0 // indirect
9997
k8s.io/cloud-provider v0.0.0 // indirect
100-
k8s.io/component-base v0.28.0 // indirect
101-
k8s.io/component-helpers v0.28.0 // indirect
102-
k8s.io/controller-manager v0.28.0 // indirect
103-
k8s.io/klog/v2 v2.100.1 // indirect
104-
k8s.io/kms v0.28.0 // indirect
105-
k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect
98+
k8s.io/component-base v0.29.0 // indirect
99+
k8s.io/component-helpers v0.29.0 // indirect
100+
k8s.io/controller-manager v0.29.0 // indirect
101+
k8s.io/klog/v2 v2.110.1 // indirect
102+
k8s.io/kms v0.29.0 // indirect
103+
k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e // indirect
106104
k8s.io/kubelet v0.0.0 // indirect
107-
k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect
108-
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2 // indirect
105+
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
106+
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.28.0 // indirect
109107
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
110-
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
108+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
111109
sigs.k8s.io/yaml v1.3.0 // indirect
112110
)
113111

114112
replace (
115-
k8s.io/api => k8s.io/api v0.28.0
116-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.28.0
117-
k8s.io/apimachinery => k8s.io/apimachinery v0.28.0
118-
k8s.io/apiserver => k8s.io/apiserver v0.28.0
119-
k8s.io/cli-runtime => k8s.io/cli-runtime v0.28.0
120-
k8s.io/client-go => k8s.io/client-go v0.28.0
121-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.28.0
122-
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.28.0
123-
k8s.io/code-generator => k8s.io/code-generator v0.28.0
124-
k8s.io/component-base => k8s.io/component-base v0.28.0
125-
k8s.io/component-helpers => k8s.io/component-helpers v0.28.0
126-
k8s.io/controller-manager => k8s.io/controller-manager v0.28.0
127-
k8s.io/cri-api => k8s.io/cri-api v0.28.0
128-
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.28.0
129-
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.28.0
130-
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.28.0
131-
k8s.io/kube-proxy => k8s.io/kube-proxy v0.28.0
132-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.28.0
133-
k8s.io/kubectl => k8s.io/kubectl v0.28.0
134-
k8s.io/kubelet => k8s.io/kubelet v0.28.0
113+
k8s.io/api => k8s.io/api v0.29.0
114+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.0
115+
k8s.io/apimachinery => k8s.io/apimachinery v0.29.0
116+
k8s.io/apiserver => k8s.io/apiserver v0.29.0
117+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.29.0
118+
k8s.io/client-go => k8s.io/client-go v0.29.0
119+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.29.0
120+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.29.0
121+
k8s.io/code-generator => k8s.io/code-generator v0.29.0
122+
k8s.io/component-base => k8s.io/component-base v0.29.0
123+
k8s.io/component-helpers => k8s.io/component-helpers v0.29.0
124+
k8s.io/controller-manager => k8s.io/controller-manager v0.29.0
125+
k8s.io/cri-api => k8s.io/cri-api v0.29.0
126+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.29.0
127+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.29.0
128+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.29.0
129+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.29.0
130+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.29.0
131+
k8s.io/kubectl => k8s.io/kubectl v0.29.0
132+
k8s.io/kubelet => k8s.io/kubelet v0.29.0
135133
k8s.io/kubernetes => ../kubernetes
136-
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.28.0
137-
k8s.io/metrics => k8s.io/metrics v0.28.0
138-
k8s.io/mount-utils => k8s.io/mount-utils v0.28.0
139-
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.28.0
140-
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.28.0
141-
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.28.0
142-
k8s.io/sample-controller => k8s.io/sample-controller v0.28.0
134+
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.29.0
135+
k8s.io/metrics => k8s.io/metrics v0.29.0
136+
k8s.io/mount-utils => k8s.io/mount-utils v0.29.0
137+
k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.29.0
138+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.0
139+
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.29.0
140+
k8s.io/sample-controller => k8s.io/sample-controller v0.29.0
143141
)

0 commit comments

Comments
 (0)