Code change:
<del> { "kind": "ValidatingAdmissionPolicy", "apiVersion": "admissionregistration.k8s.io/v1alpha1", "metadata": { "name": "nameValue", "generateName": "generateNameValue", "namespace": "namespaceValue", "selfLink": "selfLinkValue", "uid": "uidValue", "resourceVersion": "resourceVersionValue", "generation": 7, "creationTimestamp": "2008-01-01T01:01:01Z", "deletionTimestamp": "2009-01-01T01:01:01Z", "deletionGracePeriodSeconds": 10, "labels": { "labelsKey": "labelsValue" }, "annotations": { "annotationsKey": "annotationsValue" }, "ownerReferences": [ { "apiVersion": "apiVersionValue", "kind": "kindValue", "name": "nameValue", "uid": "uidValue", "controller": true, "blockOwnerDeletion": true } ], "finalizers": [ "finalizersValue" ], "managedFields": [ { "manager": "managerValue", "operation": "operationValue", "apiVersion": "apiVersionValue", "time": "2004-01-01T01:01:01Z", "fieldsType": "fieldsTypeValue", "fieldsV1": {}, "subresource": "subresourceValue" } ] }, "spec": { "paramKind": { "apiVersion": "apiVersionValue", "kind": "kindValue" }, "matchConstraints": { "namespaceSelector": { "matchLabels": { "matchLabelsKey": "matchLabelsValue" }, "matchExpressions": [ { "key": "keyValue", "operator": "operatorValue", "values": [ "valuesValue" ] } ] }, "objectSelector": { "matchLabels": { "matchLabelsKey": "matchLabelsValue" }, "matchExpressions": [ { "key": "keyValue", "operator": "operatorValue", "values": [ "valuesValue" ] } ] }, "resourceRules": [ { "resourceNames": [ "resourceNamesValue" ], "operations": [ "operationsValue" ], "apiGroups": [ "apiGroupsValue" ], "apiVersions": [ "apiVersionsValue" ], "resources": [ "resourcesValue" ], "scope": "scopeValue" } ], "excludeResourceRules": [ { "resourceNames": [ "resourceNamesValue" ], "operations": [ "operationsValue" ], "apiGroups": [ "apiGroupsValue" ], "apiVersions": [ "apiVersionsValue" ], "resources": [ "resourcesValue" ], "scope": "scopeValue" } ], "matchPolicy": "matchPolicyValue" }, "validations": [ { "expression": "expressionValue", "message": "messageValue", "reason": "reasonValue", "messageExpression": "messageExpressionValue" } ], "failurePolicy": "failurePolicyValue", "auditAnnotations": [ { "key": "keyValue", "valueExpression": "valueExpressionValue" } ], "matchConditions": [ { "name": "nameValue", "expression": "expressionValue" } ], "variables": null }, "status": { "observedGeneration": 1, "typeChecking": { "expressionWarnings": [ { "fieldRef": "fieldRefValue", "warning": "warningValue" } ] }, "conditions": [ { "type": "typeValue", "status": "statusValue", "observedGeneration": 3, "lastTransitionTime": "2004-01-01T01:01:01Z", "reason": "reasonValue", "message": "messageValue" } ] } } </del>  No newline at end of file

Related discussion:
text: spec.variables should be marked omitempty. I'm trying to create a validating admission policy that uses in v1.27 as follows: I'm setting : to "Strict" in CreateOptions so that the server will reject requests with unknown fields but it complains that the don't exist in v1.27 and it does make sense because this field was introduced in v1.28: I'm using a 1.28 client.
/sig api-machinery
/assign
/assign /triage accepted
Thanks for raising this! /cc