Here is the config of the Ingress object:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
labels:
app: test-ingress
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 1024m
nginx.ingress.kubernetes.io/proxy-read-timeout: 5000
nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
data:
proxy-hide-headers: "Server"
server-tokens: "False"
spec:
rules:
...When I do kubectl apply to create this Ingress I got the next error:
Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Ingress): unknown field "data" in io.k8s.api.networking.v1beta1.IngressThe cluster version is 1.21.0.
After a long search in google didn't find any clue why this error can happen, didn't find any deprecation of this field. Please help.
So looking by error it says that apiversion (networking.k8s.io/v1beta1) you mentioned in yaml file is unable to identify the object data.
It looks like policies version has been changed from v1beta1 to v1. could you verify the version you have or change it to v1 and try. Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
Thanks
data is an invalid object for the api-resource ingress.
data:
proxy-hide-headers: "Server"
server-tokens: "False"remove the above fields and try to add them via a configmap for the ingress.
configmap.yaml
apiVersion: v1
data:
proxy-hide-headers: "Server"
server-tokens: "False"
kind: ConfigMap
metadata:
name: test-ingress-cmAnd configure your pod to mount the nginx configmap. To know the allowed objects always run kubectl explain api-resource eg: kubectl explain ingress.
More details on custom configuration can be found in kubernetes.github.io site.