Implementation on Network Policy Status (#107963)
* Implement status subresource in NetworkPolicy * add NetworkPolicyStatus generated files * Fix comments in netpol status review
This commit is contained in:
parent
fe8a663860
commit
42a1201082
239
api/openapi-spec/swagger.json
generated
239
api/openapi-spec/swagger.json
generated
@ -12944,6 +12944,10 @@
|
||||
"spec": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec",
|
||||
"description": "Specification of the desired behavior for this NetworkPolicy."
|
||||
},
|
||||
"status": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyStatus",
|
||||
"description": "Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
@ -13101,6 +13105,25 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"io.k8s.api.networking.v1.NetworkPolicyStatus": {
|
||||
"description": "NetworkPolicyStatus describe the current state of the NetworkPolicy.",
|
||||
"properties": {
|
||||
"conditions": {
|
||||
"description": "Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state",
|
||||
"items": {
|
||||
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"
|
||||
},
|
||||
"type": "array",
|
||||
"x-kubernetes-list-map-keys": [
|
||||
"type"
|
||||
],
|
||||
"x-kubernetes-list-type": "map",
|
||||
"x-kubernetes-patch-merge-key": "type",
|
||||
"x-kubernetes-patch-strategy": "merge"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"io.k8s.api.networking.v1.ServiceBackendPort": {
|
||||
"description": "ServiceBackendPort is the service port being referenced.",
|
||||
"properties": {
|
||||
@ -73094,6 +73117,222 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status": {
|
||||
"get": {
|
||||
"consumes": [
|
||||
"*/*"
|
||||
],
|
||||
"description": "read status of the specified NetworkPolicy",
|
||||
"operationId": "readNetworkingV1NamespacedNetworkPolicyStatus",
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Unauthorized"
|
||||
}
|
||||
},
|
||||
"schemes": [
|
||||
"https"
|
||||
],
|
||||
"tags": [
|
||||
"networking_v1"
|
||||
],
|
||||
"x-kubernetes-action": "get",
|
||||
"x-kubernetes-group-version-kind": {
|
||||
"group": "networking.k8s.io",
|
||||
"kind": "NetworkPolicy",
|
||||
"version": "v1"
|
||||
}
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"description": "name of the NetworkPolicy",
|
||||
"in": "path",
|
||||
"name": "name",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
},
|
||||
{
|
||||
"description": "object name and auth scope, such as for teams and projects",
|
||||
"in": "path",
|
||||
"name": "namespace",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
},
|
||||
{
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"in": "query",
|
||||
"name": "pretty",
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
],
|
||||
"patch": {
|
||||
"consumes": [
|
||||
"application/json-patch+json",
|
||||
"application/merge-patch+json",
|
||||
"application/strategic-merge-patch+json",
|
||||
"application/apply-patch+yaml"
|
||||
],
|
||||
"description": "partially update status of the specified NetworkPolicy",
|
||||
"operationId": "patchNetworkingV1NamespacedNetworkPolicyStatus",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
|
||||
"in": "query",
|
||||
"name": "dryRun",
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
},
|
||||
{
|
||||
"description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).",
|
||||
"in": "query",
|
||||
"name": "fieldManager",
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
},
|
||||
{
|
||||
"description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
|
||||
"in": "query",
|
||||
"name": "fieldValidation",
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
},
|
||||
{
|
||||
"description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.",
|
||||
"in": "query",
|
||||
"name": "force",
|
||||
"type": "boolean",
|
||||
"uniqueItems": true
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"201": {
|
||||
"description": "Created",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Unauthorized"
|
||||
}
|
||||
},
|
||||
"schemes": [
|
||||
"https"
|
||||
],
|
||||
"tags": [
|
||||
"networking_v1"
|
||||
],
|
||||
"x-kubernetes-action": "patch",
|
||||
"x-kubernetes-group-version-kind": {
|
||||
"group": "networking.k8s.io",
|
||||
"kind": "NetworkPolicy",
|
||||
"version": "v1"
|
||||
}
|
||||
},
|
||||
"put": {
|
||||
"consumes": [
|
||||
"*/*"
|
||||
],
|
||||
"description": "replace status of the specified NetworkPolicy",
|
||||
"operationId": "replaceNetworkingV1NamespacedNetworkPolicyStatus",
|
||||
"parameters": [
|
||||
{
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
|
||||
"in": "query",
|
||||
"name": "dryRun",
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
},
|
||||
{
|
||||
"description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.",
|
||||
"in": "query",
|
||||
"name": "fieldManager",
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
},
|
||||
{
|
||||
"description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
|
||||
"in": "query",
|
||||
"name": "fieldValidation",
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
],
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/yaml",
|
||||
"application/vnd.kubernetes.protobuf"
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"201": {
|
||||
"description": "Created",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Unauthorized"
|
||||
}
|
||||
},
|
||||
"schemes": [
|
||||
"https"
|
||||
],
|
||||
"tags": [
|
||||
"networking_v1"
|
||||
],
|
||||
"x-kubernetes-action": "put",
|
||||
"x-kubernetes-group-version-kind": {
|
||||
"group": "networking.k8s.io",
|
||||
"kind": "NetworkPolicy",
|
||||
"version": "v1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"/apis/networking.k8s.io/v1/networkpolicies": {
|
||||
"get": {
|
||||
"consumes": [
|
||||
|
@ -470,6 +470,11 @@
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicySpec",
|
||||
"default": {},
|
||||
"description": "Specification of the desired behavior for this NetworkPolicy."
|
||||
},
|
||||
"status": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicyStatus",
|
||||
"default": {},
|
||||
"description": "Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
@ -637,6 +642,26 @@
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"io.k8s.api.networking.v1.NetworkPolicyStatus": {
|
||||
"description": "NetworkPolicyStatus describe the current state of the NetworkPolicy.",
|
||||
"properties": {
|
||||
"conditions": {
|
||||
"description": "Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Condition",
|
||||
"default": {}
|
||||
},
|
||||
"type": "array",
|
||||
"x-kubernetes-list-map-keys": [
|
||||
"type"
|
||||
],
|
||||
"x-kubernetes-list-type": "map",
|
||||
"x-kubernetes-patch-merge-key": "type",
|
||||
"x-kubernetes-patch-strategy": "merge"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"io.k8s.api.networking.v1.ServiceBackendPort": {
|
||||
"description": "ServiceBackendPort is the service port being referenced.",
|
||||
"properties": {
|
||||
@ -759,6 +784,49 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"io.k8s.apimachinery.pkg.apis.meta.v1.Condition": {
|
||||
"description": "Condition contains details for one aspect of the current state of this API Resource.",
|
||||
"properties": {
|
||||
"lastTransitionTime": {
|
||||
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Time",
|
||||
"default": {},
|
||||
"description": "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable."
|
||||
},
|
||||
"message": {
|
||||
"default": "",
|
||||
"description": "message is a human readable message indicating details about the transition. This may be an empty string.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"reason": {
|
||||
"default": "",
|
||||
"description": "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.",
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"default": "",
|
||||
"description": "status of the condition, one of True, False, Unknown.",
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"default": "",
|
||||
"description": "type of condition in CamelCase or in foo.example.com/CamelCase.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type",
|
||||
"status",
|
||||
"lastTransitionTime",
|
||||
"reason",
|
||||
"message"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": {
|
||||
"description": "DeleteOptions may be provided when deleting an API object.",
|
||||
"properties": {
|
||||
@ -4324,6 +4392,251 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status": {
|
||||
"get": {
|
||||
"description": "read status of the specified NetworkPolicy",
|
||||
"operationId": "readNetworkingV1NamespacedNetworkPolicyStatus",
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/vnd.kubernetes.protobuf": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/yaml": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "OK"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"networking_v1"
|
||||
]
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"description": "name of the NetworkPolicy",
|
||||
"in": "path",
|
||||
"name": "name",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "object name and auth scope, such as for teams and projects",
|
||||
"in": "path",
|
||||
"name": "namespace",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "If 'true', then the output is pretty printed.",
|
||||
"in": "query",
|
||||
"name": "pretty",
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"patch": {
|
||||
"description": "partially update status of the specified NetworkPolicy",
|
||||
"operationId": "patchNetworkingV1NamespacedNetworkPolicyStatus",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
|
||||
"in": "query",
|
||||
"name": "dryRun",
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.",
|
||||
"in": "query",
|
||||
"name": "force",
|
||||
"schema": {
|
||||
"type": "boolean",
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).",
|
||||
"in": "query",
|
||||
"name": "fieldManager",
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
|
||||
"in": "query",
|
||||
"name": "fieldValidation",
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.apimachinery.pkg.apis.meta.v1.Patch"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/vnd.kubernetes.protobuf": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/yaml": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "OK"
|
||||
},
|
||||
"201": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/vnd.kubernetes.protobuf": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/yaml": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Created"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"networking_v1"
|
||||
]
|
||||
},
|
||||
"put": {
|
||||
"description": "replace status of the specified NetworkPolicy",
|
||||
"operationId": "replaceNetworkingV1NamespacedNetworkPolicyStatus",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
|
||||
"in": "query",
|
||||
"name": "dryRun",
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.",
|
||||
"in": "query",
|
||||
"name": "fieldManager",
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields, provided that the `ServerSideFieldValidation` feature gate is also enabled. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23 and is the default behavior when the `ServerSideFieldValidation` feature gate is disabled. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default when the `ServerSideFieldValidation` feature gate is enabled. - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
|
||||
"in": "query",
|
||||
"name": "fieldValidation",
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"uniqueItems": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/vnd.kubernetes.protobuf": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/yaml": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "OK"
|
||||
},
|
||||
"201": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/vnd.kubernetes.protobuf": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
},
|
||||
"application/yaml": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/io.k8s.api.networking.v1.NetworkPolicy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Created"
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
"networking_v1"
|
||||
]
|
||||
}
|
||||
},
|
||||
"/apis/networking.k8s.io/v1/networkpolicies": {
|
||||
"get": {
|
||||
"description": "list or watch objects of kind NetworkPolicy",
|
||||
|
@ -355,6 +355,16 @@ func RegisterConversions(s *runtime.Scheme) error {
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*v1beta1.NetworkPolicyStatus)(nil), (*networking.NetworkPolicyStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1beta1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(a.(*v1beta1.NetworkPolicyStatus), b.(*networking.NetworkPolicyStatus), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyStatus)(nil), (*v1beta1.NetworkPolicyStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_networking_NetworkPolicyStatus_To_v1beta1_NetworkPolicyStatus(a.(*networking.NetworkPolicyStatus), b.(*v1beta1.NetworkPolicyStatus), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*v1beta1.PodSecurityPolicy)(nil), (*policy.PodSecurityPolicy)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1beta1_PodSecurityPolicy_To_policy_PodSecurityPolicy(a.(*v1beta1.PodSecurityPolicy), b.(*policy.PodSecurityPolicy), scope)
|
||||
}); err != nil {
|
||||
@ -1520,6 +1530,9 @@ func autoConvert_v1beta1_NetworkPolicy_To_networking_NetworkPolicy(in *v1beta1.N
|
||||
if err := Convert_v1beta1_NetworkPolicySpec_To_networking_NetworkPolicySpec(&in.Spec, &out.Spec, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_v1beta1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(&in.Status, &out.Status, s); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -1533,6 +1546,9 @@ func autoConvert_networking_NetworkPolicy_To_v1beta1_NetworkPolicy(in *networkin
|
||||
if err := Convert_networking_NetworkPolicySpec_To_v1beta1_NetworkPolicySpec(&in.Spec, &out.Spec, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_networking_NetworkPolicyStatus_To_v1beta1_NetworkPolicyStatus(&in.Status, &out.Status, s); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -1767,6 +1783,26 @@ func autoConvert_networking_NetworkPolicySpec_To_v1beta1_NetworkPolicySpec(in *n
|
||||
return nil
|
||||
}
|
||||
|
||||
func autoConvert_v1beta1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in *v1beta1.NetworkPolicyStatus, out *networking.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
out.Conditions = *(*[]metav1.Condition)(unsafe.Pointer(&in.Conditions))
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_v1beta1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus is an autogenerated conversion function.
|
||||
func Convert_v1beta1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in *v1beta1.NetworkPolicyStatus, out *networking.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
return autoConvert_v1beta1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_networking_NetworkPolicyStatus_To_v1beta1_NetworkPolicyStatus(in *networking.NetworkPolicyStatus, out *v1beta1.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
out.Conditions = *(*[]metav1.Condition)(unsafe.Pointer(&in.Conditions))
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_networking_NetworkPolicyStatus_To_v1beta1_NetworkPolicyStatus is an autogenerated conversion function.
|
||||
func Convert_networking_NetworkPolicyStatus_To_v1beta1_NetworkPolicyStatus(in *networking.NetworkPolicyStatus, out *v1beta1.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
return autoConvert_networking_NetworkPolicyStatus_To_v1beta1_NetworkPolicyStatus(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1beta1_PodSecurityPolicy_To_policy_PodSecurityPolicy(in *v1beta1.PodSecurityPolicy, out *policy.PodSecurityPolicy, s conversion.Scope) error {
|
||||
out.ObjectMeta = in.ObjectMeta
|
||||
if err := Convert_v1beta1_PodSecurityPolicySpec_To_policy_PodSecurityPolicySpec(&in.Spec, &out.Spec, s); err != nil {
|
||||
|
@ -33,6 +33,11 @@ type NetworkPolicy struct {
|
||||
// Specification of the desired behavior for this NetworkPolicy.
|
||||
// +optional
|
||||
Spec NetworkPolicySpec
|
||||
|
||||
// Status is the current state of the NetworkPolicy.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||||
// +optional
|
||||
Status NetworkPolicyStatus
|
||||
}
|
||||
|
||||
// PolicyType describes the NetworkPolicy type
|
||||
@ -195,6 +200,42 @@ type NetworkPolicyPeer struct {
|
||||
IPBlock *IPBlock
|
||||
}
|
||||
|
||||
// NetworkPolicyConditionType is the type for status conditions on
|
||||
// a NetworkPolicy. This type should be used with the
|
||||
// NetworkPolicyStatus.Conditions field.
|
||||
type NetworkPolicyConditionType string
|
||||
|
||||
const (
|
||||
// NetworkPolicyConditionStatusAccepted represents status of a Network Policy that could be properly parsed by
|
||||
// the Network Policy provider and will be implemented in the cluster
|
||||
NetworkPolicyConditionStatusAccepted NetworkPolicyConditionType = "Accepted"
|
||||
|
||||
// NetworkPolicyConditionStatusPartialFailure represents status of a Network Policy that could be partially
|
||||
// parsed by the Network Policy provider and may not be completely implemented due to a lack of a feature or some
|
||||
// other condition
|
||||
NetworkPolicyConditionStatusPartialFailure NetworkPolicyConditionType = "PartialFailure"
|
||||
|
||||
// NetworkPolicyConditionStatusFailure represents status of a Network Policy that could not be parsed by the
|
||||
// Network Policy provider and will not be implemented in the cluster
|
||||
NetworkPolicyConditionStatusFailure NetworkPolicyConditionType = "Failure"
|
||||
)
|
||||
|
||||
// NetworkPolicyConditionReason defines the set of reasons that explain why a
|
||||
// particular NetworkPolicy condition type has been raised.
|
||||
type NetworkPolicyConditionReason string
|
||||
|
||||
const (
|
||||
// NetworkPolicyConditionReasonFeatureNotSupported represents a reason where the Network Policy may not have been
|
||||
// implemented in the cluster due to a lack of some feature not supported by the Network Policy provider
|
||||
NetworkPolicyConditionReasonFeatureNotSupported NetworkPolicyConditionReason = "FeatureNotSupported"
|
||||
)
|
||||
|
||||
// NetworkPolicyStatus describe the current state of the NetworkPolicy.
|
||||
type NetworkPolicyStatus struct {
|
||||
// Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.
|
||||
Conditions []metav1.Condition
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// NetworkPolicyList is a list of NetworkPolicy objects.
|
||||
|
36
pkg/apis/networking/v1/zz_generated.conversion.go
generated
36
pkg/apis/networking/v1/zz_generated.conversion.go
generated
@ -272,6 +272,16 @@ func RegisterConversions(s *runtime.Scheme) error {
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*v1.NetworkPolicyStatus)(nil), (*networking.NetworkPolicyStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(a.(*v1.NetworkPolicyStatus), b.(*networking.NetworkPolicyStatus), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*networking.NetworkPolicyStatus)(nil), (*v1.NetworkPolicyStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_networking_NetworkPolicyStatus_To_v1_NetworkPolicyStatus(a.(*networking.NetworkPolicyStatus), b.(*v1.NetworkPolicyStatus), scope)
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := s.AddGeneratedConversionFunc((*v1.ServiceBackendPort)(nil), (*networking.ServiceBackendPort)(nil), func(a, b interface{}, scope conversion.Scope) error {
|
||||
return Convert_v1_ServiceBackendPort_To_networking_ServiceBackendPort(a.(*v1.ServiceBackendPort), b.(*networking.ServiceBackendPort), scope)
|
||||
}); err != nil {
|
||||
@ -698,6 +708,9 @@ func autoConvert_v1_NetworkPolicy_To_networking_NetworkPolicy(in *v1.NetworkPoli
|
||||
if err := Convert_v1_NetworkPolicySpec_To_networking_NetworkPolicySpec(&in.Spec, &out.Spec, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_v1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(&in.Status, &out.Status, s); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -711,6 +724,9 @@ func autoConvert_networking_NetworkPolicy_To_v1_NetworkPolicy(in *networking.Net
|
||||
if err := Convert_networking_NetworkPolicySpec_To_v1_NetworkPolicySpec(&in.Spec, &out.Spec, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_networking_NetworkPolicyStatus_To_v1_NetworkPolicyStatus(&in.Status, &out.Status, s); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -859,6 +875,26 @@ func Convert_networking_NetworkPolicySpec_To_v1_NetworkPolicySpec(in *networking
|
||||
return autoConvert_networking_NetworkPolicySpec_To_v1_NetworkPolicySpec(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in *v1.NetworkPolicyStatus, out *networking.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
out.Conditions = *(*[]metav1.Condition)(unsafe.Pointer(&in.Conditions))
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_v1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus is an autogenerated conversion function.
|
||||
func Convert_v1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in *v1.NetworkPolicyStatus, out *networking.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
return autoConvert_v1_NetworkPolicyStatus_To_networking_NetworkPolicyStatus(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_networking_NetworkPolicyStatus_To_v1_NetworkPolicyStatus(in *networking.NetworkPolicyStatus, out *v1.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
out.Conditions = *(*[]metav1.Condition)(unsafe.Pointer(&in.Conditions))
|
||||
return nil
|
||||
}
|
||||
|
||||
// Convert_networking_NetworkPolicyStatus_To_v1_NetworkPolicyStatus is an autogenerated conversion function.
|
||||
func Convert_networking_NetworkPolicyStatus_To_v1_NetworkPolicyStatus(in *networking.NetworkPolicyStatus, out *v1.NetworkPolicyStatus, s conversion.Scope) error {
|
||||
return autoConvert_networking_NetworkPolicyStatus_To_v1_NetworkPolicyStatus(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1_ServiceBackendPort_To_networking_ServiceBackendPort(in *v1.ServiceBackendPort, out *networking.ServiceBackendPort, s conversion.Scope) error {
|
||||
out.Name = in.Name
|
||||
out.Number = in.Number
|
||||
|
@ -182,6 +182,11 @@ func ValidateNetworkPolicyUpdate(update, old *networking.NetworkPolicy) field.Er
|
||||
return allErrs
|
||||
}
|
||||
|
||||
// ValidateNetworkPolicyStatusUpdate tests if an update to a NetworkPolicy status is valid
|
||||
func ValidateNetworkPolicyStatusUpdate(status, oldstatus networking.NetworkPolicyStatus, fldPath *field.Path) field.ErrorList {
|
||||
return unversionedvalidation.ValidateConditions(status.Conditions, fldPath.Child("conditions"))
|
||||
}
|
||||
|
||||
// ValidateIPBlock validates a cidr and the except fields of an IpBlock NetworkPolicyPeer
|
||||
func ValidateIPBlock(ipb *networking.IPBlock, fldPath *field.Path) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
|
@ -20,6 +20,7 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@ -459,6 +460,138 @@ func TestValidateNetworkPolicyUpdate(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateNetworkPolicyStatusUpdate(t *testing.T) {
|
||||
|
||||
type netpolStatusCases struct {
|
||||
obj networking.NetworkPolicyStatus
|
||||
expectedErrs field.ErrorList
|
||||
}
|
||||
|
||||
testCases := map[string]netpolStatusCases{
|
||||
"valid conditions": {
|
||||
obj: networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
LastTransitionTime: metav1.Time{
|
||||
Time: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusFailure),
|
||||
Status: metav1.ConditionFalse,
|
||||
LastTransitionTime: metav1.Time{
|
||||
Time: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
Reason: "RuleApplied",
|
||||
Message: "no error was found",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedErrs: field.ErrorList{},
|
||||
},
|
||||
"duplicate type": {
|
||||
obj: networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
LastTransitionTime: metav1.Time{
|
||||
Time: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionFalse,
|
||||
LastTransitionTime: metav1.Time{
|
||||
Time: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
Reason: string(networking.NetworkPolicyConditionReasonFeatureNotSupported),
|
||||
Message: "endport is not supported",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedErrs: field.ErrorList{field.Duplicate(field.NewPath("status").Child("conditions").Index(1).Child("type"),
|
||||
string(networking.NetworkPolicyConditionStatusAccepted))},
|
||||
},
|
||||
"invalid generation": {
|
||||
obj: networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
LastTransitionTime: metav1.Time{
|
||||
Time: time.Now().Add(-5 * time.Minute),
|
||||
},
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: -1,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedErrs: field.ErrorList{field.Invalid(field.NewPath("status").Child("conditions").Index(0).Child("observedGeneration"),
|
||||
int64(-1), "must be greater than or equal to zero")},
|
||||
},
|
||||
"invalid null transition time": {
|
||||
obj: networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 3,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedErrs: field.ErrorList{field.Required(field.NewPath("status").Child("conditions").Index(0).Child("lastTransitionTime"),
|
||||
"must be set")},
|
||||
},
|
||||
"multiple condition errors": {
|
||||
obj: networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: -1,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedErrs: field.ErrorList{
|
||||
field.Invalid(field.NewPath("status").Child("conditions").Index(0).Child("observedGeneration"),
|
||||
int64(-1), "must be greater than or equal to zero"),
|
||||
field.Required(field.NewPath("status").Child("conditions").Index(0).Child("lastTransitionTime"),
|
||||
"must be set"),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for testName, testCase := range testCases {
|
||||
errs := ValidateNetworkPolicyStatusUpdate(testCase.obj, networking.NetworkPolicyStatus{}, field.NewPath("status"))
|
||||
if len(errs) != len(testCase.expectedErrs) {
|
||||
t.Errorf("Test %s: Expected %d errors, got %d (%+v)", testName, len(testCase.expectedErrs), len(errs), errs)
|
||||
}
|
||||
|
||||
for i, err := range errs {
|
||||
if err.Error() != testCase.expectedErrs[i].Error() {
|
||||
t.Errorf("Test %s: Expected error: %v, got %v", testName, testCase.expectedErrs[i], err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestValidateIngress(t *testing.T) {
|
||||
serviceBackend := &networking.IngressServiceBackend{
|
||||
Name: "defaultbackend",
|
||||
|
24
pkg/apis/networking/zz_generated.deepcopy.go
generated
24
pkg/apis/networking/zz_generated.deepcopy.go
generated
@ -432,6 +432,7 @@ func (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
@ -644,6 +645,29 @@ func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus) {
|
||||
*out = *in
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]v1.Condition, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus.
|
||||
func (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(NetworkPolicyStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ServiceBackendPort) DeepCopyInto(out *ServiceBackendPort) {
|
||||
*out = *in
|
||||
|
@ -864,6 +864,13 @@ const (
|
||||
//
|
||||
// Enables maxUnavailable for StatefulSet
|
||||
MaxUnavailableStatefulSet featuregate.Feature = "MaxUnavailableStatefulSet"
|
||||
|
||||
// owner: @rikatz
|
||||
// kep: http://kep.k8s.io/2943
|
||||
// alpha: v1.24
|
||||
//
|
||||
// Enables NetworkPolicy status subresource
|
||||
NetworkPolicyStatus featuregate.Feature = "NetworkPolicyStatus"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -989,6 +996,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
||||
ServiceIPStaticSubrange: {Default: false, PreRelease: featuregate.Alpha},
|
||||
NodeOutOfServiceVolumeDetach: {Default: false, PreRelease: featuregate.Alpha},
|
||||
MaxUnavailableStatefulSet: {Default: false, PreRelease: featuregate.Alpha},
|
||||
NetworkPolicyStatus: {Default: false, PreRelease: featuregate.Alpha},
|
||||
|
||||
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
|
||||
// unintentionally on either side:
|
||||
|
98
pkg/generated/openapi/zz_generated.openapi.go
generated
98
pkg/generated/openapi/zz_generated.openapi.go
generated
@ -568,6 +568,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"k8s.io/api/extensions/v1beta1.NetworkPolicyPeer": schema_k8sio_api_extensions_v1beta1_NetworkPolicyPeer(ref),
|
||||
"k8s.io/api/extensions/v1beta1.NetworkPolicyPort": schema_k8sio_api_extensions_v1beta1_NetworkPolicyPort(ref),
|
||||
"k8s.io/api/extensions/v1beta1.NetworkPolicySpec": schema_k8sio_api_extensions_v1beta1_NetworkPolicySpec(ref),
|
||||
"k8s.io/api/extensions/v1beta1.NetworkPolicyStatus": schema_k8sio_api_extensions_v1beta1_NetworkPolicyStatus(ref),
|
||||
"k8s.io/api/extensions/v1beta1.PodSecurityPolicy": schema_k8sio_api_extensions_v1beta1_PodSecurityPolicy(ref),
|
||||
"k8s.io/api/extensions/v1beta1.PodSecurityPolicyList": schema_k8sio_api_extensions_v1beta1_PodSecurityPolicyList(ref),
|
||||
"k8s.io/api/extensions/v1beta1.PodSecurityPolicySpec": schema_k8sio_api_extensions_v1beta1_PodSecurityPolicySpec(ref),
|
||||
@ -680,6 +681,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
|
||||
"k8s.io/api/networking/v1.NetworkPolicyPeer": schema_k8sio_api_networking_v1_NetworkPolicyPeer(ref),
|
||||
"k8s.io/api/networking/v1.NetworkPolicyPort": schema_k8sio_api_networking_v1_NetworkPolicyPort(ref),
|
||||
"k8s.io/api/networking/v1.NetworkPolicySpec": schema_k8sio_api_networking_v1_NetworkPolicySpec(ref),
|
||||
"k8s.io/api/networking/v1.NetworkPolicyStatus": schema_k8sio_api_networking_v1_NetworkPolicyStatus(ref),
|
||||
"k8s.io/api/networking/v1.ServiceBackendPort": schema_k8sio_api_networking_v1_ServiceBackendPort(ref),
|
||||
"k8s.io/api/networking/v1beta1.HTTPIngressPath": schema_k8sio_api_networking_v1beta1_HTTPIngressPath(ref),
|
||||
"k8s.io/api/networking/v1beta1.HTTPIngressRuleValue": schema_k8sio_api_networking_v1beta1_HTTPIngressRuleValue(ref),
|
||||
@ -28627,11 +28629,18 @@ func schema_k8sio_api_extensions_v1beta1_NetworkPolicy(ref common.ReferenceCallb
|
||||
Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicySpec"),
|
||||
},
|
||||
},
|
||||
"status": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("k8s.io/api/extensions/v1beta1.NetworkPolicyStatus"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"k8s.io/api/extensions/v1beta1.NetworkPolicySpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||
"k8s.io/api/extensions/v1beta1.NetworkPolicySpec", "k8s.io/api/extensions/v1beta1.NetworkPolicyStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||
}
|
||||
}
|
||||
|
||||
@ -28906,6 +28915,45 @@ func schema_k8sio_api_extensions_v1beta1_NetworkPolicySpec(ref common.ReferenceC
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_extensions_v1beta1_NetworkPolicyStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "NetworkPolicyStatus describe the current state of the NetworkPolicy.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"conditions": {
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
"x-kubernetes-list-map-keys": []interface{}{
|
||||
"type",
|
||||
},
|
||||
"x-kubernetes-list-type": "map",
|
||||
"x-kubernetes-patch-merge-key": "type",
|
||||
"x-kubernetes-patch-strategy": "merge",
|
||||
},
|
||||
},
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state",
|
||||
Type: []string{"array"},
|
||||
Items: &spec.SchemaOrArray{
|
||||
Schema: &spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1.Condition"},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_extensions_v1beta1_PodSecurityPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
@ -33680,11 +33728,18 @@ func schema_k8sio_api_networking_v1_NetworkPolicy(ref common.ReferenceCallback)
|
||||
Ref: ref("k8s.io/api/networking/v1.NetworkPolicySpec"),
|
||||
},
|
||||
},
|
||||
"status": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("k8s.io/api/networking/v1.NetworkPolicyStatus"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"k8s.io/api/networking/v1.NetworkPolicySpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||
"k8s.io/api/networking/v1.NetworkPolicySpec", "k8s.io/api/networking/v1.NetworkPolicyStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
|
||||
}
|
||||
}
|
||||
|
||||
@ -33959,6 +34014,45 @@ func schema_k8sio_api_networking_v1_NetworkPolicySpec(ref common.ReferenceCallba
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_networking_v1_NetworkPolicyStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "NetworkPolicyStatus describe the current state of the NetworkPolicy.",
|
||||
Type: []string{"object"},
|
||||
Properties: map[string]spec.Schema{
|
||||
"conditions": {
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
"x-kubernetes-list-map-keys": []interface{}{
|
||||
"type",
|
||||
},
|
||||
"x-kubernetes-list-type": "map",
|
||||
"x-kubernetes-patch-merge-key": "type",
|
||||
"x-kubernetes-patch-strategy": "merge",
|
||||
},
|
||||
},
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state",
|
||||
Type: []string{"array"},
|
||||
Items: &spec.SchemaOrArray{
|
||||
Schema: &spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Default: map[string]interface{}{},
|
||||
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1.Condition"},
|
||||
}
|
||||
}
|
||||
|
||||
func schema_k8sio_api_networking_v1_ServiceBackendPort(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
|
@ -17,6 +17,11 @@ limitations under the License.
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"sigs.k8s.io/structured-merge-diff/v4/fieldpath"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apiserver/pkg/registry/generic"
|
||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||
@ -34,24 +39,29 @@ type REST struct {
|
||||
}
|
||||
|
||||
// NewREST returns a RESTStorage object that will work against NetworkPolicies.
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, error) {
|
||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, error) {
|
||||
store := &genericregistry.Store{
|
||||
NewFunc: func() runtime.Object { return &networkingapi.NetworkPolicy{} },
|
||||
NewListFunc: func() runtime.Object { return &networkingapi.NetworkPolicyList{} },
|
||||
DefaultQualifiedResource: networkingapi.Resource("networkpolicies"),
|
||||
|
||||
CreateStrategy: networkpolicy.Strategy,
|
||||
UpdateStrategy: networkpolicy.Strategy,
|
||||
DeleteStrategy: networkpolicy.Strategy,
|
||||
CreateStrategy: networkpolicy.Strategy,
|
||||
UpdateStrategy: networkpolicy.Strategy,
|
||||
DeleteStrategy: networkpolicy.Strategy,
|
||||
ResetFieldsStrategy: networkpolicy.Strategy,
|
||||
|
||||
TableConvertor: printerstorage.TableConvertor{TableGenerator: printers.NewTableGenerator().With(printersinternal.AddHandlers)},
|
||||
}
|
||||
options := &generic.StoreOptions{RESTOptions: optsGetter}
|
||||
if err := store.CompleteWithOptions(options); err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
return &REST{store}, nil
|
||||
statusStore := *store
|
||||
statusStore.UpdateStrategy = networkpolicy.StatusStrategy
|
||||
statusStore.ResetFieldsStrategy = networkpolicy.StatusStrategy
|
||||
return &REST{store}, &StatusREST{store: &statusStore}, nil
|
||||
|
||||
}
|
||||
|
||||
// Implement ShortNamesProvider
|
||||
@ -61,3 +71,30 @@ var _ rest.ShortNamesProvider = &REST{}
|
||||
func (r *REST) ShortNames() []string {
|
||||
return []string{"netpol"}
|
||||
}
|
||||
|
||||
// StatusREST implements the REST endpoint for changing the status of an ingress
|
||||
type StatusREST struct {
|
||||
store *genericregistry.Store
|
||||
}
|
||||
|
||||
// New creates an instance of the StatusREST object
|
||||
func (r *StatusREST) New() runtime.Object {
|
||||
return &networkingapi.NetworkPolicy{}
|
||||
}
|
||||
|
||||
// Get retrieves the object from the storage. It is required to support Patch.
|
||||
func (r *StatusREST) Get(ctx context.Context, name string, options *metav1.GetOptions) (runtime.Object, error) {
|
||||
return r.store.Get(ctx, name, options)
|
||||
}
|
||||
|
||||
// Update alters the status subset of an object.
|
||||
func (r *StatusREST) Update(ctx context.Context, name string, objInfo rest.UpdatedObjectInfo, createValidation rest.ValidateObjectFunc, updateValidation rest.ValidateObjectUpdateFunc, forceAllowCreate bool, options *metav1.UpdateOptions) (runtime.Object, bool, error) {
|
||||
// We are explicitly setting forceAllowCreate to false in the call to the underlying storage because
|
||||
// subresources should never allow create on update.
|
||||
return r.store.Update(ctx, name, objInfo, createValidation, updateValidation, false, options)
|
||||
}
|
||||
|
||||
// GetResetFields implements rest.ResetFieldsStrategy
|
||||
func (r *StatusREST) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set {
|
||||
return r.store.GetResetFields()
|
||||
}
|
||||
|
@ -18,22 +18,28 @@ package storage
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/fields"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||
"k8s.io/apiserver/pkg/registry/generic"
|
||||
genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/networking"
|
||||
_ "k8s.io/kubernetes/pkg/apis/networking/install"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
"k8s.io/kubernetes/pkg/registry/registrytest"
|
||||
)
|
||||
|
||||
func newStorage(t *testing.T) (*REST, *etcd3testing.EtcdTestServer) {
|
||||
func newStorage(t *testing.T) (*REST, *StatusREST, *etcd3testing.EtcdTestServer) {
|
||||
etcdStorage, server := registrytest.NewEtcdStorage(t, networking.GroupName)
|
||||
restOptions := generic.RESTOptions{
|
||||
StorageConfig: etcdStorage,
|
||||
@ -41,11 +47,11 @@ func newStorage(t *testing.T) (*REST, *etcd3testing.EtcdTestServer) {
|
||||
DeleteCollectionWorkers: 1,
|
||||
ResourcePrefix: "networkpolicies",
|
||||
}
|
||||
rest, err := NewREST(restOptions)
|
||||
rest, status, err := NewREST(restOptions)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error from REST storage: %v", err)
|
||||
}
|
||||
return rest, server
|
||||
return rest, status, server
|
||||
}
|
||||
|
||||
func validNetworkPolicy() *networking.NetworkPolicy {
|
||||
@ -70,11 +76,12 @@ func validNetworkPolicy() *networking.NetworkPolicy {
|
||||
},
|
||||
},
|
||||
},
|
||||
Status: networking.NetworkPolicyStatus{},
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreate(t *testing.T) {
|
||||
storage, server := newStorage(t)
|
||||
storage, _, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
test := genericregistrytest.New(t, storage.Store)
|
||||
@ -92,7 +99,7 @@ func TestCreate(t *testing.T) {
|
||||
|
||||
func TestUpdate(t *testing.T) {
|
||||
protocolICMP := api.Protocol("ICMP")
|
||||
storage, server := newStorage(t)
|
||||
storage, _, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
test := genericregistrytest.New(t, storage.Store)
|
||||
@ -135,7 +142,7 @@ func TestUpdate(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDelete(t *testing.T) {
|
||||
storage, server := newStorage(t)
|
||||
storage, _, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
test := genericregistrytest.New(t, storage.Store)
|
||||
@ -143,7 +150,7 @@ func TestDelete(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGet(t *testing.T) {
|
||||
storage, server := newStorage(t)
|
||||
storage, _, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
test := genericregistrytest.New(t, storage.Store)
|
||||
@ -151,7 +158,7 @@ func TestGet(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestList(t *testing.T) {
|
||||
storage, server := newStorage(t)
|
||||
storage, _, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
test := genericregistrytest.New(t, storage.Store)
|
||||
@ -159,7 +166,7 @@ func TestList(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestWatch(t *testing.T) {
|
||||
storage, server := newStorage(t)
|
||||
storage, _, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
test := genericregistrytest.New(t, storage.Store)
|
||||
@ -184,9 +191,84 @@ func TestWatch(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestShortNames(t *testing.T) {
|
||||
storage, server := newStorage(t)
|
||||
storage, _, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
expected := []string{"netpol"}
|
||||
registrytest.AssertShortNames(t, storage, expected)
|
||||
}
|
||||
|
||||
func TestStatusUpdate(t *testing.T) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NetworkPolicyStatus, true)()
|
||||
storage, statusStorage, server := newStorage(t)
|
||||
defer server.Terminate(t)
|
||||
defer storage.Store.DestroyFunc()
|
||||
ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceDefault)
|
||||
key := "/networkpolicies/" + metav1.NamespaceDefault + "/foo"
|
||||
validNetPolObject := validNetworkPolicy()
|
||||
if err := storage.Storage.Create(ctx, key, validNetPolObject, nil, 0, false); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
obj, err := storage.Get(ctx, "foo", &metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("failed to get netpol: %v", err)
|
||||
}
|
||||
|
||||
obtainedNetPol := obj.(*networking.NetworkPolicy)
|
||||
|
||||
transition := time.Now().Add(-5 * time.Minute)
|
||||
update := networking.NetworkPolicy{
|
||||
ObjectMeta: obtainedNetPol.ObjectMeta,
|
||||
Spec: obtainedNetPol.Spec,
|
||||
Status: networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
LastTransitionTime: metav1.Time{
|
||||
Time: transition,
|
||||
},
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if _, _, err := statusStorage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc, false, &metav1.UpdateOptions{}); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
obj, err = storage.Get(ctx, "foo", &metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
netpol := obj.(*networking.NetworkPolicy)
|
||||
if len(netpol.Status.Conditions) != 1 {
|
||||
t.Fatalf("we expected 1 condition to exist in status but %d occurred", len(netpol.Status.Conditions))
|
||||
}
|
||||
|
||||
condition := netpol.Status.Conditions[0]
|
||||
if condition.Type != string(networking.NetworkPolicyConditionStatusAccepted) {
|
||||
t.Errorf("we expected condition type to be %s but %s was returned", string(networking.NetworkPolicyConditionStatusAccepted), condition.Type)
|
||||
}
|
||||
|
||||
if condition.Status != metav1.ConditionTrue {
|
||||
t.Errorf("we expected condition status to be true, but it returned false")
|
||||
}
|
||||
|
||||
if condition.Reason != "RuleApplied" {
|
||||
t.Errorf("we expected condition reason to be RuleApplied, but %s was returned", condition.Reason)
|
||||
}
|
||||
|
||||
if condition.Message != "rule was successfully applied" {
|
||||
t.Errorf("we expected message to be 'rule was successfully applied', but %s was returned", condition.Message)
|
||||
}
|
||||
|
||||
if condition.ObservedGeneration != 2 {
|
||||
t.Errorf("we expected observedGeneration to be 2, but %d was returned", condition.ObservedGeneration)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,6 +20,8 @@ import (
|
||||
"context"
|
||||
"reflect"
|
||||
|
||||
"sigs.k8s.io/structured-merge-diff/v4/fieldpath"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
"k8s.io/apiserver/pkg/storage/names"
|
||||
@ -44,9 +46,29 @@ func (networkPolicyStrategy) NamespaceScoped() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// GetResetFields returns the set of fields that get reset by the strategy
|
||||
// and should not be modified by the user.
|
||||
func (networkPolicyStrategy) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set {
|
||||
fields := map[fieldpath.APIVersion]*fieldpath.Set{
|
||||
"extensions/v1beta1": fieldpath.NewSet(
|
||||
fieldpath.MakePathOrDie("status"),
|
||||
),
|
||||
"networking.k8s.io/v1": fieldpath.NewSet(
|
||||
fieldpath.MakePathOrDie("status"),
|
||||
),
|
||||
}
|
||||
return fields
|
||||
}
|
||||
|
||||
// PrepareForCreate clears the status of a NetworkPolicy before creation.
|
||||
func (networkPolicyStrategy) PrepareForCreate(ctx context.Context, obj runtime.Object) {
|
||||
networkPolicy := obj.(*networking.NetworkPolicy)
|
||||
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.NetworkPolicyStatus) {
|
||||
// Create does not set a status when operation is not directed to status subresource
|
||||
networkPolicy.Status = networking.NetworkPolicyStatus{}
|
||||
}
|
||||
|
||||
networkPolicy.Generation = 1
|
||||
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.NetworkPolicyEndPort) {
|
||||
@ -59,6 +81,13 @@ func (networkPolicyStrategy) PrepareForUpdate(ctx context.Context, obj, old runt
|
||||
newNetworkPolicy := obj.(*networking.NetworkPolicy)
|
||||
oldNetworkPolicy := old.(*networking.NetworkPolicy)
|
||||
|
||||
// We copy the status if the FG is enabled, or if previously there was already data on the conditions field
|
||||
// As soon as the FeatureGate is removed, the whole if statement should be removed as well
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.NetworkPolicyStatus) || len(oldNetworkPolicy.Status.Conditions) > 0 {
|
||||
// Update is not allowed to set status when the operation is not directed to status subresource
|
||||
newNetworkPolicy.Status = oldNetworkPolicy.Status
|
||||
}
|
||||
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.NetworkPolicyEndPort) && !endPortInUse(oldNetworkPolicy) {
|
||||
dropNetworkPolicyEndPort(newNetworkPolicy)
|
||||
}
|
||||
@ -107,6 +136,58 @@ func (networkPolicyStrategy) AllowUnconditionalUpdate() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
type networkPolicyStatusStrategy struct {
|
||||
networkPolicyStrategy
|
||||
}
|
||||
|
||||
// StatusStrategy implements logic used to validate and prepare for updates of the status subresource
|
||||
var StatusStrategy = networkPolicyStatusStrategy{Strategy}
|
||||
|
||||
// GetResetFields returns the set of fields that get reset by the strategy
|
||||
// and should not be modified by the user.
|
||||
func (networkPolicyStatusStrategy) GetResetFields() map[fieldpath.APIVersion]*fieldpath.Set {
|
||||
fields := map[fieldpath.APIVersion]*fieldpath.Set{
|
||||
"extensions/v1beta1": fieldpath.NewSet(
|
||||
fieldpath.MakePathOrDie("spec"),
|
||||
),
|
||||
"networking.k8s.io/v1": fieldpath.NewSet(
|
||||
fieldpath.MakePathOrDie("spec"),
|
||||
),
|
||||
}
|
||||
return fields
|
||||
}
|
||||
|
||||
// PrepareForUpdate clears fields that are not allowed to be set by end users on update of status
|
||||
func (networkPolicyStatusStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
|
||||
newNetworkPolicy := obj.(*networking.NetworkPolicy)
|
||||
oldNetworkPolicy := old.(*networking.NetworkPolicy)
|
||||
// status changes are not allowed to update spec
|
||||
newNetworkPolicy.Spec = oldNetworkPolicy.Spec
|
||||
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.NetworkPolicyStatus) {
|
||||
// As network policy status is composed only of an array of conditions, we can say that the status
|
||||
// is in use if the condition array is bigger than 0.
|
||||
// quoting @thockin: "we generally keep data in this case, but no updates except to clear it"
|
||||
if len(newNetworkPolicy.Status.Conditions) == 0 {
|
||||
newNetworkPolicy.Status = networking.NetworkPolicyStatus{}
|
||||
} else {
|
||||
// keep the old status in case of the update is not to clear it
|
||||
newNetworkPolicy.Status = oldNetworkPolicy.Status
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ValidateUpdate is the default update validation for an end user updating status
|
||||
func (networkPolicyStatusStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
|
||||
return validation.ValidateNetworkPolicyStatusUpdate(obj.(*networking.NetworkPolicy).Status,
|
||||
old.(*networking.NetworkPolicy).Status, field.NewPath("status"))
|
||||
}
|
||||
|
||||
// WarningsOnUpdate returns warnings for the given update.
|
||||
func (networkPolicyStatusStrategy) WarningsOnUpdate(ctx context.Context, obj, old runtime.Object) []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Drops Network Policy EndPort fields if Feature Gate is also disabled.
|
||||
// This should be used in future Network Policy evolutions
|
||||
func dropNetworkPolicyEndPort(netPol *networking.NetworkPolicy) {
|
||||
|
@ -21,6 +21,9 @@ import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
@ -278,6 +281,173 @@ func TestNetworkPolicyEndPortEnablement(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Errorf("Update with enabled FG failed. %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNetworkPolicyStatusStrategy(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
name string
|
||||
enableFeatureGate bool
|
||||
invalidStatus bool
|
||||
}{
|
||||
{
|
||||
name: "Update NetworkPolicy status with FeatureGate enabled",
|
||||
enableFeatureGate: true,
|
||||
invalidStatus: false,
|
||||
},
|
||||
{
|
||||
name: "Update NetworkPolicy status with FeatureGate disabled",
|
||||
enableFeatureGate: false,
|
||||
invalidStatus: false,
|
||||
},
|
||||
{
|
||||
name: "Update NetworkPolicy status with FeatureGate enabled and invalid status",
|
||||
enableFeatureGate: true,
|
||||
invalidStatus: true,
|
||||
},
|
||||
{
|
||||
name: "Update NetworkPolicy status with FeatureGate disabled and invalid status",
|
||||
enableFeatureGate: false,
|
||||
invalidStatus: true,
|
||||
},
|
||||
} {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NetworkPolicyStatus, tc.enableFeatureGate)()
|
||||
ctx := genericapirequest.NewDefaultContext()
|
||||
if !StatusStrategy.NamespaceScoped() {
|
||||
t.Errorf("NetworkPolicy must be namespace scoped")
|
||||
}
|
||||
if StatusStrategy.AllowCreateOnUpdate() {
|
||||
t.Errorf("NetworkPolicy should not allow create on update")
|
||||
}
|
||||
|
||||
oldNetPol := makeNetworkPolicy(false, true, false)
|
||||
newNetPol := makeNetworkPolicy(true, true, true)
|
||||
newNetPol.Status = networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
},
|
||||
}
|
||||
if !tc.invalidStatus {
|
||||
newNetPol.Status.Conditions[0].LastTransitionTime = metav1.Time{Time: time.Now().Add(-5 * time.Minute)}
|
||||
}
|
||||
|
||||
StatusStrategy.PrepareForUpdate(ctx, newNetPol, oldNetPol)
|
||||
if tc.enableFeatureGate {
|
||||
if !reflect.DeepEqual(oldNetPol.Spec, newNetPol.Spec) {
|
||||
t.Errorf("status update should not change network policy spec")
|
||||
}
|
||||
if len(newNetPol.Status.Conditions) != 1 {
|
||||
t.Fatalf("expecting 1 condition in network policy, got %d", len(newNetPol.Status.Conditions))
|
||||
}
|
||||
|
||||
if newNetPol.Status.Conditions[0].Type != string(networking.NetworkPolicyConditionStatusAccepted) {
|
||||
t.Errorf("NetworkPolicy status updates should allow change of condition fields")
|
||||
}
|
||||
} else {
|
||||
if len(newNetPol.Status.Conditions) != 0 && !tc.enableFeatureGate {
|
||||
t.Fatalf("expecting 0 condition in network policy, got %d", len(newNetPol.Status.Conditions))
|
||||
}
|
||||
}
|
||||
|
||||
errs := StatusStrategy.ValidateUpdate(ctx, newNetPol, oldNetPol)
|
||||
if tc.enableFeatureGate {
|
||||
if tc.invalidStatus && len(errs) == 0 {
|
||||
t.Error("invalid network policy status wasn't proper validated")
|
||||
}
|
||||
if !tc.invalidStatus && len(errs) > 0 {
|
||||
t.Errorf("valid network policy status returned an error: %v", errs)
|
||||
}
|
||||
} else {
|
||||
if len(errs) != 0 {
|
||||
t.Errorf("Unexpected error with disabled featuregate: %v", errs)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// This test will verify the behavior of NetworkPolicy Status when enabling/disabling/re-enabling the feature gate
|
||||
func TestNetworkPolicyStatusStrategyEnablement(t *testing.T) {
|
||||
// Enable the Feature Gate during the first rule creation
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NetworkPolicyStatus, true)()
|
||||
ctx := genericapirequest.NewDefaultContext()
|
||||
|
||||
oldNetPol := makeNetworkPolicy(false, true, false)
|
||||
newNetPol := makeNetworkPolicy(true, true, false)
|
||||
newNetPol.Status = networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
LastTransitionTime: metav1.Time{Time: time.Now().Add(-5 * time.Minute)},
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
StatusStrategy.PrepareForUpdate(ctx, newNetPol, oldNetPol)
|
||||
|
||||
if !reflect.DeepEqual(oldNetPol.Spec, newNetPol.Spec) {
|
||||
t.Errorf("status update should not change network policy spec")
|
||||
}
|
||||
|
||||
if len(newNetPol.Status.Conditions) != 1 || newNetPol.Status.Conditions[0].Status != metav1.ConditionTrue {
|
||||
t.Error("expected network policy status is incorrect")
|
||||
}
|
||||
|
||||
// Now let's disable the Feature Gate, update some other field from NetPol and expect the Status is already present
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NetworkPolicyStatus, false)()
|
||||
|
||||
oldNetPol = newNetPol.DeepCopy()
|
||||
// 1 - It should not allow to change status, and just copy between objects when FG is disabled
|
||||
newNetPol.Status.Conditions[0].Status = metav1.ConditionFalse
|
||||
|
||||
StatusStrategy.PrepareForUpdate(ctx, newNetPol, oldNetPol)
|
||||
if len(newNetPol.Status.Conditions) != 1 {
|
||||
t.Fatalf("expected conditions after disabling feature is invalid: got %d and expected 1", len(newNetPol.Status.Conditions))
|
||||
}
|
||||
|
||||
if newNetPol.Status.Conditions[0].Status != metav1.ConditionTrue {
|
||||
t.Error("condition status changed with feature gate disabled")
|
||||
}
|
||||
|
||||
oldNetPol = newNetPol.DeepCopy()
|
||||
// 2 - It should clear status if it contained previous data and is disabled now
|
||||
newNetPol.Status = networking.NetworkPolicyStatus{}
|
||||
StatusStrategy.PrepareForUpdate(ctx, newNetPol, oldNetPol)
|
||||
if len(newNetPol.Status.Conditions) != 0 {
|
||||
t.Errorf("expected conditions after disabling feature and cleaning status is invalid: got %d and expected 0", len(newNetPol.Status.Conditions))
|
||||
}
|
||||
|
||||
oldNetPol = newNetPol.DeepCopy()
|
||||
// 3 - It should allow again to add status when re-enabling the FG
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.NetworkPolicyStatus, true)()
|
||||
|
||||
newNetPol.Status = networking.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
{
|
||||
Type: string(networking.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
LastTransitionTime: metav1.Time{Time: time.Now().Add(-5 * time.Minute)},
|
||||
Reason: "RuleApplied",
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 2,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
StatusStrategy.PrepareForUpdate(ctx, newNetPol, oldNetPol)
|
||||
|
||||
if len(newNetPol.Status.Conditions) != 1 || newNetPol.Status.Conditions[0].Status != metav1.ConditionTrue {
|
||||
t.Error("expected network policy status is incorrect")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -50,11 +50,12 @@ func (p RESTStorageProvider) v1Storage(apiResourceConfigSource serverstorage.API
|
||||
|
||||
// networkpolicies
|
||||
if resource := "networkpolicies"; apiResourceConfigSource.ResourceEnabled(networkingapiv1.SchemeGroupVersion.WithResource(resource)) {
|
||||
networkPolicyStorage, err := networkpolicystore.NewREST(restOptionsGetter)
|
||||
networkPolicyStorage, networkPolicyStatusStorage, err := networkpolicystore.NewREST(restOptionsGetter)
|
||||
if err != nil {
|
||||
return storage, err
|
||||
}
|
||||
storage[resource] = networkPolicyStorage
|
||||
storage[resource+"/status"] = networkPolicyStatusStorage
|
||||
}
|
||||
|
||||
// ingresses
|
||||
|
@ -1085,10 +1085,38 @@ func (m *NetworkPolicySpec) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_NetworkPolicySpec proto.InternalMessageInfo
|
||||
|
||||
func (m *NetworkPolicyStatus) Reset() { *m = NetworkPolicyStatus{} }
|
||||
func (*NetworkPolicyStatus) ProtoMessage() {}
|
||||
func (*NetworkPolicyStatus) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{37}
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_NetworkPolicyStatus.Merge(m, src)
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_NetworkPolicyStatus.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_NetworkPolicyStatus proto.InternalMessageInfo
|
||||
|
||||
func (m *PodSecurityPolicy) Reset() { *m = PodSecurityPolicy{} }
|
||||
func (*PodSecurityPolicy) ProtoMessage() {}
|
||||
func (*PodSecurityPolicy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{37}
|
||||
return fileDescriptor_cdc93917efc28165, []int{38}
|
||||
}
|
||||
func (m *PodSecurityPolicy) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1116,7 +1144,7 @@ var xxx_messageInfo_PodSecurityPolicy proto.InternalMessageInfo
|
||||
func (m *PodSecurityPolicyList) Reset() { *m = PodSecurityPolicyList{} }
|
||||
func (*PodSecurityPolicyList) ProtoMessage() {}
|
||||
func (*PodSecurityPolicyList) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{38}
|
||||
return fileDescriptor_cdc93917efc28165, []int{39}
|
||||
}
|
||||
func (m *PodSecurityPolicyList) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1144,7 +1172,7 @@ var xxx_messageInfo_PodSecurityPolicyList proto.InternalMessageInfo
|
||||
func (m *PodSecurityPolicySpec) Reset() { *m = PodSecurityPolicySpec{} }
|
||||
func (*PodSecurityPolicySpec) ProtoMessage() {}
|
||||
func (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{39}
|
||||
return fileDescriptor_cdc93917efc28165, []int{40}
|
||||
}
|
||||
func (m *PodSecurityPolicySpec) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1172,7 +1200,7 @@ var xxx_messageInfo_PodSecurityPolicySpec proto.InternalMessageInfo
|
||||
func (m *ReplicaSet) Reset() { *m = ReplicaSet{} }
|
||||
func (*ReplicaSet) ProtoMessage() {}
|
||||
func (*ReplicaSet) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{40}
|
||||
return fileDescriptor_cdc93917efc28165, []int{41}
|
||||
}
|
||||
func (m *ReplicaSet) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1200,7 +1228,7 @@ var xxx_messageInfo_ReplicaSet proto.InternalMessageInfo
|
||||
func (m *ReplicaSetCondition) Reset() { *m = ReplicaSetCondition{} }
|
||||
func (*ReplicaSetCondition) ProtoMessage() {}
|
||||
func (*ReplicaSetCondition) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{41}
|
||||
return fileDescriptor_cdc93917efc28165, []int{42}
|
||||
}
|
||||
func (m *ReplicaSetCondition) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1228,7 +1256,7 @@ var xxx_messageInfo_ReplicaSetCondition proto.InternalMessageInfo
|
||||
func (m *ReplicaSetList) Reset() { *m = ReplicaSetList{} }
|
||||
func (*ReplicaSetList) ProtoMessage() {}
|
||||
func (*ReplicaSetList) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{42}
|
||||
return fileDescriptor_cdc93917efc28165, []int{43}
|
||||
}
|
||||
func (m *ReplicaSetList) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1256,7 +1284,7 @@ var xxx_messageInfo_ReplicaSetList proto.InternalMessageInfo
|
||||
func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} }
|
||||
func (*ReplicaSetSpec) ProtoMessage() {}
|
||||
func (*ReplicaSetSpec) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{43}
|
||||
return fileDescriptor_cdc93917efc28165, []int{44}
|
||||
}
|
||||
func (m *ReplicaSetSpec) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1284,7 +1312,7 @@ var xxx_messageInfo_ReplicaSetSpec proto.InternalMessageInfo
|
||||
func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} }
|
||||
func (*ReplicaSetStatus) ProtoMessage() {}
|
||||
func (*ReplicaSetStatus) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{44}
|
||||
return fileDescriptor_cdc93917efc28165, []int{45}
|
||||
}
|
||||
func (m *ReplicaSetStatus) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1312,7 +1340,7 @@ var xxx_messageInfo_ReplicaSetStatus proto.InternalMessageInfo
|
||||
func (m *RollbackConfig) Reset() { *m = RollbackConfig{} }
|
||||
func (*RollbackConfig) ProtoMessage() {}
|
||||
func (*RollbackConfig) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{45}
|
||||
return fileDescriptor_cdc93917efc28165, []int{46}
|
||||
}
|
||||
func (m *RollbackConfig) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1340,7 +1368,7 @@ var xxx_messageInfo_RollbackConfig proto.InternalMessageInfo
|
||||
func (m *RollingUpdateDaemonSet) Reset() { *m = RollingUpdateDaemonSet{} }
|
||||
func (*RollingUpdateDaemonSet) ProtoMessage() {}
|
||||
func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{46}
|
||||
return fileDescriptor_cdc93917efc28165, []int{47}
|
||||
}
|
||||
func (m *RollingUpdateDaemonSet) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1368,7 +1396,7 @@ var xxx_messageInfo_RollingUpdateDaemonSet proto.InternalMessageInfo
|
||||
func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} }
|
||||
func (*RollingUpdateDeployment) ProtoMessage() {}
|
||||
func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{47}
|
||||
return fileDescriptor_cdc93917efc28165, []int{48}
|
||||
}
|
||||
func (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1396,7 +1424,7 @@ var xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo
|
||||
func (m *RunAsGroupStrategyOptions) Reset() { *m = RunAsGroupStrategyOptions{} }
|
||||
func (*RunAsGroupStrategyOptions) ProtoMessage() {}
|
||||
func (*RunAsGroupStrategyOptions) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{48}
|
||||
return fileDescriptor_cdc93917efc28165, []int{49}
|
||||
}
|
||||
func (m *RunAsGroupStrategyOptions) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1424,7 +1452,7 @@ var xxx_messageInfo_RunAsGroupStrategyOptions proto.InternalMessageInfo
|
||||
func (m *RunAsUserStrategyOptions) Reset() { *m = RunAsUserStrategyOptions{} }
|
||||
func (*RunAsUserStrategyOptions) ProtoMessage() {}
|
||||
func (*RunAsUserStrategyOptions) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{49}
|
||||
return fileDescriptor_cdc93917efc28165, []int{50}
|
||||
}
|
||||
func (m *RunAsUserStrategyOptions) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1452,7 +1480,7 @@ var xxx_messageInfo_RunAsUserStrategyOptions proto.InternalMessageInfo
|
||||
func (m *RuntimeClassStrategyOptions) Reset() { *m = RuntimeClassStrategyOptions{} }
|
||||
func (*RuntimeClassStrategyOptions) ProtoMessage() {}
|
||||
func (*RuntimeClassStrategyOptions) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{50}
|
||||
return fileDescriptor_cdc93917efc28165, []int{51}
|
||||
}
|
||||
func (m *RuntimeClassStrategyOptions) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1480,7 +1508,7 @@ var xxx_messageInfo_RuntimeClassStrategyOptions proto.InternalMessageInfo
|
||||
func (m *SELinuxStrategyOptions) Reset() { *m = SELinuxStrategyOptions{} }
|
||||
func (*SELinuxStrategyOptions) ProtoMessage() {}
|
||||
func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{51}
|
||||
return fileDescriptor_cdc93917efc28165, []int{52}
|
||||
}
|
||||
func (m *SELinuxStrategyOptions) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1508,7 +1536,7 @@ var xxx_messageInfo_SELinuxStrategyOptions proto.InternalMessageInfo
|
||||
func (m *Scale) Reset() { *m = Scale{} }
|
||||
func (*Scale) ProtoMessage() {}
|
||||
func (*Scale) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{52}
|
||||
return fileDescriptor_cdc93917efc28165, []int{53}
|
||||
}
|
||||
func (m *Scale) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1536,7 +1564,7 @@ var xxx_messageInfo_Scale proto.InternalMessageInfo
|
||||
func (m *ScaleSpec) Reset() { *m = ScaleSpec{} }
|
||||
func (*ScaleSpec) ProtoMessage() {}
|
||||
func (*ScaleSpec) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{53}
|
||||
return fileDescriptor_cdc93917efc28165, []int{54}
|
||||
}
|
||||
func (m *ScaleSpec) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1564,7 +1592,7 @@ var xxx_messageInfo_ScaleSpec proto.InternalMessageInfo
|
||||
func (m *ScaleStatus) Reset() { *m = ScaleStatus{} }
|
||||
func (*ScaleStatus) ProtoMessage() {}
|
||||
func (*ScaleStatus) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{54}
|
||||
return fileDescriptor_cdc93917efc28165, []int{55}
|
||||
}
|
||||
func (m *ScaleStatus) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1592,7 +1620,7 @@ var xxx_messageInfo_ScaleStatus proto.InternalMessageInfo
|
||||
func (m *SupplementalGroupsStrategyOptions) Reset() { *m = SupplementalGroupsStrategyOptions{} }
|
||||
func (*SupplementalGroupsStrategyOptions) ProtoMessage() {}
|
||||
func (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_cdc93917efc28165, []int{55}
|
||||
return fileDescriptor_cdc93917efc28165, []int{56}
|
||||
}
|
||||
func (m *SupplementalGroupsStrategyOptions) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -1656,6 +1684,7 @@ func init() {
|
||||
proto.RegisterType((*NetworkPolicyPeer)(nil), "k8s.io.api.extensions.v1beta1.NetworkPolicyPeer")
|
||||
proto.RegisterType((*NetworkPolicyPort)(nil), "k8s.io.api.extensions.v1beta1.NetworkPolicyPort")
|
||||
proto.RegisterType((*NetworkPolicySpec)(nil), "k8s.io.api.extensions.v1beta1.NetworkPolicySpec")
|
||||
proto.RegisterType((*NetworkPolicyStatus)(nil), "k8s.io.api.extensions.v1beta1.NetworkPolicyStatus")
|
||||
proto.RegisterType((*PodSecurityPolicy)(nil), "k8s.io.api.extensions.v1beta1.PodSecurityPolicy")
|
||||
proto.RegisterType((*PodSecurityPolicyList)(nil), "k8s.io.api.extensions.v1beta1.PodSecurityPolicyList")
|
||||
proto.RegisterType((*PodSecurityPolicySpec)(nil), "k8s.io.api.extensions.v1beta1.PodSecurityPolicySpec")
|
||||
@ -1683,243 +1712,245 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_cdc93917efc28165 = []byte{
|
||||
// 3763 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4f, 0x6c, 0x1b, 0x47,
|
||||
0x77, 0xf7, 0x92, 0x94, 0x48, 0x3d, 0xfd, 0x1f, 0xc9, 0x12, 0x3f, 0xfb, 0xb3, 0xe8, 0x6f, 0x83,
|
||||
0xba, 0x4e, 0xea, 0x90, 0xb1, 0x63, 0xfb, 0x73, 0x6d, 0xf4, 0x4b, 0x44, 0xc9, 0xb2, 0x95, 0xea,
|
||||
0x0f, 0x33, 0x94, 0x9c, 0x20, 0x68, 0xd2, 0xac, 0xc8, 0x11, 0xb5, 0xd6, 0x72, 0x77, 0xb3, 0xb3,
|
||||
0x54, 0x44, 0xa0, 0x87, 0x1e, 0x7a, 0x09, 0x50, 0xa0, 0xbd, 0xa4, 0xed, 0xb1, 0x41, 0x81, 0xde,
|
||||
0x8a, 0x1e, 0xdb, 0x43, 0x10, 0xb4, 0x68, 0x0a, 0x18, 0x45, 0x5a, 0x04, 0xe8, 0xa1, 0x39, 0x09,
|
||||
0x8d, 0x72, 0x2a, 0x7a, 0xea, 0xad, 0xf0, 0xa9, 0x98, 0xd9, 0xd9, 0xff, 0xbb, 0xe2, 0x4a, 0xb1,
|
||||
0x85, 0xa6, 0xe8, 0xc9, 0xe6, 0xbc, 0xf7, 0x7e, 0xef, 0xcd, 0xcc, 0x9b, 0xf7, 0xde, 0xcc, 0x3e,
|
||||
0xc1, 0xca, 0xfe, 0x3d, 0x5a, 0x55, 0x8d, 0xda, 0x7e, 0x6f, 0x87, 0x58, 0x3a, 0xb1, 0x09, 0xad,
|
||||
0x1d, 0x10, 0xbd, 0x6d, 0x58, 0x35, 0x41, 0x50, 0x4c, 0xb5, 0x46, 0x0e, 0x6d, 0xa2, 0x53, 0xd5,
|
||||
0xd0, 0x69, 0xed, 0xe0, 0xe6, 0x0e, 0xb1, 0x95, 0x9b, 0xb5, 0x0e, 0xd1, 0x89, 0xa5, 0xd8, 0xa4,
|
||||
0x5d, 0x35, 0x2d, 0xc3, 0x36, 0xd0, 0x15, 0x87, 0xbd, 0xaa, 0x98, 0x6a, 0xd5, 0x67, 0xaf, 0x0a,
|
||||
0xf6, 0x4b, 0xaf, 0x77, 0x54, 0x7b, 0xaf, 0xb7, 0x53, 0x6d, 0x19, 0xdd, 0x5a, 0xc7, 0xe8, 0x18,
|
||||
0x35, 0x2e, 0xb5, 0xd3, 0xdb, 0xe5, 0xbf, 0xf8, 0x0f, 0xfe, 0x3f, 0x07, 0xed, 0x92, 0x1c, 0x50,
|
||||
0xde, 0x32, 0x2c, 0x52, 0x3b, 0x88, 0x69, 0xbc, 0x74, 0xdb, 0xe7, 0xe9, 0x2a, 0xad, 0x3d, 0x55,
|
||||
0x27, 0x56, 0xbf, 0x66, 0xee, 0x77, 0xd8, 0x00, 0xad, 0x75, 0x89, 0xad, 0x24, 0x49, 0xd5, 0xd2,
|
||||
0xa4, 0xac, 0x9e, 0x6e, 0xab, 0x5d, 0x12, 0x13, 0xb8, 0x3b, 0x48, 0x80, 0xb6, 0xf6, 0x48, 0x57,
|
||||
0x89, 0xc9, 0xbd, 0x99, 0x26, 0xd7, 0xb3, 0x55, 0xad, 0xa6, 0xea, 0x36, 0xb5, 0xad, 0xa8, 0x90,
|
||||
0x7c, 0x1b, 0xa6, 0x16, 0x35, 0xcd, 0xf8, 0x94, 0xb4, 0x97, 0x9a, 0xab, 0xcb, 0x96, 0x7a, 0x40,
|
||||
0x2c, 0x74, 0x15, 0x0a, 0xba, 0xd2, 0x25, 0x65, 0xe9, 0xaa, 0x74, 0x7d, 0xa4, 0x3e, 0xf6, 0xec,
|
||||
0xa8, 0x72, 0xe1, 0xf8, 0xa8, 0x52, 0xd8, 0x50, 0xba, 0x04, 0x73, 0x8a, 0xfc, 0x00, 0xa6, 0x85,
|
||||
0xd4, 0x8a, 0x46, 0x0e, 0x9f, 0x18, 0x5a, 0xaf, 0x4b, 0xd0, 0x35, 0x18, 0x6e, 0x73, 0x00, 0x21,
|
||||
0x38, 0x21, 0x04, 0x87, 0x1d, 0x58, 0x2c, 0xa8, 0x32, 0x85, 0x49, 0x21, 0xfc, 0xd8, 0xa0, 0x76,
|
||||
0x43, 0xb1, 0xf7, 0xd0, 0x2d, 0x00, 0x53, 0xb1, 0xf7, 0x1a, 0x16, 0xd9, 0x55, 0x0f, 0x85, 0x38,
|
||||
0x12, 0xe2, 0xd0, 0xf0, 0x28, 0x38, 0xc0, 0x85, 0x6e, 0x40, 0xc9, 0x22, 0x4a, 0x7b, 0x53, 0xd7,
|
||||
0xfa, 0xe5, 0xdc, 0x55, 0xe9, 0x7a, 0xa9, 0x3e, 0x25, 0x24, 0x4a, 0x58, 0x8c, 0x63, 0x8f, 0x43,
|
||||
0xfe, 0x3c, 0x07, 0x23, 0xcb, 0x0a, 0xe9, 0x1a, 0x7a, 0x93, 0xd8, 0xe8, 0x63, 0x28, 0xb1, 0xed,
|
||||
0x6a, 0x2b, 0xb6, 0xc2, 0xb5, 0x8d, 0xde, 0x7a, 0xa3, 0xea, 0xbb, 0x93, 0xb7, 0x7a, 0x55, 0x73,
|
||||
0xbf, 0xc3, 0x06, 0x68, 0x95, 0x71, 0x57, 0x0f, 0x6e, 0x56, 0x37, 0x77, 0x9e, 0x92, 0x96, 0xbd,
|
||||
0x4e, 0x6c, 0xc5, 0xb7, 0xcf, 0x1f, 0xc3, 0x1e, 0x2a, 0xda, 0x80, 0x02, 0x35, 0x49, 0x8b, 0x5b,
|
||||
0x36, 0x7a, 0xeb, 0x46, 0xf5, 0x44, 0x67, 0xad, 0x7a, 0x96, 0x35, 0x4d, 0xd2, 0xf2, 0x57, 0x9c,
|
||||
0xfd, 0xc2, 0x1c, 0x07, 0x3d, 0x81, 0x61, 0x6a, 0x2b, 0x76, 0x8f, 0x96, 0xf3, 0x1c, 0xb1, 0x9a,
|
||||
0x19, 0x91, 0x4b, 0xf9, 0x9b, 0xe1, 0xfc, 0xc6, 0x02, 0x4d, 0xfe, 0x8f, 0x1c, 0x20, 0x8f, 0x77,
|
||||
0xc9, 0xd0, 0xdb, 0xaa, 0xad, 0x1a, 0x3a, 0xba, 0x0f, 0x05, 0xbb, 0x6f, 0xba, 0x2e, 0x70, 0xcd,
|
||||
0x35, 0x68, 0xab, 0x6f, 0x92, 0xe7, 0x47, 0x95, 0xb9, 0xb8, 0x04, 0xa3, 0x60, 0x2e, 0x83, 0xd6,
|
||||
0x3c, 0x53, 0x73, 0x5c, 0xfa, 0x76, 0x58, 0xf5, 0xf3, 0xa3, 0x4a, 0xc2, 0x61, 0xab, 0x7a, 0x48,
|
||||
0x61, 0x03, 0xd1, 0x01, 0x20, 0x4d, 0xa1, 0xf6, 0x96, 0xa5, 0xe8, 0xd4, 0xd1, 0xa4, 0x76, 0x89,
|
||||
0x58, 0x84, 0xd7, 0xb2, 0x6d, 0x1a, 0x93, 0xa8, 0x5f, 0x12, 0x56, 0xa0, 0xb5, 0x18, 0x1a, 0x4e,
|
||||
0xd0, 0xc0, 0xbc, 0xd9, 0x22, 0x0a, 0x35, 0xf4, 0x72, 0x21, 0xec, 0xcd, 0x98, 0x8f, 0x62, 0x41,
|
||||
0x45, 0xaf, 0x42, 0xb1, 0x4b, 0x28, 0x55, 0x3a, 0xa4, 0x3c, 0xc4, 0x19, 0x27, 0x05, 0x63, 0x71,
|
||||
0xdd, 0x19, 0xc6, 0x2e, 0x5d, 0xfe, 0x52, 0x82, 0x71, 0x6f, 0xe5, 0xd6, 0x54, 0x6a, 0xa3, 0xdf,
|
||||
0x89, 0xf9, 0x61, 0x35, 0xdb, 0x94, 0x98, 0x34, 0xf7, 0x42, 0xcf, 0xe7, 0xdd, 0x91, 0x80, 0x0f,
|
||||
0xae, 0xc3, 0x90, 0x6a, 0x93, 0x2e, 0xdb, 0x87, 0xfc, 0xf5, 0xd1, 0x5b, 0xd7, 0xb3, 0xba, 0x4c,
|
||||
0x7d, 0x5c, 0x80, 0x0e, 0xad, 0x32, 0x71, 0xec, 0xa0, 0xc8, 0x7f, 0x52, 0x08, 0x98, 0xcf, 0x5c,
|
||||
0x13, 0x7d, 0x08, 0x25, 0x4a, 0x34, 0xd2, 0xb2, 0x0d, 0x4b, 0x98, 0xff, 0x66, 0x46, 0xf3, 0x95,
|
||||
0x1d, 0xa2, 0x35, 0x85, 0x68, 0x7d, 0x8c, 0xd9, 0xef, 0xfe, 0xc2, 0x1e, 0x24, 0x7a, 0x17, 0x4a,
|
||||
0x36, 0xe9, 0x9a, 0x9a, 0x62, 0x13, 0x71, 0x8e, 0x5e, 0x09, 0x4e, 0x81, 0x79, 0x0e, 0x03, 0x6b,
|
||||
0x18, 0xed, 0x2d, 0xc1, 0xc6, 0x8f, 0x8f, 0xb7, 0x24, 0xee, 0x28, 0xf6, 0x60, 0xd0, 0x01, 0x4c,
|
||||
0xf4, 0xcc, 0x36, 0xe3, 0xb4, 0x59, 0x14, 0xec, 0xf4, 0x85, 0x27, 0xdd, 0xcd, 0xba, 0x36, 0xdb,
|
||||
0x21, 0xe9, 0xfa, 0x9c, 0xd0, 0x35, 0x11, 0x1e, 0xc7, 0x11, 0x2d, 0x68, 0x11, 0x26, 0xbb, 0xaa,
|
||||
0xce, 0xe2, 0x52, 0xbf, 0x49, 0x5a, 0x86, 0xde, 0xa6, 0xdc, 0xad, 0x86, 0xea, 0xf3, 0x02, 0x60,
|
||||
0x72, 0x3d, 0x4c, 0xc6, 0x51, 0x7e, 0xf4, 0x0e, 0x20, 0x77, 0x1a, 0x8f, 0x9c, 0x20, 0xae, 0x1a,
|
||||
0x3a, 0xf7, 0xb9, 0xbc, 0xef, 0xdc, 0x5b, 0x31, 0x0e, 0x9c, 0x20, 0x85, 0xd6, 0x60, 0xd6, 0x22,
|
||||
0x07, 0x2a, 0x9b, 0xe3, 0x63, 0x95, 0xda, 0x86, 0xd5, 0x5f, 0x53, 0xbb, 0xaa, 0x5d, 0x1e, 0xe6,
|
||||
0x36, 0x95, 0x8f, 0x8f, 0x2a, 0xb3, 0x38, 0x81, 0x8e, 0x13, 0xa5, 0xe4, 0x3f, 0x1d, 0x86, 0xc9,
|
||||
0x48, 0xbc, 0x41, 0x4f, 0x60, 0xae, 0xd5, 0xb3, 0x2c, 0xa2, 0xdb, 0x1b, 0xbd, 0xee, 0x0e, 0xb1,
|
||||
0x9a, 0xad, 0x3d, 0xd2, 0xee, 0x69, 0xa4, 0xcd, 0x1d, 0x65, 0xa8, 0xbe, 0x20, 0x2c, 0x9e, 0x5b,
|
||||
0x4a, 0xe4, 0xc2, 0x29, 0xd2, 0x6c, 0x15, 0x74, 0x3e, 0xb4, 0xae, 0x52, 0xea, 0x61, 0xe6, 0x38,
|
||||
0xa6, 0xb7, 0x0a, 0x1b, 0x31, 0x0e, 0x9c, 0x20, 0xc5, 0x6c, 0x6c, 0x13, 0xaa, 0x5a, 0xa4, 0x1d,
|
||||
0xb5, 0x31, 0x1f, 0xb6, 0x71, 0x39, 0x91, 0x0b, 0xa7, 0x48, 0xa3, 0x3b, 0x30, 0xea, 0x68, 0xe3,
|
||||
0xfb, 0x27, 0x36, 0x7a, 0x46, 0x80, 0x8d, 0x6e, 0xf8, 0x24, 0x1c, 0xe4, 0x63, 0x53, 0x33, 0x76,
|
||||
0x28, 0xb1, 0x0e, 0x48, 0x3b, 0x7d, 0x83, 0x37, 0x63, 0x1c, 0x38, 0x41, 0x8a, 0x4d, 0xcd, 0xf1,
|
||||
0xc0, 0xd8, 0xd4, 0x86, 0xc3, 0x53, 0xdb, 0x4e, 0xe4, 0xc2, 0x29, 0xd2, 0xcc, 0x8f, 0x1d, 0x93,
|
||||
0x17, 0x0f, 0x14, 0x55, 0x53, 0x76, 0x34, 0x52, 0x2e, 0x86, 0xfd, 0x78, 0x23, 0x4c, 0xc6, 0x51,
|
||||
0x7e, 0xf4, 0x08, 0xa6, 0x9d, 0xa1, 0x6d, 0x5d, 0xf1, 0x40, 0x4a, 0x1c, 0xe4, 0x67, 0x02, 0x64,
|
||||
0x7a, 0x23, 0xca, 0x80, 0xe3, 0x32, 0xe8, 0x3e, 0x4c, 0xb4, 0x0c, 0x4d, 0xe3, 0xfe, 0xb8, 0x64,
|
||||
0xf4, 0x74, 0xbb, 0x3c, 0xc2, 0x51, 0x10, 0x3b, 0x8f, 0x4b, 0x21, 0x0a, 0x8e, 0x70, 0x22, 0x02,
|
||||
0xd0, 0x72, 0x13, 0x0e, 0x2d, 0x03, 0x8f, 0x8f, 0x37, 0xb3, 0xc6, 0x00, 0x2f, 0x55, 0xf9, 0x35,
|
||||
0x80, 0x37, 0x44, 0x71, 0x00, 0x58, 0xfe, 0x27, 0x09, 0xe6, 0x53, 0x42, 0x07, 0x7a, 0x2b, 0x94,
|
||||
0x62, 0x7f, 0x23, 0x92, 0x62, 0x2f, 0xa7, 0x88, 0x05, 0xf2, 0xac, 0x0e, 0xe3, 0x16, 0x9b, 0x95,
|
||||
0xde, 0x71, 0x58, 0x44, 0x8c, 0xbc, 0x33, 0x60, 0x1a, 0x38, 0x28, 0xe3, 0xc7, 0xfc, 0xe9, 0xe3,
|
||||
0xa3, 0xca, 0x78, 0x88, 0x86, 0xc3, 0xf0, 0xf2, 0x9f, 0xe5, 0x00, 0x96, 0x89, 0xa9, 0x19, 0xfd,
|
||||
0x2e, 0xd1, 0xcf, 0xa3, 0x86, 0xda, 0x0c, 0xd5, 0x50, 0xaf, 0x0f, 0xda, 0x1e, 0xcf, 0xb4, 0xd4,
|
||||
0x22, 0xea, 0xbd, 0x48, 0x11, 0x55, 0xcb, 0x0e, 0x79, 0x72, 0x15, 0xf5, 0x6f, 0x79, 0x98, 0xf1,
|
||||
0x99, 0xfd, 0x32, 0xea, 0x41, 0x68, 0x8f, 0x7f, 0x3d, 0xb2, 0xc7, 0xf3, 0x09, 0x22, 0x2f, 0xad,
|
||||
0x8e, 0x7a, 0x0a, 0x13, 0xac, 0xca, 0x71, 0xf6, 0x92, 0xd7, 0x50, 0xc3, 0xa7, 0xae, 0xa1, 0xbc,
|
||||
0x6c, 0xb7, 0x16, 0x42, 0xc2, 0x11, 0xe4, 0x94, 0x9a, 0xad, 0xf8, 0x53, 0xac, 0xd9, 0xbe, 0x92,
|
||||
0x60, 0xc2, 0xdf, 0xa6, 0x73, 0x28, 0xda, 0x36, 0xc2, 0x45, 0xdb, 0xab, 0x99, 0x5d, 0x34, 0xa5,
|
||||
0x6a, 0xfb, 0x6f, 0x56, 0xe0, 0x7b, 0x4c, 0xec, 0x80, 0xef, 0x28, 0xad, 0xfd, 0xc1, 0x77, 0x3c,
|
||||
0xf4, 0xb9, 0x04, 0x48, 0x64, 0x81, 0x45, 0x5d, 0x37, 0x6c, 0xc5, 0x89, 0x95, 0x8e, 0x59, 0xab,
|
||||
0x99, 0xcd, 0x72, 0x35, 0x56, 0xb7, 0x63, 0x58, 0x0f, 0x75, 0xdb, 0xea, 0xfb, 0x9b, 0x1c, 0x67,
|
||||
0xc0, 0x09, 0x06, 0x20, 0x05, 0xc0, 0x12, 0x98, 0x5b, 0x86, 0x38, 0xc8, 0xaf, 0x67, 0x88, 0x79,
|
||||
0x4c, 0x60, 0xc9, 0xd0, 0x77, 0xd5, 0x8e, 0x1f, 0x76, 0xb0, 0x07, 0x84, 0x03, 0xa0, 0x97, 0x1e,
|
||||
0xc2, 0x7c, 0x8a, 0xb5, 0x68, 0x0a, 0xf2, 0xfb, 0xa4, 0xef, 0x2c, 0x1b, 0x66, 0xff, 0x45, 0xb3,
|
||||
0x30, 0x74, 0xa0, 0x68, 0x3d, 0x27, 0xfc, 0x8e, 0x60, 0xe7, 0xc7, 0xfd, 0xdc, 0x3d, 0x49, 0xfe,
|
||||
0x72, 0x28, 0xe8, 0x3b, 0xbc, 0x62, 0xbe, 0xce, 0x2e, 0xad, 0xa6, 0xa6, 0xb6, 0x14, 0x2a, 0x0a,
|
||||
0xa1, 0x31, 0xe7, 0xc2, 0xea, 0x8c, 0x61, 0x8f, 0x1a, 0xaa, 0xad, 0x73, 0x2f, 0xb7, 0xb6, 0xce,
|
||||
0xbf, 0x98, 0xda, 0xfa, 0x77, 0xa1, 0x44, 0xdd, 0xaa, 0xba, 0xc0, 0x21, 0x6f, 0x9e, 0x22, 0xbe,
|
||||
0x8a, 0x82, 0xda, 0x53, 0xe0, 0x95, 0xd2, 0x1e, 0x68, 0x52, 0x11, 0x3d, 0x74, 0xca, 0x22, 0xfa,
|
||||
0x85, 0x16, 0xbe, 0x2c, 0xde, 0x98, 0x4a, 0x8f, 0x92, 0x36, 0x8f, 0x6d, 0x25, 0x3f, 0xde, 0x34,
|
||||
0xf8, 0x28, 0x16, 0x54, 0xf4, 0x61, 0xc8, 0x65, 0x4b, 0x67, 0x71, 0xd9, 0x89, 0x74, 0x77, 0x45,
|
||||
0xdb, 0x30, 0x6f, 0x5a, 0x46, 0xc7, 0x22, 0x94, 0x2e, 0x13, 0xa5, 0xad, 0xa9, 0x3a, 0x71, 0xd7,
|
||||
0xc7, 0xa9, 0x88, 0x2e, 0x1f, 0x1f, 0x55, 0xe6, 0x1b, 0xc9, 0x2c, 0x38, 0x4d, 0x56, 0x7e, 0x56,
|
||||
0x80, 0xa9, 0x68, 0x06, 0x4c, 0x29, 0x52, 0xa5, 0x33, 0x15, 0xa9, 0x37, 0x02, 0x87, 0xc1, 0xa9,
|
||||
0xe0, 0x03, 0x2f, 0x38, 0xb1, 0x03, 0xb1, 0x08, 0x93, 0x22, 0x1a, 0xb8, 0x44, 0x51, 0xa6, 0x7b,
|
||||
0xbb, 0xbf, 0x1d, 0x26, 0xe3, 0x28, 0x3f, 0x7a, 0x00, 0xe3, 0x16, 0xaf, 0xbb, 0x5d, 0x00, 0xa7,
|
||||
0x76, 0xbd, 0x28, 0x00, 0xc6, 0x71, 0x90, 0x88, 0xc3, 0xbc, 0xac, 0x6e, 0xf5, 0xcb, 0x51, 0x17,
|
||||
0xa0, 0x10, 0xae, 0x5b, 0x17, 0xa3, 0x0c, 0x38, 0x2e, 0x83, 0xd6, 0x61, 0xa6, 0xa7, 0xc7, 0xa1,
|
||||
0x1c, 0x57, 0xbe, 0x2c, 0xa0, 0x66, 0xb6, 0xe3, 0x2c, 0x38, 0x49, 0x0e, 0xed, 0x86, 0x4a, 0xd9,
|
||||
0x61, 0x1e, 0x9e, 0x6f, 0x65, 0x3e, 0x78, 0x99, 0x6b, 0xd9, 0x84, 0x72, 0xbb, 0x94, 0xb5, 0xdc,
|
||||
0x96, 0xff, 0x5e, 0x0a, 0x26, 0x21, 0xaf, 0x04, 0x1e, 0xf4, 0xca, 0x14, 0x93, 0x08, 0x54, 0x47,
|
||||
0x46, 0x72, 0xf5, 0x7b, 0xf7, 0x54, 0xd5, 0xaf, 0x9f, 0x3c, 0x07, 0x97, 0xbf, 0x5f, 0x48, 0x30,
|
||||
0xb7, 0xd2, 0x7c, 0x64, 0x19, 0x3d, 0xd3, 0x35, 0x67, 0xd3, 0x74, 0x96, 0xe6, 0x97, 0x50, 0xb0,
|
||||
0x7a, 0x9a, 0x3b, 0x8f, 0x57, 0xdc, 0x79, 0xe0, 0x9e, 0xc6, 0xe6, 0x31, 0x13, 0x91, 0x72, 0x26,
|
||||
0xc1, 0x04, 0xd0, 0x06, 0x0c, 0x5b, 0x8a, 0xde, 0x21, 0x6e, 0x5a, 0xbd, 0x36, 0xc0, 0xfa, 0xd5,
|
||||
0x65, 0xcc, 0xd8, 0x03, 0x85, 0x0d, 0x97, 0xc6, 0x02, 0x45, 0xfe, 0x07, 0x09, 0x26, 0x1f, 0x6f,
|
||||
0x6d, 0x35, 0x56, 0x75, 0x7e, 0xa2, 0xf9, 0xdb, 0xea, 0x55, 0x28, 0x98, 0x8a, 0xbd, 0x17, 0xcd,
|
||||
0xf4, 0x8c, 0x86, 0x39, 0x05, 0xdd, 0x86, 0x12, 0xfb, 0x97, 0xd9, 0xc5, 0x8f, 0xd4, 0x08, 0x0f,
|
||||
0x84, 0xa5, 0x86, 0x18, 0x7b, 0x1e, 0xf8, 0x3f, 0xf6, 0x38, 0xd1, 0xfb, 0x50, 0x64, 0xf1, 0x87,
|
||||
0xe8, 0xed, 0x8c, 0x05, 0xba, 0x30, 0xaa, 0xee, 0x08, 0xf9, 0x35, 0x97, 0x18, 0xc0, 0x2e, 0x9c,
|
||||
0xbc, 0x0f, 0xb3, 0x81, 0x49, 0xb0, 0x55, 0x7c, 0xc2, 0x72, 0x2a, 0x6a, 0xc2, 0x10, 0xd3, 0xce,
|
||||
0x32, 0x67, 0x3e, 0xc3, 0x13, 0x68, 0x64, 0x21, 0xfc, 0xfa, 0x88, 0xfd, 0xa2, 0xd8, 0xc1, 0x92,
|
||||
0xd7, 0x61, 0x9c, 0x3f, 0x43, 0x1b, 0x96, 0xcd, 0x17, 0x13, 0x5d, 0x81, 0x7c, 0x57, 0xd5, 0x45,
|
||||
0x76, 0x1e, 0x15, 0x32, 0x79, 0x96, 0x59, 0xd8, 0x38, 0x27, 0x2b, 0x87, 0x22, 0x5e, 0xf9, 0x64,
|
||||
0xe5, 0x10, 0xb3, 0x71, 0xf9, 0x11, 0x14, 0xc5, 0x26, 0x05, 0x81, 0xf2, 0x27, 0x03, 0xe5, 0x13,
|
||||
0x80, 0x36, 0xa1, 0xb8, 0xda, 0xa8, 0x6b, 0x86, 0x53, 0xab, 0xb5, 0xd4, 0xb6, 0x15, 0xdd, 0xc1,
|
||||
0xa5, 0xd5, 0x65, 0x8c, 0x39, 0x05, 0xc9, 0x30, 0x4c, 0x0e, 0x5b, 0xc4, 0xb4, 0xb9, 0x1f, 0x8d,
|
||||
0xd4, 0x81, 0xf9, 0xc6, 0x43, 0x3e, 0x82, 0x05, 0x45, 0xfe, 0xa3, 0x1c, 0x14, 0xc5, 0x72, 0x9c,
|
||||
0xc3, 0xdd, 0x6d, 0x2d, 0x74, 0x77, 0x7b, 0x2d, 0x9b, 0x6b, 0xa4, 0x5e, 0xdc, 0xb6, 0x22, 0x17,
|
||||
0xb7, 0x1b, 0x19, 0xf1, 0x4e, 0xbe, 0xb5, 0x7d, 0x96, 0x83, 0x89, 0xb0, 0x53, 0xa2, 0x3b, 0x30,
|
||||
0xca, 0xd2, 0x94, 0xda, 0x22, 0x1b, 0x7e, 0x75, 0xec, 0x3d, 0xdd, 0x34, 0x7d, 0x12, 0x0e, 0xf2,
|
||||
0xa1, 0x8e, 0x27, 0xc6, 0xfc, 0x48, 0x4c, 0x3a, 0x7d, 0x49, 0x7b, 0xb6, 0xaa, 0x55, 0x9d, 0x0f,
|
||||
0x32, 0xd5, 0x55, 0xdd, 0xde, 0xb4, 0x9a, 0xb6, 0xa5, 0xea, 0x9d, 0x98, 0x22, 0xee, 0x94, 0x41,
|
||||
0x64, 0xf4, 0x1e, 0x4b, 0x99, 0xd4, 0xe8, 0x59, 0x2d, 0x92, 0x54, 0xfa, 0xba, 0x65, 0x1b, 0x3b,
|
||||
0xa0, 0xed, 0x35, 0xa3, 0xa5, 0x68, 0xce, 0xe6, 0x60, 0xb2, 0x4b, 0x2c, 0xa2, 0xb7, 0x88, 0x5b,
|
||||
0x6e, 0x3a, 0x10, 0xd8, 0x03, 0x93, 0xff, 0x56, 0x82, 0x51, 0xb1, 0x16, 0xe7, 0x70, 0xc9, 0xf9,
|
||||
0xed, 0xf0, 0x25, 0xe7, 0x5a, 0xc6, 0xc8, 0x91, 0x7c, 0xc3, 0xf9, 0x4b, 0xdf, 0x74, 0x16, 0x2b,
|
||||
0xd8, 0x71, 0xd9, 0x33, 0xa8, 0x1d, 0x3d, 0x2e, 0xec, 0x94, 0x63, 0x4e, 0x41, 0x3d, 0x98, 0x52,
|
||||
0x23, 0xc1, 0x45, 0xec, 0x59, 0x2d, 0x9b, 0x25, 0x9e, 0x58, 0xbd, 0x2c, 0xe0, 0xa7, 0xa2, 0x14,
|
||||
0x1c, 0x53, 0x21, 0x13, 0x88, 0x71, 0xa1, 0x77, 0xa1, 0xb0, 0x67, 0xdb, 0x66, 0xc2, 0xf3, 0xf9,
|
||||
0x80, 0x90, 0xe6, 0x9b, 0x50, 0xe2, 0xb3, 0xdb, 0xda, 0x6a, 0x60, 0x0e, 0x25, 0xff, 0x5d, 0xce,
|
||||
0x5b, 0x0f, 0x7e, 0xe7, 0x78, 0xdb, 0x9b, 0xed, 0x92, 0xa6, 0x50, 0xca, 0x1d, 0xdb, 0xb9, 0x1f,
|
||||
0xcf, 0x06, 0x0c, 0xf7, 0x68, 0x38, 0xc6, 0x8d, 0xb6, 0xfc, 0x50, 0x2f, 0x9d, 0x25, 0xd4, 0x8f,
|
||||
0x26, 0x85, 0x79, 0xf4, 0x18, 0xf2, 0xb6, 0x96, 0xf5, 0x9e, 0x2b, 0x10, 0xb7, 0xd6, 0x9a, 0x7e,
|
||||
0xac, 0xdc, 0x5a, 0x6b, 0x62, 0x06, 0x81, 0x36, 0x61, 0x88, 0xa5, 0x53, 0x16, 0x1d, 0xf2, 0xd9,
|
||||
0xa3, 0x0d, 0x5b, 0x41, 0xdf, 0xa5, 0xd8, 0x2f, 0x8a, 0x1d, 0x1c, 0xf9, 0x13, 0x18, 0x0f, 0x85,
|
||||
0x10, 0xf4, 0x31, 0x8c, 0x69, 0x86, 0xd2, 0xae, 0x2b, 0x9a, 0xa2, 0xb7, 0x88, 0xfb, 0xb5, 0xe3,
|
||||
0x5a, 0xd2, 0xd9, 0x5b, 0x0b, 0xf0, 0x89, 0x00, 0x34, 0x2b, 0x94, 0x8c, 0x05, 0x69, 0x38, 0x84,
|
||||
0x28, 0x2b, 0x00, 0xfe, 0x1c, 0x51, 0x05, 0x86, 0x98, 0xa7, 0x3a, 0xa9, 0x6e, 0xa4, 0x3e, 0xc2,
|
||||
0x2c, 0x64, 0x0e, 0x4c, 0xb1, 0x33, 0x8e, 0x6e, 0x01, 0x50, 0xd2, 0xb2, 0x88, 0xcd, 0xb7, 0x33,
|
||||
0x17, 0xfe, 0x62, 0xda, 0xf4, 0x28, 0x38, 0xc0, 0x25, 0xff, 0xa3, 0x04, 0xe3, 0x1b, 0xc4, 0xfe,
|
||||
0xd4, 0xb0, 0xf6, 0x1b, 0x86, 0xa6, 0xb6, 0xfa, 0xe7, 0x90, 0x07, 0x70, 0x28, 0x0f, 0xbc, 0x31,
|
||||
0x60, 0x67, 0x42, 0xd6, 0xa5, 0x65, 0x03, 0xf9, 0x2b, 0x09, 0xe6, 0x43, 0x9c, 0x0f, 0xfd, 0xc3,
|
||||
0xbf, 0x0d, 0x43, 0xa6, 0x61, 0xd9, 0x6e, 0x8d, 0x70, 0x2a, 0x85, 0x2c, 0xc2, 0x06, 0xaa, 0x04,
|
||||
0x06, 0x83, 0x1d, 0x34, 0xb4, 0x06, 0x39, 0xdb, 0x10, 0xae, 0x7a, 0x3a, 0x4c, 0x42, 0xac, 0x3a,
|
||||
0x08, 0xcc, 0xdc, 0x96, 0x81, 0x73, 0xb6, 0xc1, 0x36, 0xa2, 0x1c, 0xe2, 0x0a, 0x86, 0xaf, 0x97,
|
||||
0x34, 0x03, 0x0c, 0x85, 0x5d, 0xcb, 0xe8, 0x9e, 0x79, 0x0e, 0xde, 0x46, 0xac, 0x58, 0x46, 0x17,
|
||||
0x73, 0x2c, 0xf9, 0x6b, 0x09, 0xa6, 0x43, 0x9c, 0xe7, 0x90, 0x3a, 0xde, 0x0d, 0xa7, 0x8e, 0x1b,
|
||||
0xa7, 0x99, 0x48, 0x4a, 0x02, 0xf9, 0x3a, 0x17, 0x99, 0x06, 0x9b, 0x30, 0xda, 0x85, 0x51, 0xd3,
|
||||
0x68, 0x37, 0x5f, 0xc0, 0xf7, 0xcd, 0x49, 0x96, 0xd2, 0x1b, 0x3e, 0x16, 0x0e, 0x02, 0xa3, 0x43,
|
||||
0x98, 0xd6, 0x95, 0x2e, 0xa1, 0xa6, 0xd2, 0x22, 0xcd, 0x17, 0xf0, 0xe2, 0x73, 0x91, 0x7f, 0x40,
|
||||
0x89, 0x22, 0xe2, 0xb8, 0x12, 0xb4, 0x0e, 0x45, 0xd5, 0xe4, 0x25, 0xa6, 0xa8, 0x25, 0x06, 0xe6,
|
||||
0x61, 0xa7, 0x20, 0x75, 0xe2, 0xb9, 0xf8, 0x81, 0x5d, 0x0c, 0xf9, 0x5f, 0xa3, 0xde, 0xc0, 0x2b,
|
||||
0x96, 0x47, 0x50, 0xe2, 0x9d, 0x26, 0x2d, 0x43, 0x73, 0x3f, 0x75, 0xf0, 0xcb, 0x85, 0x18, 0x7b,
|
||||
0x7e, 0x54, 0xb9, 0x9c, 0xf0, 0x8a, 0xed, 0x92, 0xb1, 0x27, 0x8c, 0x36, 0xa0, 0x60, 0xfe, 0x98,
|
||||
0xe2, 0x8a, 0xa7, 0x49, 0x5e, 0x51, 0x71, 0x1c, 0xf4, 0x6b, 0x50, 0x24, 0x7a, 0x9b, 0xd7, 0x6b,
|
||||
0xce, 0x3b, 0x02, 0x9f, 0xd5, 0x43, 0x67, 0x08, 0xbb, 0x34, 0xf9, 0x0f, 0xf2, 0x91, 0x59, 0xf1,
|
||||
0x9c, 0xfa, 0xf4, 0x85, 0x39, 0x87, 0x57, 0xf3, 0xa5, 0x3a, 0xc8, 0x0e, 0x14, 0x45, 0x46, 0x16,
|
||||
0x3e, 0xff, 0xcb, 0xd3, 0xf8, 0x7c, 0x30, 0xd9, 0x79, 0x57, 0x2e, 0x77, 0xd0, 0x05, 0x46, 0x1f,
|
||||
0xc1, 0x30, 0x71, 0x54, 0x38, 0x29, 0xf4, 0xee, 0x69, 0x54, 0xf8, 0xe1, 0xd7, 0x2f, 0xb5, 0xc5,
|
||||
0x98, 0x40, 0x45, 0x6f, 0xb1, 0xf5, 0x62, 0xbc, 0xac, 0x32, 0xa5, 0xe5, 0x02, 0xcf, 0x6a, 0x57,
|
||||
0x9c, 0x69, 0x7b, 0xc3, 0xcf, 0x8f, 0x2a, 0xe0, 0xff, 0xc4, 0x41, 0x09, 0xf9, 0x9f, 0x25, 0x98,
|
||||
0xe6, 0x2b, 0xd4, 0xea, 0x59, 0xaa, 0xdd, 0x3f, 0xb7, 0xfc, 0xf5, 0x24, 0x94, 0xbf, 0x6e, 0x0f,
|
||||
0x58, 0x96, 0x98, 0x85, 0xa9, 0x39, 0xec, 0x1b, 0x09, 0x2e, 0xc6, 0xb8, 0xcf, 0x21, 0x7c, 0x6e,
|
||||
0x87, 0xc3, 0xe7, 0x1b, 0xa7, 0x9d, 0x50, 0x4a, 0x08, 0xfd, 0xaf, 0xe9, 0x84, 0xe9, 0xf0, 0x93,
|
||||
0x72, 0x0b, 0xc0, 0xb4, 0xd4, 0x03, 0x55, 0x23, 0x1d, 0xf1, 0xf1, 0xbf, 0x14, 0x68, 0xed, 0xf2,
|
||||
0x28, 0x38, 0xc0, 0x85, 0x28, 0xcc, 0xb5, 0xc9, 0xae, 0xd2, 0xd3, 0xec, 0xc5, 0x76, 0x7b, 0x49,
|
||||
0x31, 0x95, 0x1d, 0x55, 0x53, 0x6d, 0x55, 0x3c, 0x93, 0x8c, 0xd4, 0x1f, 0x38, 0x1f, 0xe5, 0x93,
|
||||
0x38, 0x9e, 0x1f, 0x55, 0xae, 0x24, 0x7d, 0x15, 0x73, 0x59, 0xfa, 0x38, 0x05, 0x1a, 0xf5, 0xa1,
|
||||
0x6c, 0x91, 0x4f, 0x7a, 0xaa, 0x45, 0xda, 0xcb, 0x96, 0x61, 0x86, 0xd4, 0xe6, 0xb9, 0xda, 0xdf,
|
||||
0x3a, 0x3e, 0xaa, 0x94, 0x71, 0x0a, 0xcf, 0x60, 0xc5, 0xa9, 0xf0, 0xe8, 0x29, 0xcc, 0x28, 0xa2,
|
||||
0x09, 0x2f, 0xa8, 0xd5, 0x39, 0x25, 0xf7, 0x8e, 0x8f, 0x2a, 0x33, 0x8b, 0x71, 0xf2, 0x60, 0x85,
|
||||
0x49, 0xa0, 0xa8, 0x06, 0xc5, 0x03, 0xde, 0xaf, 0x47, 0xcb, 0x43, 0x1c, 0x9f, 0xe5, 0x8b, 0xa2,
|
||||
0xd3, 0xc2, 0xc7, 0x30, 0x87, 0x57, 0x9a, 0xfc, 0xf4, 0xb9, 0x5c, 0xec, 0x4a, 0xcc, 0x4a, 0x4e,
|
||||
0x71, 0xe2, 0xf9, 0x4b, 0x79, 0xc9, 0x8f, 0x5a, 0x8f, 0x7d, 0x12, 0x0e, 0xf2, 0xa1, 0x0f, 0x61,
|
||||
0x64, 0x4f, 0xbc, 0xab, 0xd0, 0x72, 0x31, 0x53, 0xae, 0x0e, 0xbd, 0xc3, 0xd4, 0xa7, 0x85, 0x8a,
|
||||
0x11, 0x77, 0x98, 0x62, 0x1f, 0x11, 0xbd, 0x0a, 0x45, 0xfe, 0x63, 0x75, 0x99, 0x3f, 0x43, 0x96,
|
||||
0xfc, 0xd8, 0xf6, 0xd8, 0x19, 0xc6, 0x2e, 0xdd, 0x65, 0x5d, 0x6d, 0x2c, 0xf1, 0xe7, 0xf0, 0x08,
|
||||
0xeb, 0x6a, 0x63, 0x09, 0xbb, 0x74, 0xf4, 0x31, 0x14, 0x29, 0x59, 0x53, 0xf5, 0xde, 0x61, 0x19,
|
||||
0x32, 0x7d, 0x4c, 0x6f, 0x3e, 0xe4, 0xdc, 0x91, 0x07, 0x41, 0x5f, 0x83, 0xa0, 0x63, 0x17, 0x16,
|
||||
0xed, 0xc1, 0x88, 0xd5, 0xd3, 0x17, 0xe9, 0x36, 0x25, 0x56, 0x79, 0x94, 0xeb, 0x18, 0x14, 0xce,
|
||||
0xb1, 0xcb, 0x1f, 0xd5, 0xe2, 0xad, 0x90, 0xc7, 0x81, 0x7d, 0x70, 0xb4, 0x07, 0xc0, 0x7f, 0xf0,
|
||||
0xb7, 0xc7, 0xf2, 0x1c, 0x57, 0x75, 0x2f, 0x8b, 0xaa, 0xa4, 0x27, 0x4e, 0xf1, 0xfd, 0xc1, 0x23,
|
||||
0xe3, 0x00, 0x36, 0xfa, 0x43, 0x09, 0x10, 0xed, 0x99, 0xa6, 0x46, 0xba, 0x44, 0xb7, 0x15, 0x8d,
|
||||
0x8f, 0xd2, 0xf2, 0x18, 0x57, 0xf9, 0xf6, 0xa0, 0x15, 0x8c, 0x09, 0x46, 0x55, 0x7b, 0x9f, 0x15,
|
||||
0xe2, 0xac, 0x38, 0x41, 0x2f, 0xdb, 0xc4, 0x5d, 0x31, 0xeb, 0xf1, 0x4c, 0x9b, 0x98, 0xfc, 0xaa,
|
||||
0xeb, 0x6f, 0xa2, 0xa0, 0x63, 0x17, 0x16, 0x3d, 0x81, 0x39, 0xb7, 0xb1, 0x14, 0x1b, 0x86, 0xbd,
|
||||
0xa2, 0x6a, 0x84, 0xf6, 0xa9, 0x4d, 0xba, 0xe5, 0x09, 0xee, 0x60, 0x5e, 0x77, 0x0d, 0x4e, 0xe4,
|
||||
0xc2, 0x29, 0xd2, 0xa8, 0x0b, 0x15, 0x37, 0x38, 0xb1, 0x93, 0xeb, 0x45, 0xc7, 0x87, 0xb4, 0xa5,
|
||||
0x68, 0xce, 0x97, 0x96, 0x49, 0xae, 0xe0, 0x95, 0xe3, 0xa3, 0x4a, 0x65, 0xf9, 0x64, 0x56, 0x3c,
|
||||
0x08, 0x0b, 0xbd, 0x0f, 0x65, 0x25, 0x4d, 0xcf, 0x14, 0xd7, 0xf3, 0x73, 0x16, 0xf1, 0x52, 0x15,
|
||||
0xa4, 0x4a, 0x23, 0x1b, 0xa6, 0x94, 0x70, 0x8b, 0x2f, 0x2d, 0x4f, 0x67, 0x7a, 0xb4, 0x8d, 0x74,
|
||||
0x06, 0xfb, 0xef, 0x2b, 0x11, 0x02, 0xc5, 0x31, 0x0d, 0xe8, 0xf7, 0x00, 0x29, 0xd1, 0xae, 0x64,
|
||||
0x5a, 0x46, 0x99, 0x12, 0x5d, 0xac, 0x9d, 0xd9, 0x77, 0xbb, 0x18, 0x89, 0xe2, 0x04, 0x3d, 0xac,
|
||||
0x8e, 0x57, 0x22, 0x9d, 0xd4, 0xb4, 0x3c, 0xcf, 0x95, 0xd7, 0xb2, 0x29, 0xf7, 0xe4, 0x02, 0x1f,
|
||||
0x94, 0xa2, 0x88, 0x38, 0xae, 0x04, 0xad, 0xc1, 0xac, 0x18, 0xdc, 0xd6, 0xa9, 0xb2, 0x4b, 0x9a,
|
||||
0x7d, 0xda, 0xb2, 0x35, 0x5a, 0x9e, 0xe1, 0xf1, 0x9d, 0x7f, 0xd4, 0x5c, 0x4c, 0xa0, 0xe3, 0x44,
|
||||
0x29, 0xf4, 0x36, 0x4c, 0xed, 0x1a, 0xd6, 0x8e, 0xda, 0x6e, 0x13, 0xdd, 0x45, 0x9a, 0xe5, 0x48,
|
||||
0xfc, 0xb9, 0x68, 0x25, 0x42, 0xc3, 0x31, 0x6e, 0x44, 0xe1, 0xa2, 0x40, 0x6e, 0x58, 0x46, 0x6b,
|
||||
0xdd, 0xe8, 0xe9, 0xb6, 0x53, 0xf6, 0x5d, 0xf4, 0xd2, 0xe8, 0xc5, 0xc5, 0x24, 0x86, 0xe7, 0x47,
|
||||
0x95, 0xab, 0xc9, 0x97, 0x01, 0x9f, 0x09, 0x27, 0x63, 0x23, 0x13, 0xc6, 0x44, 0x7f, 0x3c, 0x7f,
|
||||
0xb7, 0x2a, 0x97, 0xf9, 0xd1, 0xbf, 0x3f, 0x38, 0xe0, 0x79, 0x22, 0xd1, 0xf3, 0x3f, 0x75, 0x7c,
|
||||
0x54, 0x19, 0x0b, 0x32, 0xe0, 0x90, 0x06, 0xde, 0x0f, 0x25, 0xbe, 0xc2, 0x9d, 0x4f, 0x4f, 0xf9,
|
||||
0xe9, 0xfa, 0xa1, 0x7c, 0xd3, 0x5e, 0x58, 0x3f, 0x54, 0x00, 0xf2, 0xe4, 0x97, 0xf5, 0xff, 0xcc,
|
||||
0xc1, 0x8c, 0xcf, 0x9c, 0xb9, 0x1f, 0x2a, 0x41, 0xe4, 0xff, 0xfb, 0xca, 0xb3, 0xf5, 0x28, 0xf9,
|
||||
0x4b, 0xf7, 0xbf, 0xaf, 0x47, 0xc9, 0xb7, 0x2d, 0xe5, 0xf6, 0xf0, 0xd7, 0xb9, 0xe0, 0x04, 0x4e,
|
||||
0xd9, 0x28, 0xf3, 0x02, 0x5a, 0xab, 0x7f, 0x72, 0xbd, 0x36, 0xf2, 0x37, 0x79, 0x98, 0x8a, 0x9e,
|
||||
0xc6, 0x50, 0x3f, 0x85, 0x34, 0xb0, 0x9f, 0xa2, 0x01, 0xb3, 0xbb, 0x3d, 0x4d, 0xeb, 0xf3, 0x39,
|
||||
0x04, 0x9a, 0x2a, 0x9c, 0x2f, 0x9b, 0x3f, 0x17, 0x92, 0xb3, 0x2b, 0x09, 0x3c, 0x38, 0x51, 0x32,
|
||||
0xde, 0x5e, 0x51, 0xf8, 0xb1, 0xed, 0x15, 0x43, 0x67, 0x68, 0xaf, 0x48, 0xee, 0x50, 0xc9, 0x9f,
|
||||
0xa9, 0x43, 0xe5, 0x2c, 0xbd, 0x15, 0x09, 0x41, 0x6c, 0x60, 0x9f, 0xf0, 0xaf, 0x60, 0x22, 0xdc,
|
||||
0xef, 0xe3, 0xec, 0xa5, 0xd3, 0x72, 0x24, 0xbe, 0x20, 0x07, 0xf6, 0xd2, 0x19, 0xc7, 0x1e, 0x87,
|
||||
0x7c, 0x2c, 0xc1, 0x5c, 0x72, 0x5f, 0x2f, 0xd2, 0x60, 0xa2, 0xab, 0x1c, 0x06, 0x7b, 0xad, 0xa5,
|
||||
0x33, 0x3e, 0xa0, 0xf1, 0x46, 0x8f, 0xf5, 0x10, 0x16, 0x8e, 0x60, 0xa3, 0x0f, 0xa0, 0xd4, 0x55,
|
||||
0x0e, 0x9b, 0x3d, 0xab, 0x43, 0xce, 0xfc, 0x50, 0xc7, 0x8f, 0xd1, 0xba, 0x40, 0xc1, 0x1e, 0x9e,
|
||||
0xfc, 0x83, 0x04, 0xf3, 0x29, 0xed, 0x1b, 0xff, 0x87, 0x66, 0xf9, 0x17, 0x12, 0xfc, 0x2c, 0xf5,
|
||||
0x1a, 0x86, 0xee, 0x86, 0x3a, 0x4d, 0xe4, 0x48, 0xa7, 0x09, 0x8a, 0x0b, 0xbe, 0xa4, 0x46, 0x93,
|
||||
0x2f, 0x24, 0x28, 0xa7, 0xdd, 0x4b, 0xd1, 0x9d, 0x90, 0x91, 0xbf, 0x88, 0x18, 0x39, 0x1d, 0x93,
|
||||
0x7b, 0x49, 0x36, 0xfe, 0x8b, 0x04, 0x97, 0x4f, 0xa8, 0xef, 0xbc, 0xeb, 0x0f, 0x69, 0x07, 0xb9,
|
||||
0xf8, 0xcb, 0xb9, 0xf8, 0xec, 0xe6, 0x5f, 0x7f, 0x12, 0x78, 0x70, 0xaa, 0x34, 0xda, 0x86, 0x79,
|
||||
0x71, 0xf7, 0x8a, 0xd2, 0x44, 0xe9, 0xc2, 0x1b, 0xf2, 0x96, 0x93, 0x59, 0x70, 0x9a, 0xac, 0xfc,
|
||||
0x57, 0x12, 0xcc, 0x25, 0x3f, 0x38, 0xa0, 0x37, 0x43, 0x4b, 0x5e, 0x89, 0x2c, 0xf9, 0x64, 0x44,
|
||||
0x4a, 0x2c, 0xf8, 0x47, 0x30, 0x21, 0x9e, 0x25, 0x04, 0x8c, 0x70, 0x66, 0x39, 0x29, 0x3b, 0x09,
|
||||
0x08, 0xb7, 0x38, 0xe6, 0xc7, 0x24, 0x3c, 0x86, 0x23, 0x68, 0xf2, 0x67, 0x39, 0x18, 0x6a, 0xb6,
|
||||
0x14, 0x8d, 0x9c, 0x43, 0x6d, 0xfc, 0x4e, 0xa8, 0x36, 0x1e, 0xf4, 0xa7, 0x6e, 0xdc, 0xaa, 0xd4,
|
||||
0xb2, 0x18, 0x47, 0xca, 0xe2, 0xd7, 0x32, 0xa1, 0x9d, 0x5c, 0x11, 0xff, 0x26, 0x8c, 0x78, 0x4a,
|
||||
0x4f, 0x97, 0xa8, 0xe5, 0x3f, 0xcf, 0xc1, 0x68, 0x40, 0xc5, 0x29, 0xd3, 0xfc, 0x6e, 0xa8, 0xb6,
|
||||
0xc9, 0x67, 0x78, 0x04, 0x0a, 0xe8, 0xaa, 0xba, 0xd5, 0x8c, 0xd3, 0xaa, 0xed, 0x37, 0xe7, 0xc6,
|
||||
0x8b, 0x9c, 0x5f, 0xc1, 0x84, 0xad, 0x58, 0x1d, 0x62, 0x7b, 0x1f, 0x45, 0x9c, 0x56, 0x32, 0xef,
|
||||
0x6f, 0x06, 0xb6, 0x42, 0x54, 0x1c, 0xe1, 0xbe, 0xf4, 0x00, 0xc6, 0x43, 0xca, 0x4e, 0xd5, 0x69,
|
||||
0xfd, 0x37, 0x12, 0xfc, 0x62, 0xe0, 0x43, 0x12, 0xaa, 0x87, 0x0e, 0x49, 0x35, 0x72, 0x48, 0x16,
|
||||
0xd2, 0x01, 0x5e, 0x5e, 0xc7, 0x5e, 0x7d, 0xe9, 0xd9, 0xf7, 0x0b, 0x17, 0xbe, 0xfd, 0x7e, 0xe1,
|
||||
0xc2, 0x77, 0xdf, 0x2f, 0x5c, 0xf8, 0xfd, 0xe3, 0x05, 0xe9, 0xd9, 0xf1, 0x82, 0xf4, 0xed, 0xf1,
|
||||
0x82, 0xf4, 0xdd, 0xf1, 0x82, 0xf4, 0xef, 0xc7, 0x0b, 0xd2, 0x1f, 0xff, 0xb0, 0x70, 0xe1, 0x83,
|
||||
0x2b, 0x27, 0xfe, 0x69, 0xfc, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x35, 0xc8, 0xa8, 0xd1, 0x53,
|
||||
0x3f, 0x00, 0x00,
|
||||
// 3797 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0x4d, 0x6c, 0x1c, 0xc9,
|
||||
0x75, 0x56, 0xcf, 0x0c, 0x39, 0xc3, 0x47, 0xf1, 0xaf, 0x48, 0x91, 0x63, 0xc9, 0xe2, 0xc8, 0xbd,
|
||||
0x88, 0xa2, 0xdd, 0x68, 0x67, 0x56, 0x5c, 0xad, 0xbc, 0x59, 0x21, 0xf6, 0x72, 0x48, 0x51, 0xa2,
|
||||
0xc3, 0x9f, 0xd9, 0x1a, 0x52, 0x36, 0x16, 0x59, 0x67, 0x9b, 0x3d, 0xc5, 0x61, 0x2f, 0x7b, 0xba,
|
||||
0xdb, 0x5d, 0x3d, 0x34, 0x27, 0xc8, 0x21, 0x87, 0x5c, 0x0c, 0x04, 0x48, 0x2e, 0x4e, 0x72, 0xcc,
|
||||
0x22, 0x40, 0x6e, 0x41, 0x8e, 0xc9, 0xc1, 0x30, 0x12, 0xc4, 0x01, 0x84, 0xc0, 0x09, 0x0c, 0xe4,
|
||||
0x10, 0x9f, 0x88, 0x2c, 0x7d, 0x0a, 0x72, 0xca, 0x2d, 0xd0, 0x29, 0xa8, 0xea, 0xea, 0xff, 0x6e,
|
||||
0x4e, 0x0f, 0x2d, 0x11, 0xd9, 0xc0, 0x27, 0x69, 0xea, 0xbd, 0xf7, 0xbd, 0x57, 0x55, 0xaf, 0xde,
|
||||
0x7b, 0x55, 0xfd, 0x08, 0x1b, 0xc7, 0xef, 0xd3, 0xba, 0x66, 0x36, 0x8e, 0xfb, 0x07, 0xc4, 0x36,
|
||||
0x88, 0x43, 0x68, 0xe3, 0x84, 0x18, 0x1d, 0xd3, 0x6e, 0x08, 0x82, 0x62, 0x69, 0x0d, 0x72, 0xea,
|
||||
0x10, 0x83, 0x6a, 0xa6, 0x41, 0x1b, 0x27, 0x0f, 0x0e, 0x88, 0xa3, 0x3c, 0x68, 0x74, 0x89, 0x41,
|
||||
0x6c, 0xc5, 0x21, 0x9d, 0xba, 0x65, 0x9b, 0x8e, 0x89, 0x6e, 0xbb, 0xec, 0x75, 0xc5, 0xd2, 0xea,
|
||||
0x01, 0x7b, 0x5d, 0xb0, 0xdf, 0x7c, 0xbb, 0xab, 0x39, 0x47, 0xfd, 0x83, 0xba, 0x6a, 0xf6, 0x1a,
|
||||
0x5d, 0xb3, 0x6b, 0x36, 0xb8, 0xd4, 0x41, 0xff, 0x90, 0xff, 0xe2, 0x3f, 0xf8, 0xff, 0x5c, 0xb4,
|
||||
0x9b, 0x72, 0x48, 0xb9, 0x6a, 0xda, 0xa4, 0x71, 0x92, 0xd0, 0x78, 0xf3, 0x61, 0xc0, 0xd3, 0x53,
|
||||
0xd4, 0x23, 0xcd, 0x20, 0xf6, 0xa0, 0x61, 0x1d, 0x77, 0xd9, 0x00, 0x6d, 0xf4, 0x88, 0xa3, 0xa4,
|
||||
0x49, 0x35, 0xb2, 0xa4, 0xec, 0xbe, 0xe1, 0x68, 0x3d, 0x92, 0x10, 0x78, 0x34, 0x4c, 0x80, 0xaa,
|
||||
0x47, 0xa4, 0xa7, 0x24, 0xe4, 0xde, 0xcd, 0x92, 0xeb, 0x3b, 0x9a, 0xde, 0xd0, 0x0c, 0x87, 0x3a,
|
||||
0x76, 0x5c, 0x48, 0x7e, 0x08, 0xb3, 0xab, 0xba, 0x6e, 0x7e, 0x9f, 0x74, 0xd6, 0xda, 0x9b, 0xeb,
|
||||
0xb6, 0x76, 0x42, 0x6c, 0x74, 0x07, 0x4a, 0x86, 0xd2, 0x23, 0x55, 0xe9, 0x8e, 0x74, 0x6f, 0xa2,
|
||||
0x79, 0xfd, 0xc5, 0x59, 0xed, 0xda, 0xf9, 0x59, 0xad, 0xb4, 0xa3, 0xf4, 0x08, 0xe6, 0x14, 0xf9,
|
||||
0x31, 0xcc, 0x09, 0xa9, 0x0d, 0x9d, 0x9c, 0x3e, 0x37, 0xf5, 0x7e, 0x8f, 0xa0, 0xbb, 0x30, 0xde,
|
||||
0xe1, 0x00, 0x42, 0x70, 0x5a, 0x08, 0x8e, 0xbb, 0xb0, 0x58, 0x50, 0x65, 0x0a, 0x33, 0x42, 0xf8,
|
||||
0x99, 0x49, 0x9d, 0x96, 0xe2, 0x1c, 0xa1, 0x15, 0x00, 0x4b, 0x71, 0x8e, 0x5a, 0x36, 0x39, 0xd4,
|
||||
0x4e, 0x85, 0x38, 0x12, 0xe2, 0xd0, 0xf2, 0x29, 0x38, 0xc4, 0x85, 0xee, 0x43, 0xc5, 0x26, 0x4a,
|
||||
0x67, 0xd7, 0xd0, 0x07, 0xd5, 0xc2, 0x1d, 0xe9, 0x5e, 0xa5, 0x39, 0x2b, 0x24, 0x2a, 0x58, 0x8c,
|
||||
0x63, 0x9f, 0x43, 0xfe, 0x61, 0x01, 0x26, 0xd6, 0x15, 0xd2, 0x33, 0x8d, 0x36, 0x71, 0xd0, 0xa7,
|
||||
0x50, 0x61, 0xdb, 0xd5, 0x51, 0x1c, 0x85, 0x6b, 0x9b, 0x5c, 0x79, 0xa7, 0x1e, 0xb8, 0x93, 0xbf,
|
||||
0x7a, 0x75, 0xeb, 0xb8, 0xcb, 0x06, 0x68, 0x9d, 0x71, 0xd7, 0x4f, 0x1e, 0xd4, 0x77, 0x0f, 0x3e,
|
||||
0x23, 0xaa, 0xb3, 0x4d, 0x1c, 0x25, 0xb0, 0x2f, 0x18, 0xc3, 0x3e, 0x2a, 0xda, 0x81, 0x12, 0xb5,
|
||||
0x88, 0xca, 0x2d, 0x9b, 0x5c, 0xb9, 0x5f, 0xbf, 0xd0, 0x59, 0xeb, 0xbe, 0x65, 0x6d, 0x8b, 0xa8,
|
||||
0xc1, 0x8a, 0xb3, 0x5f, 0x98, 0xe3, 0xa0, 0xe7, 0x30, 0x4e, 0x1d, 0xc5, 0xe9, 0xd3, 0x6a, 0x91,
|
||||
0x23, 0xd6, 0x73, 0x23, 0x72, 0xa9, 0x60, 0x33, 0xdc, 0xdf, 0x58, 0xa0, 0xc9, 0xff, 0x59, 0x00,
|
||||
0xe4, 0xf3, 0xae, 0x99, 0x46, 0x47, 0x73, 0x34, 0xd3, 0x40, 0x1f, 0x40, 0xc9, 0x19, 0x58, 0x9e,
|
||||
0x0b, 0xdc, 0xf5, 0x0c, 0xda, 0x1b, 0x58, 0xe4, 0xe5, 0x59, 0x6d, 0x31, 0x29, 0xc1, 0x28, 0x98,
|
||||
0xcb, 0xa0, 0x2d, 0xdf, 0xd4, 0x02, 0x97, 0x7e, 0x18, 0x55, 0xfd, 0xf2, 0xac, 0x96, 0x72, 0xd8,
|
||||
0xea, 0x3e, 0x52, 0xd4, 0x40, 0x74, 0x02, 0x48, 0x57, 0xa8, 0xb3, 0x67, 0x2b, 0x06, 0x75, 0x35,
|
||||
0x69, 0x3d, 0x22, 0x16, 0xe1, 0xad, 0x7c, 0x9b, 0xc6, 0x24, 0x9a, 0x37, 0x85, 0x15, 0x68, 0x2b,
|
||||
0x81, 0x86, 0x53, 0x34, 0x30, 0x6f, 0xb6, 0x89, 0x42, 0x4d, 0xa3, 0x5a, 0x8a, 0x7a, 0x33, 0xe6,
|
||||
0xa3, 0x58, 0x50, 0xd1, 0x9b, 0x50, 0xee, 0x11, 0x4a, 0x95, 0x2e, 0xa9, 0x8e, 0x71, 0xc6, 0x19,
|
||||
0xc1, 0x58, 0xde, 0x76, 0x87, 0xb1, 0x47, 0x97, 0x7f, 0x24, 0xc1, 0x94, 0xbf, 0x72, 0x5b, 0x1a,
|
||||
0x75, 0xd0, 0xef, 0x24, 0xfc, 0xb0, 0x9e, 0x6f, 0x4a, 0x4c, 0x9a, 0x7b, 0xa1, 0xef, 0xf3, 0xde,
|
||||
0x48, 0xc8, 0x07, 0xb7, 0x61, 0x4c, 0x73, 0x48, 0x8f, 0xed, 0x43, 0xf1, 0xde, 0xe4, 0xca, 0xbd,
|
||||
0xbc, 0x2e, 0xd3, 0x9c, 0x12, 0xa0, 0x63, 0x9b, 0x4c, 0x1c, 0xbb, 0x28, 0xf2, 0x9f, 0x96, 0x42,
|
||||
0xe6, 0x33, 0xd7, 0x44, 0x9f, 0x40, 0x85, 0x12, 0x9d, 0xa8, 0x8e, 0x69, 0x0b, 0xf3, 0xdf, 0xcd,
|
||||
0x69, 0xbe, 0x72, 0x40, 0xf4, 0xb6, 0x10, 0x6d, 0x5e, 0x67, 0xf6, 0x7b, 0xbf, 0xb0, 0x0f, 0x89,
|
||||
0x3e, 0x82, 0x8a, 0x43, 0x7a, 0x96, 0xae, 0x38, 0x44, 0x9c, 0xa3, 0x37, 0xc2, 0x53, 0x60, 0x9e,
|
||||
0xc3, 0xc0, 0x5a, 0x66, 0x67, 0x4f, 0xb0, 0xf1, 0xe3, 0xe3, 0x2f, 0x89, 0x37, 0x8a, 0x7d, 0x18,
|
||||
0x74, 0x02, 0xd3, 0x7d, 0xab, 0xc3, 0x38, 0x1d, 0x16, 0x05, 0xbb, 0x03, 0xe1, 0x49, 0x8f, 0xf2,
|
||||
0xae, 0xcd, 0x7e, 0x44, 0xba, 0xb9, 0x28, 0x74, 0x4d, 0x47, 0xc7, 0x71, 0x4c, 0x0b, 0x5a, 0x85,
|
||||
0x99, 0x9e, 0x66, 0xb0, 0xb8, 0x34, 0x68, 0x13, 0xd5, 0x34, 0x3a, 0x94, 0xbb, 0xd5, 0x58, 0x73,
|
||||
0x49, 0x00, 0xcc, 0x6c, 0x47, 0xc9, 0x38, 0xce, 0x8f, 0xbe, 0x05, 0xc8, 0x9b, 0xc6, 0x53, 0x37,
|
||||
0x88, 0x6b, 0xa6, 0xc1, 0x7d, 0xae, 0x18, 0x38, 0xf7, 0x5e, 0x82, 0x03, 0xa7, 0x48, 0xa1, 0x2d,
|
||||
0x58, 0xb0, 0xc9, 0x89, 0xc6, 0xe6, 0xf8, 0x4c, 0xa3, 0x8e, 0x69, 0x0f, 0xb6, 0xb4, 0x9e, 0xe6,
|
||||
0x54, 0xc7, 0xb9, 0x4d, 0xd5, 0xf3, 0xb3, 0xda, 0x02, 0x4e, 0xa1, 0xe3, 0x54, 0x29, 0xf9, 0xcf,
|
||||
0xc6, 0x61, 0x26, 0x16, 0x6f, 0xd0, 0x73, 0x58, 0x54, 0xfb, 0xb6, 0x4d, 0x0c, 0x67, 0xa7, 0xdf,
|
||||
0x3b, 0x20, 0x76, 0x5b, 0x3d, 0x22, 0x9d, 0xbe, 0x4e, 0x3a, 0xdc, 0x51, 0xc6, 0x9a, 0xcb, 0xc2,
|
||||
0xe2, 0xc5, 0xb5, 0x54, 0x2e, 0x9c, 0x21, 0xcd, 0x56, 0xc1, 0xe0, 0x43, 0xdb, 0x1a, 0xa5, 0x3e,
|
||||
0x66, 0x81, 0x63, 0xfa, 0xab, 0xb0, 0x93, 0xe0, 0xc0, 0x29, 0x52, 0xcc, 0xc6, 0x0e, 0xa1, 0x9a,
|
||||
0x4d, 0x3a, 0x71, 0x1b, 0x8b, 0x51, 0x1b, 0xd7, 0x53, 0xb9, 0x70, 0x86, 0x34, 0x7a, 0x0f, 0x26,
|
||||
0x5d, 0x6d, 0x7c, 0xff, 0xc4, 0x46, 0xcf, 0x0b, 0xb0, 0xc9, 0x9d, 0x80, 0x84, 0xc3, 0x7c, 0x6c,
|
||||
0x6a, 0xe6, 0x01, 0x25, 0xf6, 0x09, 0xe9, 0x64, 0x6f, 0xf0, 0x6e, 0x82, 0x03, 0xa7, 0x48, 0xb1,
|
||||
0xa9, 0xb9, 0x1e, 0x98, 0x98, 0xda, 0x78, 0x74, 0x6a, 0xfb, 0xa9, 0x5c, 0x38, 0x43, 0x9a, 0xf9,
|
||||
0xb1, 0x6b, 0xf2, 0xea, 0x89, 0xa2, 0xe9, 0xca, 0x81, 0x4e, 0xaa, 0xe5, 0xa8, 0x1f, 0xef, 0x44,
|
||||
0xc9, 0x38, 0xce, 0x8f, 0x9e, 0xc2, 0x9c, 0x3b, 0xb4, 0x6f, 0x28, 0x3e, 0x48, 0x85, 0x83, 0x7c,
|
||||
0x45, 0x80, 0xcc, 0xed, 0xc4, 0x19, 0x70, 0x52, 0x06, 0x7d, 0x00, 0xd3, 0xaa, 0xa9, 0xeb, 0xdc,
|
||||
0x1f, 0xd7, 0xcc, 0xbe, 0xe1, 0x54, 0x27, 0x38, 0x0a, 0x62, 0xe7, 0x71, 0x2d, 0x42, 0xc1, 0x31,
|
||||
0x4e, 0x44, 0x00, 0x54, 0x2f, 0xe1, 0xd0, 0x2a, 0xf0, 0xf8, 0xf8, 0x20, 0x6f, 0x0c, 0xf0, 0x53,
|
||||
0x55, 0x50, 0x03, 0xf8, 0x43, 0x14, 0x87, 0x80, 0xe5, 0x7f, 0x96, 0x60, 0x29, 0x23, 0x74, 0xa0,
|
||||
0x6f, 0x46, 0x52, 0xec, 0x6f, 0xc4, 0x52, 0xec, 0xad, 0x0c, 0xb1, 0x50, 0x9e, 0x35, 0x60, 0xca,
|
||||
0x66, 0xb3, 0x32, 0xba, 0x2e, 0x8b, 0x88, 0x91, 0xef, 0x0d, 0x99, 0x06, 0x0e, 0xcb, 0x04, 0x31,
|
||||
0x7f, 0xee, 0xfc, 0xac, 0x36, 0x15, 0xa1, 0xe1, 0x28, 0xbc, 0xfc, 0xe7, 0x05, 0x80, 0x75, 0x62,
|
||||
0xe9, 0xe6, 0xa0, 0x47, 0x8c, 0xab, 0xa8, 0xa1, 0x76, 0x23, 0x35, 0xd4, 0xdb, 0xc3, 0xb6, 0xc7,
|
||||
0x37, 0x2d, 0xb3, 0x88, 0xfa, 0x76, 0xac, 0x88, 0x6a, 0xe4, 0x87, 0xbc, 0xb8, 0x8a, 0xfa, 0xf7,
|
||||
0x22, 0xcc, 0x07, 0xcc, 0x41, 0x19, 0xf5, 0x38, 0xb2, 0xc7, 0xbf, 0x1e, 0xdb, 0xe3, 0xa5, 0x14,
|
||||
0x91, 0xd7, 0x56, 0x47, 0x7d, 0x06, 0xd3, 0xac, 0xca, 0x71, 0xf7, 0x92, 0xd7, 0x50, 0xe3, 0x23,
|
||||
0xd7, 0x50, 0x7e, 0xb6, 0xdb, 0x8a, 0x20, 0xe1, 0x18, 0x72, 0x46, 0xcd, 0x56, 0xfe, 0x32, 0xd6,
|
||||
0x6c, 0x3f, 0x96, 0x60, 0x3a, 0xd8, 0xa6, 0x2b, 0x28, 0xda, 0x76, 0xa2, 0x45, 0xdb, 0x9b, 0xb9,
|
||||
0x5d, 0x34, 0xa3, 0x6a, 0xfb, 0x1f, 0x56, 0xe0, 0xfb, 0x4c, 0xec, 0x80, 0x1f, 0x28, 0xea, 0xf1,
|
||||
0xf0, 0x3b, 0x1e, 0xfa, 0xa1, 0x04, 0x48, 0x64, 0x81, 0x55, 0xc3, 0x30, 0x1d, 0xc5, 0x8d, 0x95,
|
||||
0xae, 0x59, 0x9b, 0xb9, 0xcd, 0xf2, 0x34, 0xd6, 0xf7, 0x13, 0x58, 0x4f, 0x0c, 0xc7, 0x1e, 0x04,
|
||||
0x9b, 0x9c, 0x64, 0xc0, 0x29, 0x06, 0x20, 0x05, 0xc0, 0x16, 0x98, 0x7b, 0xa6, 0x38, 0xc8, 0x6f,
|
||||
0xe7, 0x88, 0x79, 0x4c, 0x60, 0xcd, 0x34, 0x0e, 0xb5, 0x6e, 0x10, 0x76, 0xb0, 0x0f, 0x84, 0x43,
|
||||
0xa0, 0x37, 0x9f, 0xc0, 0x52, 0x86, 0xb5, 0x68, 0x16, 0x8a, 0xc7, 0x64, 0xe0, 0x2e, 0x1b, 0x66,
|
||||
0xff, 0x45, 0x0b, 0x30, 0x76, 0xa2, 0xe8, 0x7d, 0x37, 0xfc, 0x4e, 0x60, 0xf7, 0xc7, 0x07, 0x85,
|
||||
0xf7, 0x25, 0xf9, 0x47, 0x63, 0x61, 0xdf, 0xe1, 0x15, 0xf3, 0x3d, 0x76, 0x69, 0xb5, 0x74, 0x4d,
|
||||
0x55, 0xa8, 0x28, 0x84, 0xae, 0xbb, 0x17, 0x56, 0x77, 0x0c, 0xfb, 0xd4, 0x48, 0x6d, 0x5d, 0x78,
|
||||
0xbd, 0xb5, 0x75, 0xf1, 0xd5, 0xd4, 0xd6, 0xbf, 0x0b, 0x15, 0xea, 0x55, 0xd5, 0x25, 0x0e, 0xf9,
|
||||
0x60, 0x84, 0xf8, 0x2a, 0x0a, 0x6a, 0x5f, 0x81, 0x5f, 0x4a, 0xfb, 0xa0, 0x69, 0x45, 0xf4, 0xd8,
|
||||
0x88, 0x45, 0xf4, 0x2b, 0x2d, 0x7c, 0x59, 0xbc, 0xb1, 0x94, 0x3e, 0x25, 0x1d, 0x1e, 0xdb, 0x2a,
|
||||
0x41, 0xbc, 0x69, 0xf1, 0x51, 0x2c, 0xa8, 0xe8, 0x93, 0x88, 0xcb, 0x56, 0x2e, 0xe3, 0xb2, 0xd3,
|
||||
0xd9, 0xee, 0x8a, 0xf6, 0x61, 0xc9, 0xb2, 0xcd, 0xae, 0x4d, 0x28, 0x5d, 0x27, 0x4a, 0x47, 0xd7,
|
||||
0x0c, 0xe2, 0xad, 0x8f, 0x5b, 0x11, 0xdd, 0x3a, 0x3f, 0xab, 0x2d, 0xb5, 0xd2, 0x59, 0x70, 0x96,
|
||||
0xac, 0xfc, 0xa2, 0x04, 0xb3, 0xf1, 0x0c, 0x98, 0x51, 0xa4, 0x4a, 0x97, 0x2a, 0x52, 0xef, 0x87,
|
||||
0x0e, 0x83, 0x5b, 0xc1, 0x87, 0x5e, 0x70, 0x12, 0x07, 0x62, 0x15, 0x66, 0x44, 0x34, 0xf0, 0x88,
|
||||
0xa2, 0x4c, 0xf7, 0x77, 0x7f, 0x3f, 0x4a, 0xc6, 0x71, 0x7e, 0xf4, 0x18, 0xa6, 0x6c, 0x5e, 0x77,
|
||||
0x7b, 0x00, 0x6e, 0xed, 0x7a, 0x43, 0x00, 0x4c, 0xe1, 0x30, 0x11, 0x47, 0x79, 0x59, 0xdd, 0x1a,
|
||||
0x94, 0xa3, 0x1e, 0x40, 0x29, 0x5a, 0xb7, 0xae, 0xc6, 0x19, 0x70, 0x52, 0x06, 0x6d, 0xc3, 0x7c,
|
||||
0xdf, 0x48, 0x42, 0xb9, 0xae, 0x7c, 0x4b, 0x40, 0xcd, 0xef, 0x27, 0x59, 0x70, 0x9a, 0x1c, 0x3a,
|
||||
0x8c, 0x94, 0xb2, 0xe3, 0x3c, 0x3c, 0xaf, 0xe4, 0x3e, 0x78, 0xb9, 0x6b, 0xd9, 0x94, 0x72, 0xbb,
|
||||
0x92, 0xb7, 0xdc, 0x96, 0xff, 0x41, 0x0a, 0x27, 0x21, 0xbf, 0x04, 0x1e, 0xf6, 0xca, 0x94, 0x90,
|
||||
0x08, 0x55, 0x47, 0x66, 0x7a, 0xf5, 0xfb, 0x68, 0xa4, 0xea, 0x37, 0x48, 0x9e, 0xc3, 0xcb, 0xdf,
|
||||
0xcf, 0x25, 0x58, 0xdc, 0x68, 0x3f, 0xb5, 0xcd, 0xbe, 0xe5, 0x99, 0xb3, 0x6b, 0xb9, 0x4b, 0xf3,
|
||||
0x75, 0x28, 0xd9, 0x7d, 0xdd, 0x9b, 0xc7, 0x1b, 0xde, 0x3c, 0x70, 0x5f, 0x67, 0xf3, 0x98, 0x8f,
|
||||
0x49, 0xb9, 0x93, 0x60, 0x02, 0x68, 0x07, 0xc6, 0x6d, 0xc5, 0xe8, 0x12, 0x2f, 0xad, 0xde, 0x1d,
|
||||
0x62, 0xfd, 0xe6, 0x3a, 0x66, 0xec, 0xa1, 0xc2, 0x86, 0x4b, 0x63, 0x81, 0x22, 0xff, 0xa3, 0x04,
|
||||
0x33, 0xcf, 0xf6, 0xf6, 0x5a, 0x9b, 0x06, 0x3f, 0xd1, 0xfc, 0x6d, 0xf5, 0x0e, 0x94, 0x2c, 0xc5,
|
||||
0x39, 0x8a, 0x67, 0x7a, 0x46, 0xc3, 0x9c, 0x82, 0x1e, 0x42, 0x85, 0xfd, 0xcb, 0xec, 0xe2, 0x47,
|
||||
0x6a, 0x82, 0x07, 0xc2, 0x4a, 0x4b, 0x8c, 0xbd, 0x0c, 0xfd, 0x1f, 0xfb, 0x9c, 0xe8, 0x3b, 0x50,
|
||||
0x66, 0xf1, 0x87, 0x18, 0x9d, 0x9c, 0x05, 0xba, 0x30, 0xaa, 0xe9, 0x0a, 0x05, 0x35, 0x97, 0x18,
|
||||
0xc0, 0x1e, 0x9c, 0x7c, 0x0c, 0x0b, 0xa1, 0x49, 0xb0, 0x55, 0x7c, 0xce, 0x72, 0x2a, 0x6a, 0xc3,
|
||||
0x18, 0xd3, 0xce, 0x32, 0x67, 0x31, 0xc7, 0x13, 0x68, 0x6c, 0x21, 0x82, 0xfa, 0x88, 0xfd, 0xa2,
|
||||
0xd8, 0xc5, 0x92, 0xb7, 0x61, 0x8a, 0x3f, 0x43, 0x9b, 0xb6, 0xc3, 0x17, 0x13, 0xdd, 0x86, 0x62,
|
||||
0x4f, 0x33, 0x44, 0x76, 0x9e, 0x14, 0x32, 0x45, 0x96, 0x59, 0xd8, 0x38, 0x27, 0x2b, 0xa7, 0x22,
|
||||
0x5e, 0x05, 0x64, 0xe5, 0x14, 0xb3, 0x71, 0xf9, 0x29, 0x94, 0xc5, 0x26, 0x85, 0x81, 0x8a, 0x17,
|
||||
0x03, 0x15, 0x53, 0x80, 0x76, 0xa1, 0xbc, 0xd9, 0x6a, 0xea, 0xa6, 0x5b, 0xab, 0xa9, 0x5a, 0xc7,
|
||||
0x8e, 0xef, 0xe0, 0xda, 0xe6, 0x3a, 0xc6, 0x9c, 0x82, 0x64, 0x18, 0x27, 0xa7, 0x2a, 0xb1, 0x1c,
|
||||
0xee, 0x47, 0x13, 0x4d, 0x60, 0xbe, 0xf1, 0x84, 0x8f, 0x60, 0x41, 0x91, 0xff, 0xb8, 0x00, 0x65,
|
||||
0xb1, 0x1c, 0x57, 0x70, 0x77, 0xdb, 0x8a, 0xdc, 0xdd, 0xde, 0xca, 0xe7, 0x1a, 0x99, 0x17, 0xb7,
|
||||
0xbd, 0xd8, 0xc5, 0xed, 0x7e, 0x4e, 0xbc, 0x8b, 0x6f, 0x6d, 0x3f, 0x28, 0xc0, 0x74, 0xd4, 0x29,
|
||||
0xd1, 0x7b, 0x30, 0xc9, 0xd2, 0x94, 0xa6, 0x92, 0x9d, 0xa0, 0x3a, 0xf6, 0x9f, 0x6e, 0xda, 0x01,
|
||||
0x09, 0x87, 0xf9, 0x50, 0xd7, 0x17, 0x63, 0x7e, 0x24, 0x26, 0x9d, 0xbd, 0xa4, 0x7d, 0x47, 0xd3,
|
||||
0xeb, 0xee, 0x07, 0x99, 0xfa, 0xa6, 0xe1, 0xec, 0xda, 0x6d, 0xc7, 0xd6, 0x8c, 0x6e, 0x42, 0x11,
|
||||
0x77, 0xca, 0x30, 0x32, 0xfa, 0x36, 0x4b, 0x99, 0xd4, 0xec, 0xdb, 0x2a, 0x49, 0x2b, 0x7d, 0xbd,
|
||||
0xb2, 0x8d, 0x1d, 0xd0, 0xce, 0x96, 0xa9, 0x2a, 0xba, 0xbb, 0x39, 0x98, 0x1c, 0x12, 0x9b, 0x18,
|
||||
0x2a, 0xf1, 0xca, 0x4d, 0x17, 0x02, 0xfb, 0x60, 0xf2, 0xdf, 0x49, 0x30, 0x29, 0xd6, 0xe2, 0x0a,
|
||||
0x2e, 0x39, 0xbf, 0x1d, 0xbd, 0xe4, 0xdc, 0xcd, 0x19, 0x39, 0xd2, 0x6f, 0x38, 0x7f, 0x15, 0x98,
|
||||
0xce, 0x62, 0x05, 0x3b, 0x2e, 0x47, 0x26, 0x75, 0xe2, 0xc7, 0x85, 0x9d, 0x72, 0xcc, 0x29, 0xa8,
|
||||
0x0f, 0xb3, 0x5a, 0x2c, 0xb8, 0x88, 0x3d, 0x6b, 0xe4, 0xb3, 0xc4, 0x17, 0x6b, 0x56, 0x05, 0xfc,
|
||||
0x6c, 0x9c, 0x82, 0x13, 0x2a, 0x64, 0x02, 0x09, 0x2e, 0xf4, 0x11, 0x94, 0x8e, 0x1c, 0xc7, 0x4a,
|
||||
0x79, 0x3e, 0x1f, 0x12, 0xd2, 0x02, 0x13, 0x2a, 0x7c, 0x76, 0x7b, 0x7b, 0x2d, 0xcc, 0xa1, 0xe4,
|
||||
0xbf, 0x2f, 0xf8, 0xeb, 0xc1, 0xef, 0x1c, 0x1f, 0xfa, 0xb3, 0x5d, 0xd3, 0x15, 0x4a, 0xb9, 0x63,
|
||||
0xbb, 0xf7, 0xe3, 0x85, 0x90, 0xe1, 0x3e, 0x0d, 0x27, 0xb8, 0xd1, 0x5e, 0x10, 0xea, 0xa5, 0xcb,
|
||||
0x84, 0xfa, 0xc9, 0xb4, 0x30, 0x8f, 0x9e, 0x41, 0xd1, 0xd1, 0xf3, 0xde, 0x73, 0x05, 0xe2, 0xde,
|
||||
0x56, 0x3b, 0x88, 0x95, 0x7b, 0x5b, 0x6d, 0xcc, 0x20, 0xd0, 0x2e, 0x8c, 0xb1, 0x74, 0xca, 0xa2,
|
||||
0x43, 0x31, 0x7f, 0xb4, 0x61, 0x2b, 0x18, 0xb8, 0x14, 0xfb, 0x45, 0xb1, 0x8b, 0x23, 0x7f, 0x0f,
|
||||
0xa6, 0x22, 0x21, 0x04, 0x7d, 0x0a, 0xd7, 0x75, 0x53, 0xe9, 0x34, 0x15, 0x5d, 0x31, 0x54, 0xe2,
|
||||
0x7d, 0xed, 0xb8, 0x9b, 0x76, 0xf6, 0xb6, 0x42, 0x7c, 0x22, 0x00, 0x2d, 0x08, 0x25, 0xd7, 0xc3,
|
||||
0x34, 0x1c, 0x41, 0x94, 0x15, 0x80, 0x60, 0x8e, 0xa8, 0x06, 0x63, 0xcc, 0x53, 0xdd, 0x54, 0x37,
|
||||
0xd1, 0x9c, 0x60, 0x16, 0x32, 0x07, 0xa6, 0xd8, 0x1d, 0x47, 0x2b, 0x00, 0x94, 0xa8, 0x36, 0x71,
|
||||
0xf8, 0x76, 0x16, 0xa2, 0x5f, 0x4c, 0xdb, 0x3e, 0x05, 0x87, 0xb8, 0xe4, 0xcf, 0x0b, 0x30, 0xb5,
|
||||
0x43, 0x9c, 0xef, 0x9b, 0xf6, 0x71, 0xcb, 0xd4, 0x35, 0x75, 0x70, 0x05, 0x79, 0x00, 0x47, 0xf2,
|
||||
0xc0, 0x3b, 0x43, 0x76, 0x26, 0x62, 0x5d, 0x66, 0x36, 0xf8, 0x38, 0x96, 0x0d, 0x56, 0x46, 0x42,
|
||||
0xbd, 0x38, 0x27, 0xfc, 0x58, 0x82, 0xa5, 0x08, 0xff, 0x93, 0x20, 0xb0, 0xec, 0xc3, 0x98, 0x65,
|
||||
0xda, 0x8e, 0x57, 0x7f, 0x8c, 0x34, 0x19, 0x16, 0xbd, 0x43, 0x15, 0x08, 0x83, 0xc1, 0x2e, 0x1a,
|
||||
0xda, 0x82, 0x82, 0x63, 0x8a, 0x63, 0x30, 0x1a, 0x26, 0x21, 0x76, 0x13, 0x04, 0x66, 0x61, 0xcf,
|
||||
0xc4, 0x05, 0xc7, 0x94, 0xff, 0x49, 0x82, 0x6a, 0x84, 0x2b, 0x1c, 0x1a, 0x5f, 0xd3, 0x0c, 0x30,
|
||||
0x94, 0x0e, 0x6d, 0xb3, 0x77, 0xe9, 0x39, 0xf8, 0x9b, 0xbc, 0x61, 0x9b, 0x3d, 0xcc, 0xb1, 0xe4,
|
||||
0x9f, 0x48, 0x30, 0x17, 0xe1, 0xbc, 0x82, 0xb4, 0xf4, 0x51, 0x34, 0x2d, 0xdd, 0x1f, 0x65, 0x22,
|
||||
0x19, 0xc9, 0xe9, 0x27, 0x85, 0xd8, 0x34, 0xd8, 0x84, 0xd1, 0x21, 0x4c, 0x5a, 0x66, 0xa7, 0xfd,
|
||||
0x0a, 0xbe, 0x9d, 0xce, 0xb0, 0x72, 0xa1, 0x15, 0x60, 0xe1, 0x30, 0x30, 0x3a, 0x85, 0x39, 0x43,
|
||||
0xe9, 0x11, 0x6a, 0x29, 0x2a, 0x69, 0xbf, 0x82, 0xd7, 0xa4, 0x1b, 0xfc, 0xe3, 0x4c, 0x1c, 0x11,
|
||||
0x27, 0x95, 0xa0, 0x6d, 0x28, 0x6b, 0x16, 0x2f, 0x5f, 0xc5, 0x21, 0x1d, 0x9a, 0xe3, 0xdd, 0x62,
|
||||
0xd7, 0xcd, 0x15, 0xe2, 0x07, 0xf6, 0x30, 0xe4, 0x7f, 0x8b, 0x7b, 0x03, 0xaf, 0x86, 0x9e, 0x42,
|
||||
0x85, 0x77, 0xb1, 0xa8, 0xa6, 0xee, 0x7d, 0x46, 0xe1, 0x17, 0x17, 0x31, 0xf6, 0xf2, 0xac, 0x76,
|
||||
0x2b, 0xe5, 0x85, 0xdc, 0x23, 0x63, 0x5f, 0x18, 0xed, 0x40, 0xc9, 0xfa, 0x65, 0x0a, 0x37, 0x9e,
|
||||
0x82, 0x79, 0xb5, 0xc6, 0x71, 0xd0, 0xaf, 0x41, 0x99, 0x18, 0x1d, 0x5e, 0x0b, 0xba, 0x6f, 0x14,
|
||||
0x7c, 0x56, 0x4f, 0xdc, 0x21, 0xec, 0xd1, 0xe4, 0x3f, 0x2c, 0xc6, 0x66, 0xc5, 0xf3, 0xf5, 0x67,
|
||||
0xaf, 0xcc, 0x39, 0xfc, 0x7a, 0x32, 0xd3, 0x41, 0x0e, 0xa0, 0x2c, 0xb2, 0xbd, 0xf0, 0xf9, 0xaf,
|
||||
0x8f, 0xe2, 0xf3, 0xe1, 0x44, 0xea, 0x5f, 0xe7, 0xbc, 0x41, 0x0f, 0x18, 0x7d, 0x17, 0xc6, 0x89,
|
||||
0xab, 0xc2, 0x4d, 0xcf, 0x8f, 0x46, 0x51, 0x11, 0x84, 0xdf, 0x20, 0x64, 0x8b, 0x31, 0x81, 0x8a,
|
||||
0xbe, 0xc9, 0xd6, 0x8b, 0xf1, 0xb2, 0xaa, 0x97, 0x56, 0x4b, 0x3c, 0x63, 0xde, 0x76, 0xa7, 0xed,
|
||||
0x0f, 0xbf, 0x3c, 0xab, 0x41, 0xf0, 0x13, 0x87, 0x25, 0xe4, 0xdf, 0x83, 0xf9, 0x94, 0x14, 0x81,
|
||||
0xd4, 0xc8, 0xc3, 0x8a, 0x1b, 0x31, 0x1b, 0xf9, 0xb6, 0x21, 0xff, 0x17, 0xc2, 0x7f, 0x91, 0x60,
|
||||
0x8e, 0xef, 0x8e, 0xda, 0xb7, 0x35, 0x67, 0x70, 0x65, 0x79, 0xf9, 0x79, 0x24, 0x2f, 0x3f, 0x1c,
|
||||
0xb2, 0x25, 0x09, 0x0b, 0xb3, 0x72, 0xb3, 0xfc, 0x53, 0x09, 0x6e, 0x24, 0xb8, 0xaf, 0x20, 0x74,
|
||||
0xef, 0x47, 0x43, 0xf7, 0x3b, 0xa3, 0x4e, 0x28, 0x23, 0x7c, 0xff, 0xf7, 0x5c, 0xca, 0x74, 0xf8,
|
||||
0x29, 0x5d, 0x01, 0xb0, 0x6c, 0xed, 0x44, 0xd3, 0x49, 0x57, 0x34, 0x35, 0x54, 0x42, 0x2d, 0x6b,
|
||||
0x3e, 0x05, 0x87, 0xb8, 0x10, 0x85, 0xc5, 0x0e, 0x39, 0x54, 0xfa, 0xba, 0xb3, 0xda, 0xe9, 0xac,
|
||||
0x29, 0x96, 0x72, 0xa0, 0xe9, 0x9a, 0xa3, 0x89, 0xe7, 0x9f, 0x89, 0xe6, 0x63, 0xb7, 0xd9, 0x20,
|
||||
0x8d, 0xe3, 0xe5, 0x59, 0xed, 0x76, 0xda, 0xd7, 0x3e, 0x8f, 0x65, 0x80, 0x33, 0xa0, 0xd1, 0x00,
|
||||
0xaa, 0x36, 0xf9, 0x5e, 0x5f, 0xb3, 0x49, 0x67, 0xdd, 0x36, 0xad, 0x88, 0xda, 0x22, 0x57, 0xfb,
|
||||
0x5b, 0xe7, 0x67, 0xb5, 0x2a, 0xce, 0xe0, 0x19, 0xae, 0x38, 0x13, 0x1e, 0x7d, 0x06, 0xf3, 0x8a,
|
||||
0x68, 0x2e, 0x0c, 0x6b, 0x75, 0x4f, 0xe8, 0xfb, 0xe7, 0x67, 0xb5, 0xf9, 0xd5, 0x24, 0x79, 0xb8,
|
||||
0xc2, 0x34, 0x50, 0xd4, 0x80, 0xf2, 0x09, 0xef, 0x43, 0xa4, 0xd5, 0x31, 0x8e, 0xcf, 0x72, 0x55,
|
||||
0xd9, 0x6d, 0x4d, 0x64, 0x98, 0xe3, 0x1b, 0x6d, 0x7e, 0xf2, 0x3d, 0x2e, 0x76, 0xd5, 0x67, 0xa5,
|
||||
0xb4, 0x38, 0xf9, 0xfc, 0x0b, 0x40, 0x25, 0x88, 0x98, 0xcf, 0x02, 0x12, 0x0e, 0xf3, 0xa1, 0x4f,
|
||||
0x60, 0xe2, 0x48, 0xbc, 0x17, 0xd1, 0x6a, 0x39, 0x57, 0x9d, 0x10, 0x79, 0x5f, 0x6a, 0xce, 0x09,
|
||||
0x15, 0x13, 0xde, 0x30, 0xc5, 0x01, 0x22, 0x7a, 0x13, 0xca, 0xfc, 0xc7, 0xe6, 0x3a, 0x7f, 0x5e,
|
||||
0xad, 0x04, 0x71, 0xf5, 0x99, 0x3b, 0x8c, 0x3d, 0xba, 0xc7, 0xba, 0xd9, 0x5a, 0xe3, 0xcf, 0xfc,
|
||||
0x31, 0xd6, 0xcd, 0xd6, 0x1a, 0xf6, 0xe8, 0xe8, 0x53, 0x28, 0x53, 0xb2, 0xa5, 0x19, 0xfd, 0xd3,
|
||||
0x2a, 0xe4, 0x6a, 0x12, 0x68, 0x3f, 0xe1, 0xdc, 0xb1, 0x87, 0xce, 0x40, 0x83, 0xa0, 0x63, 0x0f,
|
||||
0x16, 0x1d, 0xc1, 0x84, 0xdd, 0x37, 0x56, 0xe9, 0x3e, 0x25, 0x76, 0x75, 0x92, 0xeb, 0x18, 0x96,
|
||||
0x4a, 0xb0, 0xc7, 0x1f, 0xd7, 0xe2, 0xaf, 0x90, 0xcf, 0x81, 0x03, 0x70, 0x74, 0x04, 0xc0, 0x7f,
|
||||
0xf0, 0x37, 0xd5, 0xea, 0x22, 0x57, 0xf5, 0x7e, 0x1e, 0x55, 0x69, 0x4f, 0xb7, 0xe2, 0xbb, 0x8a,
|
||||
0x4f, 0xc6, 0x21, 0x6c, 0xf4, 0x47, 0x12, 0x20, 0xda, 0xb7, 0x2c, 0x9d, 0xf4, 0x88, 0xe1, 0x28,
|
||||
0x3a, 0x1f, 0xa5, 0xd5, 0xeb, 0x5c, 0xe5, 0x87, 0xc3, 0x56, 0x30, 0x21, 0x18, 0x57, 0xed, 0x7f,
|
||||
0x2e, 0x49, 0xb2, 0xe2, 0x14, 0xbd, 0x6c, 0x13, 0x0f, 0xc5, 0xac, 0xa7, 0x72, 0x6d, 0x62, 0xfa,
|
||||
0x6b, 0x75, 0xb0, 0x89, 0x82, 0x8e, 0x3d, 0x58, 0xf4, 0x1c, 0x16, 0xbd, 0x86, 0x59, 0x6c, 0x9a,
|
||||
0xce, 0x86, 0xa6, 0x13, 0x3a, 0xa0, 0x0e, 0xe9, 0x55, 0xa7, 0xb9, 0x83, 0xf9, 0x5d, 0x43, 0x38,
|
||||
0x95, 0x0b, 0x67, 0x48, 0xa3, 0x1e, 0xd4, 0xbc, 0xe0, 0xc4, 0x4e, 0xae, 0x1f, 0x1d, 0x9f, 0x50,
|
||||
0x55, 0xd1, 0xdd, 0x2f, 0x48, 0x33, 0x5c, 0xc1, 0x1b, 0xe7, 0x67, 0xb5, 0xda, 0xfa, 0xc5, 0xac,
|
||||
0x78, 0x18, 0x16, 0xfa, 0x0e, 0x54, 0x95, 0x2c, 0x3d, 0xb3, 0x5c, 0xcf, 0x57, 0x59, 0xc4, 0xcb,
|
||||
0x54, 0x90, 0x29, 0x8d, 0x1c, 0x98, 0x55, 0xa2, 0xad, 0xcb, 0xb4, 0x3a, 0x97, 0xeb, 0x31, 0x3a,
|
||||
0xd6, 0xf1, 0x1c, 0xbc, 0x1b, 0xc5, 0x08, 0x14, 0x27, 0x34, 0xa0, 0xdf, 0x07, 0xa4, 0xc4, 0xbb,
|
||||
0xad, 0x69, 0x15, 0xe5, 0x4a, 0x74, 0x89, 0x36, 0xed, 0xc0, 0xed, 0x12, 0x24, 0x8a, 0x53, 0xf4,
|
||||
0xb0, 0x3b, 0x84, 0x12, 0xeb, 0x10, 0xa7, 0xd5, 0xa5, 0x44, 0x35, 0x74, 0x81, 0x72, 0x5f, 0x2e,
|
||||
0xf4, 0xa1, 0x2c, 0x8e, 0x88, 0x93, 0x4a, 0xd0, 0x16, 0x2c, 0x88, 0xc1, 0x7d, 0x83, 0x2a, 0x87,
|
||||
0xa4, 0x3d, 0xa0, 0xaa, 0xa3, 0xd3, 0xea, 0x3c, 0x8f, 0xef, 0xfc, 0x63, 0xed, 0x6a, 0x0a, 0x1d,
|
||||
0xa7, 0x4a, 0xa1, 0x0f, 0x61, 0xf6, 0xd0, 0xb4, 0x0f, 0xb4, 0x4e, 0x87, 0x18, 0x1e, 0xd2, 0x02,
|
||||
0x47, 0xe2, 0xcf, 0x60, 0x1b, 0x31, 0x1a, 0x4e, 0x70, 0x23, 0x0a, 0x37, 0x04, 0x72, 0xcb, 0x36,
|
||||
0xd5, 0x6d, 0xb3, 0x6f, 0x38, 0x6e, 0xc9, 0x79, 0xc3, 0x4f, 0xa3, 0x37, 0x56, 0xd3, 0x18, 0x5e,
|
||||
0x9e, 0xd5, 0xee, 0xa4, 0x5f, 0x44, 0x02, 0x26, 0x9c, 0x8e, 0x8d, 0x2c, 0xb8, 0x2e, 0xfa, 0xfe,
|
||||
0xf9, 0x7b, 0x5c, 0xb5, 0xca, 0x8f, 0xfe, 0x07, 0xc3, 0x03, 0x9e, 0x2f, 0x12, 0x3f, 0xff, 0xb3,
|
||||
0xe7, 0x67, 0xb5, 0xeb, 0x61, 0x06, 0x1c, 0xd1, 0xc0, 0xfb, 0xbc, 0xc4, 0xd7, 0xc5, 0xab, 0xe9,
|
||||
0x95, 0x1f, 0xad, 0xcf, 0x2b, 0x30, 0xed, 0x95, 0xf5, 0x79, 0x85, 0x20, 0x2f, 0x7e, 0x1d, 0xfa,
|
||||
0xaf, 0x02, 0xcc, 0x07, 0xcc, 0xb9, 0xfb, 0xbc, 0x52, 0x44, 0x7e, 0xd5, 0x2f, 0x9f, 0xaf, 0xf7,
|
||||
0x2a, 0x58, 0xba, 0xff, 0x7b, 0xbd, 0x57, 0x81, 0x6d, 0x19, 0xb7, 0x87, 0xbf, 0x29, 0x84, 0x27,
|
||||
0x30, 0x62, 0x03, 0xd0, 0x2b, 0x68, 0x19, 0xff, 0xd2, 0xf5, 0x10, 0xc9, 0x3f, 0x2d, 0xc2, 0x6c,
|
||||
0xfc, 0x34, 0x46, 0xfa, 0x44, 0xa4, 0xa1, 0x7d, 0x22, 0x2d, 0x58, 0x38, 0xec, 0xeb, 0xfa, 0x80,
|
||||
0xcf, 0x21, 0xd4, 0x2c, 0xe2, 0x7e, 0xb1, 0xfd, 0xaa, 0x90, 0x5c, 0xd8, 0x48, 0xe1, 0xc1, 0xa9,
|
||||
0x92, 0xc9, 0xb6, 0x91, 0xd2, 0x2f, 0xdb, 0x36, 0x32, 0x76, 0x89, 0xb6, 0x91, 0xf4, 0xce, 0x9b,
|
||||
0xe2, 0xa5, 0x3a, 0x6f, 0x2e, 0xd3, 0x33, 0x92, 0x12, 0xc4, 0x86, 0xbe, 0x6e, 0x7c, 0x03, 0xa6,
|
||||
0xa3, 0x7d, 0x4c, 0xee, 0x5e, 0xba, 0xad, 0x54, 0xe2, 0xcb, 0x78, 0x68, 0x2f, 0xdd, 0x71, 0xec,
|
||||
0x73, 0xc8, 0xe7, 0x12, 0x2c, 0xa6, 0xf7, 0x2b, 0x23, 0x1d, 0xa6, 0x7b, 0xca, 0x69, 0xb8, 0x87,
|
||||
0x5c, 0xba, 0xe4, 0xe3, 0x1d, 0x6f, 0x60, 0xd9, 0x8e, 0x60, 0xe1, 0x18, 0x36, 0xfa, 0x18, 0x2a,
|
||||
0x3d, 0xe5, 0xb4, 0xdd, 0xb7, 0xbb, 0xe4, 0xd2, 0x8f, 0x84, 0xfc, 0x18, 0x6d, 0x0b, 0x14, 0xec,
|
||||
0xe3, 0xc9, 0xbf, 0x90, 0x60, 0x29, 0xa3, 0x2d, 0xe5, 0xff, 0xd1, 0x2c, 0xff, 0x52, 0x82, 0xaf,
|
||||
0x64, 0x5e, 0xc3, 0xd0, 0xa3, 0x48, 0x07, 0x8d, 0x1c, 0xeb, 0xa0, 0x41, 0x49, 0xc1, 0xd7, 0xd4,
|
||||
0x40, 0xf3, 0xb9, 0x04, 0xd5, 0xac, 0x7b, 0x29, 0x7a, 0x2f, 0x62, 0xe4, 0xd7, 0x62, 0x46, 0xce,
|
||||
0x25, 0xe4, 0x5e, 0x93, 0x8d, 0xff, 0x2a, 0xc1, 0xad, 0x0b, 0xea, 0x3b, 0xff, 0xfa, 0x43, 0x3a,
|
||||
0x61, 0x2e, 0xfe, 0x6a, 0x2f, 0x3e, 0x27, 0x06, 0xd7, 0x9f, 0x14, 0x1e, 0x9c, 0x29, 0x8d, 0xf6,
|
||||
0x61, 0x49, 0xdc, 0xbd, 0xe2, 0x34, 0x51, 0xba, 0xf0, 0x46, 0xc3, 0xf5, 0x74, 0x16, 0x9c, 0x25,
|
||||
0x2b, 0xff, 0xb5, 0x04, 0x8b, 0xe9, 0x0f, 0x0e, 0xe8, 0xdd, 0xc8, 0x92, 0xd7, 0x62, 0x4b, 0x3e,
|
||||
0x13, 0x93, 0x12, 0x0b, 0xfe, 0x5d, 0x98, 0x16, 0xcf, 0x12, 0x02, 0x46, 0x38, 0xb3, 0x9c, 0x96,
|
||||
0x9d, 0x04, 0x84, 0x57, 0x1c, 0xf3, 0x63, 0x12, 0x1d, 0xc3, 0x31, 0x34, 0xf9, 0x07, 0x05, 0x18,
|
||||
0x6b, 0xab, 0x8a, 0x4e, 0xae, 0xa0, 0x36, 0xfe, 0x56, 0xa4, 0x36, 0x1e, 0xf6, 0x27, 0x7c, 0xdc,
|
||||
0xaa, 0xcc, 0xb2, 0x18, 0xc7, 0xca, 0xe2, 0xb7, 0x72, 0xa1, 0x5d, 0x5c, 0x11, 0xff, 0x26, 0x4c,
|
||||
0xf8, 0x4a, 0x47, 0x4b, 0xd4, 0xf2, 0x5f, 0x14, 0x60, 0x32, 0xa4, 0x62, 0xc4, 0x34, 0x7f, 0x18,
|
||||
0xa9, 0x6d, 0x8a, 0x39, 0x1e, 0x81, 0x42, 0xba, 0xea, 0x5e, 0x35, 0xe3, 0xb6, 0xa0, 0x07, 0x4d,
|
||||
0xc7, 0xc9, 0x22, 0xe7, 0x1b, 0x30, 0xed, 0x28, 0x76, 0x97, 0x38, 0xfe, 0x07, 0x19, 0xb7, 0x45,
|
||||
0xce, 0xff, 0x5b, 0x88, 0xbd, 0x08, 0x15, 0xc7, 0xb8, 0x6f, 0x3e, 0x86, 0xa9, 0x88, 0xb2, 0x91,
|
||||
0x3a, 0xc8, 0xff, 0x56, 0x82, 0xaf, 0x0d, 0x7d, 0x48, 0x42, 0xcd, 0xc8, 0x21, 0xa9, 0xc7, 0x0e,
|
||||
0xc9, 0x72, 0x36, 0xc0, 0xeb, 0xeb, 0x44, 0x6c, 0xae, 0xbd, 0xf8, 0x62, 0xf9, 0xda, 0xcf, 0xbe,
|
||||
0x58, 0xbe, 0xf6, 0xf3, 0x2f, 0x96, 0xaf, 0xfd, 0xc1, 0xf9, 0xb2, 0xf4, 0xe2, 0x7c, 0x59, 0xfa,
|
||||
0xd9, 0xf9, 0xb2, 0xf4, 0xf3, 0xf3, 0x65, 0xe9, 0x3f, 0xce, 0x97, 0xa5, 0x3f, 0xf9, 0xc5, 0xf2,
|
||||
0xb5, 0x8f, 0x6f, 0x5f, 0xf8, 0x27, 0xff, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x34, 0xc8,
|
||||
0x81, 0x2b, 0x40, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *AllowedCSIDriver) Marshal() (dAtA []byte, err error) {
|
||||
@ -3359,6 +3390,16 @@ func (m *NetworkPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
{
|
||||
size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
{
|
||||
size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
@ -3707,6 +3748,43 @@ func (m *NetworkPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Conditions) > 0 {
|
||||
for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {
|
||||
{
|
||||
size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *PodSecurityPolicy) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -5332,6 +5410,8 @@ func (m *NetworkPolicy) Size() (n int) {
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
l = m.Spec.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
l = m.Status.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
return n
|
||||
}
|
||||
|
||||
@ -5464,6 +5544,21 @@ func (m *NetworkPolicySpec) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Conditions) > 0 {
|
||||
for _, e := range m.Conditions {
|
||||
l = e.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *PodSecurityPolicy) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
@ -6293,6 +6388,7 @@ func (this *NetworkPolicy) String() string {
|
||||
s := strings.Join([]string{`&NetworkPolicy{`,
|
||||
`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`,
|
||||
`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "NetworkPolicySpec", "NetworkPolicySpec", 1), `&`, ``, 1) + `,`,
|
||||
`Status:` + strings.Replace(strings.Replace(this.Status.String(), "NetworkPolicyStatus", "NetworkPolicyStatus", 1), `&`, ``, 1) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
@ -6402,6 +6498,21 @@ func (this *NetworkPolicySpec) String() string {
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *NetworkPolicyStatus) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
}
|
||||
repeatedStringForConditions := "[]Condition{"
|
||||
for _, f := range this.Conditions {
|
||||
repeatedStringForConditions += fmt.Sprintf("%v", f) + ","
|
||||
}
|
||||
repeatedStringForConditions += "}"
|
||||
s := strings.Join([]string{`&NetworkPolicyStatus{`,
|
||||
`Conditions:` + repeatedStringForConditions + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *PodSecurityPolicy) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
@ -11148,6 +11259,39 @@ func (m *NetworkPolicy) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
@ -12002,6 +12146,90 @@ func (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *NetworkPolicyStatus) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: NetworkPolicyStatus: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: NetworkPolicyStatus: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Conditions = append(m.Conditions, v1.Condition{})
|
||||
if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *PodSecurityPolicy) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
|
@ -664,6 +664,11 @@ message NetworkPolicy {
|
||||
// Specification of the desired behavior for this NetworkPolicy.
|
||||
// +optional
|
||||
optional NetworkPolicySpec spec = 2;
|
||||
|
||||
// Status is the current state of the NetworkPolicy.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||||
// +optional
|
||||
optional NetworkPolicyStatus status = 3;
|
||||
}
|
||||
|
||||
// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule.
|
||||
@ -813,6 +818,18 @@ message NetworkPolicySpec {
|
||||
repeated string policyTypes = 4;
|
||||
}
|
||||
|
||||
// NetworkPolicyStatus describe the current state of the NetworkPolicy.
|
||||
message NetworkPolicyStatus {
|
||||
// Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.
|
||||
// Current service state
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
// +listType=map
|
||||
// +listMapKey=type
|
||||
repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 1;
|
||||
}
|
||||
|
||||
// PodSecurityPolicy governs the ability to make requests that affect the Security Context
|
||||
// that will be applied to a pod and container.
|
||||
// Deprecated: use PodSecurityPolicy from policy API Group instead.
|
||||
|
@ -1376,6 +1376,11 @@ type NetworkPolicy struct {
|
||||
// Specification of the desired behavior for this NetworkPolicy.
|
||||
// +optional
|
||||
Spec NetworkPolicySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
|
||||
|
||||
// Status is the current state of the NetworkPolicy.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||||
// +optional
|
||||
Status NetworkPolicyStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// DEPRECATED 1.9 - This group version of PolicyType is deprecated by networking/v1/PolicyType.
|
||||
@ -1540,6 +1545,48 @@ type NetworkPolicyPeer struct {
|
||||
IPBlock *IPBlock `json:"ipBlock,omitempty" protobuf:"bytes,3,rep,name=ipBlock"`
|
||||
}
|
||||
|
||||
// NetworkPolicyConditionType is the type for status conditions on
|
||||
// a NetworkPolicy. This type should be used with the
|
||||
// NetworkPolicyStatus.Conditions field.
|
||||
type NetworkPolicyConditionType string
|
||||
|
||||
const (
|
||||
// NetworkPolicyConditionStatusAccepted represents status of a Network Policy that could be properly parsed by
|
||||
// the Network Policy provider and will be implemented in the cluster
|
||||
NetworkPolicyConditionStatusAccepted NetworkPolicyConditionType = "Accepted"
|
||||
|
||||
// NetworkPolicyConditionStatusPartialFailure represents status of a Network Policy that could be partially
|
||||
// parsed by the Network Policy provider and may not be completely implemented due to a lack of a feature or some
|
||||
// other condition
|
||||
NetworkPolicyConditionStatusPartialFailure NetworkPolicyConditionType = "PartialFailure"
|
||||
|
||||
// NetworkPolicyConditionStatusFailure represents status of a Network Policy that could not be parsed by the
|
||||
// Network Policy provider and will not be implemented in the cluster
|
||||
NetworkPolicyConditionStatusFailure NetworkPolicyConditionType = "Failure"
|
||||
)
|
||||
|
||||
// NetworkPolicyConditionReason defines the set of reasons that explain why a
|
||||
// particular NetworkPolicy condition type has been raised.
|
||||
type NetworkPolicyConditionReason string
|
||||
|
||||
const (
|
||||
// NetworkPolicyConditionReasonFeatureNotSupported represents a reason where the Network Policy may not have been
|
||||
// implemented in the cluster due to a lack of some feature not supported by the Network Policy provider
|
||||
NetworkPolicyConditionReasonFeatureNotSupported NetworkPolicyConditionReason = "FeatureNotSupported"
|
||||
)
|
||||
|
||||
// NetworkPolicyStatus describe the current state of the NetworkPolicy.
|
||||
type NetworkPolicyStatus struct {
|
||||
// Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.
|
||||
// Current service state
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
// +listType=map
|
||||
// +listMapKey=type
|
||||
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
// +k8s:prerelease-lifecycle-gen:introduced=1.3
|
||||
// +k8s:prerelease-lifecycle-gen:deprecated=1.9
|
||||
|
@ -365,6 +365,7 @@ var map_NetworkPolicy = map[string]string{
|
||||
"": "DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. NetworkPolicy describes what network traffic is allowed for a set of Pods",
|
||||
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
||||
"spec": "Specification of the desired behavior for this NetworkPolicy.",
|
||||
"status": "Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
|
||||
}
|
||||
|
||||
func (NetworkPolicy) SwaggerDoc() map[string]string {
|
||||
@ -435,6 +436,15 @@ func (NetworkPolicySpec) SwaggerDoc() map[string]string {
|
||||
return map_NetworkPolicySpec
|
||||
}
|
||||
|
||||
var map_NetworkPolicyStatus = map[string]string{
|
||||
"": "NetworkPolicyStatus describe the current state of the NetworkPolicy.",
|
||||
"conditions": "Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state",
|
||||
}
|
||||
|
||||
func (NetworkPolicyStatus) SwaggerDoc() map[string]string {
|
||||
return map_NetworkPolicyStatus
|
||||
}
|
||||
|
||||
var map_PodSecurityPolicy = map[string]string{
|
||||
"": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.",
|
||||
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
||||
|
@ -759,6 +759,7 @@ func (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
@ -971,6 +972,29 @@ func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus) {
|
||||
*out = *in
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]v1.Condition, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus.
|
||||
func (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(NetworkPolicyStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *PodSecurityPolicy) DeepCopyInto(out *PodSecurityPolicy) {
|
||||
*out = *in
|
||||
|
425
staging/src/k8s.io/api/networking/v1/generated.pb.go
generated
425
staging/src/k8s.io/api/networking/v1/generated.pb.go
generated
@ -692,10 +692,38 @@ func (m *NetworkPolicySpec) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_NetworkPolicySpec proto.InternalMessageInfo
|
||||
|
||||
func (m *NetworkPolicyStatus) Reset() { *m = NetworkPolicyStatus{} }
|
||||
func (*NetworkPolicyStatus) ProtoMessage() {}
|
||||
func (*NetworkPolicyStatus) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_1c72867a70a7cc90, []int{23}
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
b = b[:cap(b)]
|
||||
n, err := m.MarshalToSizedBuffer(b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return b[:n], nil
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_NetworkPolicyStatus.Merge(m, src)
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_Size() int {
|
||||
return m.Size()
|
||||
}
|
||||
func (m *NetworkPolicyStatus) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_NetworkPolicyStatus.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_NetworkPolicyStatus proto.InternalMessageInfo
|
||||
|
||||
func (m *ServiceBackendPort) Reset() { *m = ServiceBackendPort{} }
|
||||
func (*ServiceBackendPort) ProtoMessage() {}
|
||||
func (*ServiceBackendPort) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_1c72867a70a7cc90, []int{23}
|
||||
return fileDescriptor_1c72867a70a7cc90, []int{24}
|
||||
}
|
||||
func (m *ServiceBackendPort) XXX_Unmarshal(b []byte) error {
|
||||
return m.Unmarshal(b)
|
||||
@ -744,6 +772,7 @@ func init() {
|
||||
proto.RegisterType((*NetworkPolicyPeer)(nil), "k8s.io.api.networking.v1.NetworkPolicyPeer")
|
||||
proto.RegisterType((*NetworkPolicyPort)(nil), "k8s.io.api.networking.v1.NetworkPolicyPort")
|
||||
proto.RegisterType((*NetworkPolicySpec)(nil), "k8s.io.api.networking.v1.NetworkPolicySpec")
|
||||
proto.RegisterType((*NetworkPolicyStatus)(nil), "k8s.io.api.networking.v1.NetworkPolicyStatus")
|
||||
proto.RegisterType((*ServiceBackendPort)(nil), "k8s.io.api.networking.v1.ServiceBackendPort")
|
||||
}
|
||||
|
||||
@ -752,104 +781,107 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_1c72867a70a7cc90 = []byte{
|
||||
// 1546 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4d, 0x6f, 0x1b, 0xc5,
|
||||
0x1b, 0xcf, 0x3a, 0x71, 0xec, 0x3c, 0x4e, 0xd2, 0x74, 0xfe, 0xad, 0xfe, 0x56, 0x11, 0x76, 0x58,
|
||||
// 1589 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcf, 0x6f, 0x1b, 0xc5,
|
||||
0x17, 0xcf, 0x3a, 0x71, 0xec, 0x3c, 0x27, 0x69, 0x3a, 0x6d, 0xf5, 0xb5, 0xfa, 0x15, 0x76, 0x58,
|
||||
0xd1, 0x36, 0x50, 0x6a, 0xd3, 0xb4, 0x42, 0x70, 0x01, 0xba, 0x69, 0x9b, 0x86, 0xa6, 0x89, 0x35,
|
||||
0xb6, 0x8a, 0x40, 0x80, 0x3a, 0x59, 0x4f, 0x9c, 0xad, 0xd7, 0x3b, 0xcb, 0xec, 0x38, 0xb4, 0x37,
|
||||
0x2e, 0x1c, 0xb8, 0xf1, 0x15, 0xf8, 0x08, 0x08, 0x6e, 0x08, 0x0a, 0x17, 0xd4, 0x63, 0x25, 0x2e,
|
||||
0xbd, 0x60, 0x51, 0xf3, 0x2d, 0x72, 0x42, 0x33, 0x3b, 0xfb, 0x62, 0x3b, 0xc6, 0x56, 0x55, 0xe5,
|
||||
0x94, 0xec, 0xf3, 0xf2, 0x7b, 0x5e, 0xe6, 0x79, 0x99, 0x31, 0x5c, 0x6f, 0xbf, 0x1b, 0x54, 0x1c,
|
||||
0x56, 0x6d, 0x77, 0xf7, 0x28, 0xf7, 0xa8, 0xa0, 0x41, 0xf5, 0x90, 0x7a, 0x4d, 0xc6, 0xab, 0x9a,
|
||||
0x41, 0x7c, 0xa7, 0xea, 0x51, 0xf1, 0x15, 0xe3, 0x6d, 0xc7, 0x6b, 0x55, 0x0f, 0xaf, 0x54, 0x5b,
|
||||
0xd4, 0xa3, 0x9c, 0x08, 0xda, 0xac, 0xf8, 0x9c, 0x09, 0x86, 0x8a, 0xa1, 0x64, 0x85, 0xf8, 0x4e,
|
||||
0x25, 0x91, 0xac, 0x1c, 0x5e, 0x39, 0x77, 0xb9, 0xe5, 0x88, 0x83, 0xee, 0x5e, 0xc5, 0x66, 0x9d,
|
||||
0x6a, 0x8b, 0xb5, 0x58, 0x55, 0x29, 0xec, 0x75, 0xf7, 0xd5, 0x97, 0xfa, 0x50, 0xff, 0x85, 0x40,
|
||||
0xe7, 0xcc, 0x94, 0x49, 0x9b, 0x71, 0x7a, 0x8c, 0xb1, 0x73, 0xd7, 0x12, 0x99, 0x0e, 0xb1, 0x0f,
|
||||
0x1c, 0x8f, 0xf2, 0x47, 0x55, 0xbf, 0xdd, 0x92, 0x84, 0xa0, 0xda, 0xa1, 0x82, 0x1c, 0xa7, 0x55,
|
||||
0x1d, 0xa7, 0xc5, 0xbb, 0x9e, 0x70, 0x3a, 0x74, 0x44, 0xe1, 0x9d, 0x49, 0x0a, 0x81, 0x7d, 0x40,
|
||||
0x3b, 0x64, 0x44, 0xef, 0xea, 0x38, 0xbd, 0xae, 0x70, 0xdc, 0xaa, 0xe3, 0x89, 0x40, 0xf0, 0x61,
|
||||
0x25, 0xf3, 0x57, 0x03, 0x4e, 0xdd, 0x6e, 0x34, 0x6a, 0x5b, 0x5e, 0x8b, 0xd3, 0x20, 0xa8, 0x11,
|
||||
0x71, 0x80, 0x56, 0x61, 0xce, 0x27, 0xe2, 0xa0, 0x68, 0xac, 0x1a, 0x6b, 0x0b, 0xd6, 0xe2, 0x93,
|
||||
0x5e, 0x79, 0xa6, 0xdf, 0x2b, 0xcf, 0x49, 0x1e, 0x56, 0x1c, 0x74, 0x0d, 0xf2, 0xf2, 0x6f, 0xe3,
|
||||
0x91, 0x4f, 0x8b, 0xb3, 0x4a, 0xaa, 0xd8, 0xef, 0x95, 0xf3, 0x35, 0x4d, 0x3b, 0x4a, 0xfd, 0x8f,
|
||||
0x63, 0x49, 0x54, 0x87, 0xdc, 0x1e, 0xb1, 0xdb, 0xd4, 0x6b, 0x16, 0x33, 0xab, 0xc6, 0x5a, 0x61,
|
||||
0x7d, 0xad, 0x32, 0xee, 0xf8, 0x2a, 0xda, 0x1f, 0x2b, 0x94, 0xb7, 0x4e, 0x69, 0x27, 0x72, 0x9a,
|
||||
0x80, 0x23, 0x24, 0x73, 0x1f, 0xce, 0xa4, 0xfc, 0xc7, 0x5d, 0x97, 0xde, 0x23, 0x6e, 0x97, 0xa2,
|
||||
0x1d, 0xc8, 0x4a, 0xc3, 0x41, 0xd1, 0x58, 0x9d, 0x5d, 0x2b, 0xac, 0xbf, 0x31, 0xde, 0xd4, 0x50,
|
||||
0xf8, 0xd6, 0x92, 0xb6, 0x95, 0x95, 0x5f, 0x01, 0x0e, 0x61, 0xcc, 0x5d, 0xc8, 0x6d, 0xd5, 0x2c,
|
||||
0x97, 0xd9, 0x6d, 0x99, 0x1f, 0xdb, 0x69, 0xf2, 0xe1, 0xfc, 0x6c, 0x6c, 0xdd, 0xc0, 0x58, 0x71,
|
||||
0x90, 0x09, 0xf3, 0xf4, 0xa1, 0x4d, 0x7d, 0x51, 0xcc, 0xac, 0xce, 0xae, 0x2d, 0x58, 0xd0, 0xef,
|
||||
0x95, 0xe7, 0x6f, 0x2a, 0x0a, 0xd6, 0x1c, 0xf3, 0x9b, 0x0c, 0xe4, 0xb4, 0x59, 0x74, 0x1f, 0xf2,
|
||||
0xb2, 0x7c, 0x9a, 0x44, 0x10, 0x85, 0x5a, 0x58, 0x7f, 0x3b, 0xe5, 0x6f, 0x7c, 0x9a, 0x15, 0xbf,
|
||||
0xdd, 0x92, 0x84, 0xa0, 0x22, 0xa5, 0xa5, 0xef, 0xbb, 0x7b, 0x0f, 0xa8, 0x2d, 0xee, 0x52, 0x41,
|
||||
0x2c, 0xa4, 0xfd, 0x80, 0x84, 0x86, 0x63, 0x54, 0xb4, 0x09, 0x73, 0x81, 0x4f, 0x6d, 0x9d, 0xf8,
|
||||
0xf3, 0x13, 0x13, 0x5f, 0xf7, 0xa9, 0x9d, 0x84, 0x26, 0xbf, 0xb0, 0x02, 0x40, 0xbb, 0x30, 0x1f,
|
||||
0x08, 0x22, 0xba, 0x81, 0x3a, 0xf8, 0xc2, 0xfa, 0xc5, 0xc9, 0x50, 0x4a, 0xdc, 0x5a, 0xd6, 0x60,
|
||||
0xf3, 0xe1, 0x37, 0xd6, 0x30, 0xe6, 0xef, 0x06, 0x2c, 0x0f, 0x9e, 0x36, 0xba, 0x07, 0xb9, 0x80,
|
||||
0xf2, 0x43, 0xc7, 0xa6, 0xc5, 0x39, 0x65, 0xa4, 0x3a, 0xd9, 0x48, 0x28, 0x1f, 0xd5, 0x4b, 0x41,
|
||||
0xd6, 0x8a, 0xa6, 0xe1, 0x08, 0x0c, 0x7d, 0x0c, 0x79, 0x4e, 0x03, 0xd6, 0xe5, 0x36, 0xd5, 0xde,
|
||||
0x5f, 0x4e, 0x03, 0xcb, 0xbe, 0x97, 0x90, 0xb2, 0x58, 0x9b, 0xdb, 0xcc, 0x26, 0x6e, 0x98, 0x4a,
|
||||
0x4c, 0xf7, 0x29, 0xa7, 0x9e, 0x4d, 0xad, 0x45, 0x59, 0xe5, 0x58, 0x43, 0xe0, 0x18, 0x4c, 0x76,
|
||||
0xd1, 0xa2, 0x76, 0x64, 0xc3, 0x25, 0x27, 0x72, 0xa0, 0xdb, 0x03, 0x07, 0xfa, 0xe6, 0xc4, 0x04,
|
||||
0x29, 0xbf, 0xc6, 0x9d, 0xaa, 0xf9, 0x8b, 0x01, 0x2b, 0x69, 0xc1, 0x6d, 0x27, 0x10, 0xe8, 0xb3,
|
||||
0x91, 0x20, 0x2a, 0xd3, 0x05, 0x21, 0xb5, 0x55, 0x08, 0x2b, 0xda, 0x54, 0x3e, 0xa2, 0xa4, 0x02,
|
||||
0xb8, 0x03, 0x59, 0x47, 0xd0, 0x4e, 0xa0, 0x5a, 0xa4, 0xb0, 0x7e, 0x61, 0xba, 0x08, 0x92, 0xee,
|
||||
0xdc, 0x92, 0xca, 0x38, 0xc4, 0x30, 0xff, 0x32, 0xa0, 0x9c, 0x16, 0xab, 0x11, 0x4e, 0x3a, 0x54,
|
||||
0x50, 0x1e, 0xc4, 0x87, 0x87, 0xd6, 0x20, 0x4f, 0x6a, 0x5b, 0x9b, 0x9c, 0x75, 0xfd, 0xa8, 0x75,
|
||||
0xa5, 0x6b, 0xd7, 0x35, 0x0d, 0xc7, 0x5c, 0xd9, 0xe0, 0x6d, 0x47, 0x4f, 0xa9, 0x54, 0x83, 0xdf,
|
||||
0x71, 0xbc, 0x26, 0x56, 0x1c, 0x29, 0xe1, 0x91, 0x4e, 0x34, 0xfc, 0x62, 0x89, 0x1d, 0xd2, 0xa1,
|
||||
0x58, 0x71, 0x50, 0x19, 0xb2, 0x81, 0xcd, 0xfc, 0xb0, 0x82, 0x17, 0xac, 0x05, 0xe9, 0x72, 0x5d,
|
||||
0x12, 0x70, 0x48, 0x47, 0x97, 0x60, 0x41, 0x0a, 0x06, 0x3e, 0xb1, 0x69, 0x31, 0xab, 0x84, 0x96,
|
||||
0xfa, 0xbd, 0xf2, 0xc2, 0x4e, 0x44, 0xc4, 0x09, 0xdf, 0xfc, 0x61, 0xe8, 0x7c, 0xe4, 0xd1, 0xa1,
|
||||
0x75, 0x00, 0x9b, 0x79, 0x82, 0x33, 0xd7, 0xa5, 0xd1, 0x34, 0x8a, 0x8b, 0x66, 0x23, 0xe6, 0xe0,
|
||||
0x94, 0x14, 0x72, 0x00, 0xfc, 0x38, 0x37, 0xba, 0x78, 0xde, 0x9b, 0x2e, 0xf5, 0xc7, 0xe4, 0xd4,
|
||||
0x5a, 0x96, 0xa6, 0x52, 0x8c, 0x14, 0xb8, 0xf9, 0xa3, 0x01, 0x05, 0xad, 0x7f, 0x02, 0xe5, 0x74,
|
||||
0x6b, 0xb0, 0x9c, 0x5e, 0x9b, 0xbc, 0x5a, 0x8e, 0xaf, 0xa4, 0xef, 0x13, 0xaf, 0xe5, 0x32, 0x91,
|
||||
0x27, 0x7d, 0xc0, 0x02, 0x31, 0x3c, 0xec, 0x6f, 0xb3, 0x40, 0x60, 0xc5, 0x41, 0x3e, 0xac, 0x38,
|
||||
0x43, 0xdb, 0x67, 0xea, 0xae, 0x8c, 0x35, 0xac, 0xa2, 0x46, 0x5e, 0x19, 0xe6, 0xe0, 0x11, 0x74,
|
||||
0xf3, 0x3e, 0x8c, 0x48, 0xc9, 0x79, 0x70, 0x20, 0x84, 0x7f, 0x4c, 0x66, 0xc7, 0xaf, 0xbb, 0xc4,
|
||||
0x7a, 0x5e, 0xc5, 0xd4, 0x68, 0xd4, 0xb0, 0x42, 0x31, 0xbf, 0x35, 0xe0, 0xec, 0xb1, 0x93, 0x35,
|
||||
0xae, 0x7c, 0x63, 0x6c, 0xe5, 0xef, 0xc0, 0x9c, 0xcf, 0xb8, 0xd0, 0x39, 0x78, 0x6b, 0xbc, 0x27,
|
||||
0x83, 0xc8, 0x35, 0xc6, 0x45, 0xea, 0xb2, 0xc1, 0xb8, 0xc0, 0x0a, 0xc7, 0xfc, 0x23, 0x13, 0x9f,
|
||||
0x88, 0x2a, 0xfb, 0x0f, 0xe3, 0x7c, 0xab, 0xb2, 0x94, 0x96, 0x75, 0x93, 0x9d, 0x49, 0xe5, 0x2f,
|
||||
0xe6, 0xe1, 0x11, 0x69, 0xd4, 0x84, 0xe5, 0x26, 0xdd, 0x27, 0x5d, 0x57, 0x68, 0xdb, 0x3a, 0x6b,
|
||||
0xd3, 0xdf, 0x47, 0x50, 0xbf, 0x57, 0x5e, 0xbe, 0x31, 0x80, 0x81, 0x87, 0x30, 0xd1, 0x06, 0xcc,
|
||||
0x0a, 0x37, 0xaa, 0xc7, 0xd7, 0x27, 0x42, 0x37, 0xb6, 0xeb, 0x56, 0x41, 0x87, 0x3f, 0xdb, 0xd8,
|
||||
0xae, 0x63, 0xa9, 0x8d, 0x3e, 0x82, 0x2c, 0xef, 0xba, 0x54, 0x6e, 0xdb, 0xd9, 0xa9, 0x16, 0xb7,
|
||||
0x3c, 0xd3, 0xa4, 0xb4, 0xe5, 0x57, 0x80, 0x43, 0x08, 0xf3, 0x4b, 0x58, 0x1a, 0x58, 0xc9, 0xe8,
|
||||
0x3e, 0x2c, 0xba, 0x8c, 0x34, 0x2d, 0xe2, 0x12, 0xcf, 0xd6, 0x23, 0x64, 0x68, 0x12, 0x47, 0x3b,
|
||||
0x71, 0x3b, 0x25, 0xa7, 0x17, 0xfa, 0x19, 0x6d, 0x64, 0x31, 0xcd, 0xc3, 0x03, 0x88, 0x26, 0x01,
|
||||
0x48, 0xc2, 0x93, 0x33, 0x51, 0x76, 0x4c, 0x78, 0x27, 0xd3, 0x33, 0x51, 0x36, 0x52, 0x80, 0x43,
|
||||
0xba, 0x9c, 0x68, 0x01, 0xb5, 0x39, 0x15, 0xea, 0x50, 0x33, 0x83, 0x13, 0xad, 0x1e, 0x73, 0x70,
|
||||
0x4a, 0xca, 0xfc, 0xcd, 0x80, 0xa5, 0x9d, 0x30, 0x13, 0x35, 0xe6, 0x3a, 0xf6, 0xa3, 0x13, 0x58,
|
||||
0xbe, 0x77, 0x07, 0x96, 0xef, 0xa5, 0xf1, 0x87, 0x32, 0xe0, 0xd8, 0xd8, 0xed, 0xfb, 0x93, 0x01,
|
||||
0xff, 0x1f, 0x90, 0xbc, 0x99, 0xcc, 0x9f, 0x1a, 0x64, 0x65, 0x17, 0x44, 0xf7, 0xd8, 0x69, 0x6d,
|
||||
0xa9, 0x6e, 0x4a, 0x6e, 0xb2, 0x12, 0x01, 0x87, 0x40, 0x68, 0x13, 0x32, 0x82, 0xe9, 0xb2, 0x9c,
|
||||
0x1a, 0x8e, 0x52, 0x6e, 0x81, 0x86, 0xcb, 0x34, 0x18, 0xce, 0x08, 0x66, 0xfe, 0x6c, 0x40, 0x71,
|
||||
0x40, 0x2a, 0x3d, 0x37, 0x5f, 0xbe, 0xdf, 0x77, 0x61, 0x6e, 0x9f, 0xb3, 0xce, 0x8b, 0x78, 0x1e,
|
||||
0x27, 0xfd, 0x16, 0x67, 0x1d, 0xac, 0x60, 0xcc, 0xc7, 0x06, 0x9c, 0x1e, 0x90, 0x3c, 0x81, 0x25,
|
||||
0xb5, 0x3d, 0xb8, 0xa4, 0x2e, 0x4e, 0x19, 0xc3, 0x98, 0x55, 0xf5, 0x38, 0x33, 0x14, 0x81, 0x8c,
|
||||
0x15, 0xed, 0x43, 0xc1, 0x67, 0xcd, 0x3a, 0x75, 0xa9, 0x2d, 0x58, 0xd4, 0xd3, 0x57, 0xa7, 0x0c,
|
||||
0x82, 0xec, 0x51, 0x37, 0x52, 0xb5, 0x4e, 0xf5, 0x7b, 0xe5, 0x42, 0x2d, 0xc1, 0xc2, 0x69, 0x60,
|
||||
0xf4, 0x10, 0x4e, 0xc7, 0xf7, 0x93, 0xd8, 0x5a, 0xe6, 0xc5, 0xad, 0x9d, 0xed, 0xf7, 0xca, 0xa7,
|
||||
0x77, 0x86, 0x11, 0xf1, 0xa8, 0x11, 0x74, 0x1b, 0x72, 0x8e, 0xaf, 0x9e, 0x62, 0xfa, 0x16, 0xff,
|
||||
0x5f, 0xcb, 0x3e, 0x7c, 0xb3, 0x85, 0x0f, 0x02, 0xfd, 0x81, 0x23, 0x75, 0xf3, 0xcf, 0xe1, 0x1a,
|
||||
0x90, 0x05, 0x87, 0x36, 0x21, 0xaf, 0x1e, 0xc7, 0x36, 0x73, 0xf5, 0x9a, 0xbb, 0xa4, 0x5e, 0xb7,
|
||||
0x9a, 0x76, 0xd4, 0x2b, 0xbf, 0x32, 0xfa, 0x6b, 0x41, 0x25, 0x62, 0xe3, 0x58, 0x79, 0x68, 0x13,
|
||||
0x8e, 0x1f, 0x42, 0xf2, 0x81, 0x5e, 0x09, 0x1f, 0xe8, 0x95, 0x2d, 0x4f, 0xec, 0xf2, 0xba, 0xe0,
|
||||
0x8e, 0xd7, 0x0a, 0xb7, 0x72, 0xb2, 0x09, 0xd1, 0x79, 0xc8, 0xe9, 0x45, 0xa9, 0x02, 0xcf, 0x86,
|
||||
0x51, 0xdd, 0x0c, 0x49, 0x38, 0xe2, 0x99, 0x47, 0xc3, 0x75, 0xa1, 0xd6, 0xe6, 0x83, 0x97, 0x56,
|
||||
0x17, 0xff, 0xd3, 0xd5, 0x38, 0xbe, 0x36, 0x3e, 0x87, 0x9c, 0x5e, 0xba, 0xba, 0xd2, 0xd7, 0xa7,
|
||||
0xac, 0xf4, 0xf4, 0x12, 0x8b, 0xdf, 0xfc, 0x11, 0x31, 0xc2, 0x44, 0x9f, 0xc0, 0x3c, 0x0d, 0xd1,
|
||||
0xc3, 0xad, 0x78, 0x65, 0x4a, 0xf4, 0x64, 0xac, 0x26, 0xaf, 0x51, 0x4d, 0xd3, 0x80, 0xe8, 0x03,
|
||||
0x99, 0x25, 0x29, 0x2b, 0x1f, 0x81, 0x41, 0x71, 0x4e, 0x2d, 0xaa, 0x57, 0xc3, 0x60, 0x63, 0xf2,
|
||||
0x91, 0xbc, 0xf4, 0xc6, 0x9f, 0x38, 0xad, 0x61, 0x7e, 0x01, 0x68, 0xf4, 0x5e, 0x33, 0xc5, 0xad,
|
||||
0xe9, 0x02, 0xcc, 0x7b, 0xdd, 0xce, 0x1e, 0x0d, 0x7b, 0x28, 0x9b, 0x38, 0xb8, 0xa3, 0xa8, 0x58,
|
||||
0x73, 0xad, 0xf7, 0x9f, 0x3c, 0x2f, 0xcd, 0x3c, 0x7d, 0x5e, 0x9a, 0x79, 0xf6, 0xbc, 0x34, 0xf3,
|
||||
0x75, 0xbf, 0x64, 0x3c, 0xe9, 0x97, 0x8c, 0xa7, 0xfd, 0x92, 0xf1, 0xac, 0x5f, 0x32, 0xfe, 0xee,
|
||||
0x97, 0x8c, 0xef, 0xfe, 0x29, 0xcd, 0x7c, 0x5a, 0x1c, 0xf7, 0x0b, 0xda, 0xbf, 0x01, 0x00, 0x00,
|
||||
0xff, 0xff, 0x32, 0xcd, 0xce, 0x57, 0x75, 0x13, 0x00, 0x00,
|
||||
0x36, 0x45, 0x20, 0x40, 0xdd, 0xac, 0x27, 0xce, 0xd6, 0xeb, 0x9d, 0x65, 0x76, 0x1c, 0x5a, 0x4e,
|
||||
0x5c, 0x38, 0x70, 0xe3, 0xc6, 0x99, 0x3f, 0x01, 0xc1, 0x0d, 0x41, 0xc5, 0x05, 0xf5, 0x58, 0x89,
|
||||
0x4b, 0x2f, 0x58, 0xd4, 0xfc, 0x17, 0x39, 0xa1, 0x99, 0x9d, 0xfd, 0xe1, 0x75, 0xdc, 0xac, 0xaa,
|
||||
0x2a, 0xa7, 0x64, 0xdf, 0x8f, 0xcf, 0xfb, 0x39, 0xef, 0xcd, 0x18, 0xae, 0x75, 0xdf, 0xf1, 0x6b,
|
||||
0x36, 0xad, 0x77, 0xfb, 0x3b, 0x84, 0xb9, 0x84, 0x13, 0xbf, 0xbe, 0x4f, 0xdc, 0x36, 0x65, 0x75,
|
||||
0xc5, 0x30, 0x3d, 0xbb, 0xee, 0x12, 0xfe, 0x15, 0x65, 0x5d, 0xdb, 0xed, 0xd4, 0xf7, 0x2f, 0xd7,
|
||||
0x3b, 0xc4, 0x25, 0xcc, 0xe4, 0xa4, 0x5d, 0xf3, 0x18, 0xe5, 0x14, 0x95, 0x03, 0xc9, 0x9a, 0xe9,
|
||||
0xd9, 0xb5, 0x58, 0xb2, 0xb6, 0x7f, 0xf9, 0xec, 0xa5, 0x8e, 0xcd, 0xf7, 0xfa, 0x3b, 0x35, 0x8b,
|
||||
0xf6, 0xea, 0x1d, 0xda, 0xa1, 0x75, 0xa9, 0xb0, 0xd3, 0xdf, 0x95, 0x5f, 0xf2, 0x43, 0xfe, 0x17,
|
||||
0x00, 0x9d, 0xd5, 0x13, 0x26, 0x2d, 0xca, 0xc8, 0x21, 0xc6, 0xce, 0x5e, 0x8d, 0x65, 0x7a, 0xa6,
|
||||
0xb5, 0x67, 0xbb, 0x84, 0x3d, 0xac, 0x7b, 0xdd, 0x8e, 0x20, 0xf8, 0xf5, 0x1e, 0xe1, 0xe6, 0x61,
|
||||
0x5a, 0xf5, 0x49, 0x5a, 0xac, 0xef, 0x72, 0xbb, 0x47, 0xc6, 0x14, 0xde, 0x3e, 0x4a, 0xc1, 0xb7,
|
||||
0xf6, 0x48, 0xcf, 0x1c, 0xd3, 0xbb, 0x32, 0x49, 0xaf, 0xcf, 0x6d, 0xa7, 0x6e, 0xbb, 0xdc, 0xe7,
|
||||
0x2c, 0xad, 0xa4, 0xff, 0xae, 0xc1, 0x89, 0x5b, 0xad, 0x56, 0x63, 0xc3, 0xed, 0x30, 0xe2, 0xfb,
|
||||
0x0d, 0x93, 0xef, 0xa1, 0x65, 0x98, 0xf1, 0x4c, 0xbe, 0x57, 0xd6, 0x96, 0xb5, 0x95, 0x39, 0x63,
|
||||
0xfe, 0xf1, 0xa0, 0x3a, 0x35, 0x1c, 0x54, 0x67, 0x04, 0x0f, 0x4b, 0x0e, 0xba, 0x0a, 0x45, 0xf1,
|
||||
0xb7, 0xf5, 0xd0, 0x23, 0xe5, 0x69, 0x29, 0x55, 0x1e, 0x0e, 0xaa, 0xc5, 0x86, 0xa2, 0x1d, 0x24,
|
||||
0xfe, 0xc7, 0x91, 0x24, 0x6a, 0x42, 0x61, 0xc7, 0xb4, 0xba, 0xc4, 0x6d, 0x97, 0x73, 0xcb, 0xda,
|
||||
0x4a, 0x69, 0x75, 0xa5, 0x36, 0xa9, 0x7c, 0x35, 0xe5, 0x8f, 0x11, 0xc8, 0x1b, 0x27, 0x94, 0x13,
|
||||
0x05, 0x45, 0xc0, 0x21, 0x92, 0xbe, 0x0b, 0xa7, 0x13, 0xfe, 0xe3, 0xbe, 0x43, 0xee, 0x9a, 0x4e,
|
||||
0x9f, 0xa0, 0x2d, 0xc8, 0x0b, 0xc3, 0x7e, 0x59, 0x5b, 0x9e, 0x5e, 0x29, 0xad, 0xbe, 0x3e, 0xd9,
|
||||
0x54, 0x2a, 0x7c, 0x63, 0x41, 0xd9, 0xca, 0x8b, 0x2f, 0x1f, 0x07, 0x30, 0xfa, 0x36, 0x14, 0x36,
|
||||
0x1a, 0x86, 0x43, 0xad, 0xae, 0xc8, 0x8f, 0x65, 0xb7, 0x59, 0x3a, 0x3f, 0x6b, 0x1b, 0xd7, 0x31,
|
||||
0x96, 0x1c, 0xa4, 0xc3, 0x2c, 0x79, 0x60, 0x11, 0x8f, 0x97, 0x73, 0xcb, 0xd3, 0x2b, 0x73, 0x06,
|
||||
0x0c, 0x07, 0xd5, 0xd9, 0x1b, 0x92, 0x82, 0x15, 0x47, 0xff, 0x36, 0x07, 0x05, 0x65, 0x16, 0xdd,
|
||||
0x83, 0xa2, 0x68, 0x9f, 0xb6, 0xc9, 0x4d, 0x89, 0x5a, 0x5a, 0x7d, 0x2b, 0xe1, 0x6f, 0x54, 0xcd,
|
||||
0x9a, 0xd7, 0xed, 0x08, 0x82, 0x5f, 0x13, 0xd2, 0xc2, 0xf7, 0xed, 0x9d, 0xfb, 0xc4, 0xe2, 0x77,
|
||||
0x08, 0x37, 0x0d, 0xa4, 0xfc, 0x80, 0x98, 0x86, 0x23, 0x54, 0xb4, 0x0e, 0x33, 0xbe, 0x47, 0x2c,
|
||||
0x95, 0xf8, 0x73, 0x47, 0x26, 0xbe, 0xe9, 0x11, 0x2b, 0x0e, 0x4d, 0x7c, 0x61, 0x09, 0x80, 0xb6,
|
||||
0x61, 0xd6, 0xe7, 0x26, 0xef, 0xfb, 0xb2, 0xf0, 0xa5, 0xd5, 0x0b, 0x47, 0x43, 0x49, 0x71, 0x63,
|
||||
0x51, 0x81, 0xcd, 0x06, 0xdf, 0x58, 0xc1, 0xe8, 0x7f, 0x68, 0xb0, 0x38, 0x5a, 0x6d, 0x74, 0x17,
|
||||
0x0a, 0x3e, 0x61, 0xfb, 0xb6, 0x45, 0xca, 0x33, 0xd2, 0x48, 0xfd, 0x68, 0x23, 0x81, 0x7c, 0xd8,
|
||||
0x2f, 0x25, 0xd1, 0x2b, 0x8a, 0x86, 0x43, 0x30, 0xf4, 0x31, 0x14, 0x19, 0xf1, 0x69, 0x9f, 0x59,
|
||||
0x44, 0x79, 0x7f, 0x29, 0x09, 0x2c, 0xce, 0xbd, 0x80, 0x14, 0xcd, 0xda, 0xde, 0xa4, 0x96, 0xe9,
|
||||
0x04, 0xa9, 0xc4, 0x64, 0x97, 0x30, 0xe2, 0x5a, 0xc4, 0x98, 0x17, 0x5d, 0x8e, 0x15, 0x04, 0x8e,
|
||||
0xc0, 0xc4, 0x29, 0x9a, 0x57, 0x8e, 0xac, 0x39, 0xe6, 0xb1, 0x14, 0x74, 0x73, 0xa4, 0xa0, 0x6f,
|
||||
0x1c, 0x99, 0x20, 0xe9, 0xd7, 0xa4, 0xaa, 0xea, 0xbf, 0x69, 0xb0, 0x94, 0x14, 0xdc, 0xb4, 0x7d,
|
||||
0x8e, 0x3e, 0x1b, 0x0b, 0xa2, 0x96, 0x2d, 0x08, 0xa1, 0x2d, 0x43, 0x58, 0x52, 0xa6, 0x8a, 0x21,
|
||||
0x25, 0x11, 0xc0, 0x6d, 0xc8, 0xdb, 0x9c, 0xf4, 0x7c, 0x79, 0x44, 0x4a, 0xab, 0xe7, 0xb3, 0x45,
|
||||
0x10, 0x9f, 0xce, 0x0d, 0xa1, 0x8c, 0x03, 0x0c, 0xfd, 0x6f, 0x0d, 0xaa, 0x49, 0xb1, 0x86, 0xc9,
|
||||
0xcc, 0x1e, 0xe1, 0x84, 0xf9, 0x51, 0xf1, 0xd0, 0x0a, 0x14, 0xcd, 0xc6, 0xc6, 0x3a, 0xa3, 0x7d,
|
||||
0x2f, 0x3c, 0xba, 0xc2, 0xb5, 0x6b, 0x8a, 0x86, 0x23, 0xae, 0x38, 0xe0, 0x5d, 0x5b, 0x4d, 0xa9,
|
||||
0xc4, 0x01, 0xbf, 0x6d, 0xbb, 0x6d, 0x2c, 0x39, 0x42, 0xc2, 0x35, 0x7b, 0xe1, 0xf0, 0x8b, 0x24,
|
||||
0xb6, 0xcc, 0x1e, 0xc1, 0x92, 0x83, 0xaa, 0x90, 0xf7, 0x2d, 0xea, 0x05, 0x1d, 0x3c, 0x67, 0xcc,
|
||||
0x09, 0x97, 0x9b, 0x82, 0x80, 0x03, 0x3a, 0xba, 0x08, 0x73, 0x42, 0xd0, 0xf7, 0x4c, 0x8b, 0x94,
|
||||
0xf3, 0x52, 0x68, 0x61, 0x38, 0xa8, 0xce, 0x6d, 0x85, 0x44, 0x1c, 0xf3, 0xf5, 0x9f, 0x52, 0xf5,
|
||||
0x11, 0xa5, 0x43, 0xab, 0x00, 0x16, 0x75, 0x39, 0xa3, 0x8e, 0x43, 0xc2, 0x69, 0x14, 0x35, 0xcd,
|
||||
0x5a, 0xc4, 0xc1, 0x09, 0x29, 0x64, 0x03, 0x78, 0x51, 0x6e, 0x54, 0xf3, 0xbc, 0x9b, 0x2d, 0xf5,
|
||||
0x87, 0xe4, 0xd4, 0x58, 0x14, 0xa6, 0x12, 0x8c, 0x04, 0xb8, 0xfe, 0xb3, 0x06, 0x25, 0xa5, 0x7f,
|
||||
0x0c, 0xed, 0x74, 0x73, 0xb4, 0x9d, 0x5e, 0x3d, 0x7a, 0xb5, 0x1c, 0xde, 0x49, 0x3f, 0xc6, 0x5e,
|
||||
0x8b, 0x65, 0x22, 0x2a, 0xbd, 0x47, 0x7d, 0x9e, 0x1e, 0xf6, 0xb7, 0xa8, 0xcf, 0xb1, 0xe4, 0x20,
|
||||
0x0f, 0x96, 0xec, 0xd4, 0xf6, 0xc9, 0x7c, 0x2a, 0x23, 0x0d, 0xa3, 0xac, 0x90, 0x97, 0xd2, 0x1c,
|
||||
0x3c, 0x86, 0xae, 0xdf, 0x83, 0x31, 0x29, 0x31, 0x0f, 0xf6, 0x38, 0xf7, 0x0e, 0xc9, 0xec, 0xe4,
|
||||
0x75, 0x17, 0x5b, 0x2f, 0xca, 0x98, 0x5a, 0xad, 0x06, 0x96, 0x28, 0xfa, 0x77, 0x1a, 0x9c, 0x39,
|
||||
0x74, 0xb2, 0x46, 0x9d, 0xaf, 0x4d, 0xec, 0xfc, 0x2d, 0x98, 0xf1, 0x28, 0xe3, 0x2a, 0x07, 0x6f,
|
||||
0x4e, 0xf6, 0x64, 0x14, 0xb9, 0x41, 0x19, 0x4f, 0x5c, 0x36, 0x28, 0xe3, 0x58, 0xe2, 0xe8, 0x7f,
|
||||
0xe6, 0xa2, 0x8a, 0xc8, 0xb6, 0xff, 0x20, 0xca, 0xb7, 0x6c, 0x4b, 0x61, 0x59, 0x1d, 0xb2, 0xd3,
|
||||
0x89, 0xfc, 0x45, 0x3c, 0x3c, 0x26, 0x8d, 0xda, 0xb0, 0xd8, 0x26, 0xbb, 0x66, 0xdf, 0xe1, 0xca,
|
||||
0xb6, 0xca, 0x5a, 0xf6, 0xfb, 0x08, 0x1a, 0x0e, 0xaa, 0x8b, 0xd7, 0x47, 0x30, 0x70, 0x0a, 0x13,
|
||||
0xad, 0xc1, 0x34, 0x77, 0xc2, 0x7e, 0x7c, 0xed, 0x48, 0xe8, 0xd6, 0x66, 0xd3, 0x28, 0xa9, 0xf0,
|
||||
0xa7, 0x5b, 0x9b, 0x4d, 0x2c, 0xb4, 0xd1, 0x87, 0x90, 0x67, 0x7d, 0x87, 0x88, 0x6d, 0x3b, 0x9d,
|
||||
0x69, 0x71, 0x8b, 0x9a, 0xc6, 0xad, 0x2d, 0xbe, 0x7c, 0x1c, 0x40, 0xe8, 0x5f, 0xc2, 0xc2, 0xc8,
|
||||
0x4a, 0x46, 0xf7, 0x60, 0xde, 0xa1, 0x66, 0xdb, 0x30, 0x1d, 0xd3, 0xb5, 0xd4, 0x08, 0x49, 0x4d,
|
||||
0xe2, 0x70, 0x27, 0x6e, 0x26, 0xe4, 0xd4, 0x42, 0x3f, 0xad, 0x8c, 0xcc, 0x27, 0x79, 0x78, 0x04,
|
||||
0x51, 0x37, 0x01, 0xe2, 0xf0, 0xc4, 0x4c, 0x14, 0x27, 0x26, 0xb8, 0x93, 0xa9, 0x99, 0x28, 0x0e,
|
||||
0x92, 0x8f, 0x03, 0xba, 0x98, 0x68, 0x3e, 0xb1, 0x18, 0xe1, 0xb2, 0xa8, 0xb9, 0xd1, 0x89, 0xd6,
|
||||
0x8c, 0x38, 0x38, 0x21, 0xa5, 0xff, 0x90, 0x83, 0x85, 0xad, 0x20, 0x13, 0x0d, 0xea, 0xd8, 0xd6,
|
||||
0xc3, 0x63, 0x58, 0xbe, 0x77, 0x46, 0x96, 0xef, 0xc5, 0xc9, 0x45, 0x19, 0x71, 0x6c, 0xe2, 0x9d,
|
||||
0xea, 0xa3, 0xd4, 0x9d, 0xea, 0x52, 0x56, 0xc0, 0xe7, 0xdf, 0xac, 0x7e, 0xd1, 0xe0, 0x7f, 0x23,
|
||||
0xf2, 0x37, 0xe2, 0xb1, 0xd6, 0x80, 0xbc, 0x38, 0x5c, 0xe1, 0xf5, 0x38, 0x6b, 0x08, 0xf2, 0x90,
|
||||
0xc6, 0x17, 0x64, 0x81, 0x80, 0x03, 0x20, 0xb4, 0x0e, 0x39, 0x4e, 0x55, 0xb7, 0x67, 0x86, 0x23,
|
||||
0x84, 0x19, 0xa0, 0xe0, 0x72, 0x2d, 0x8a, 0x73, 0x9c, 0xea, 0xbf, 0x6a, 0x50, 0x1e, 0x91, 0x4a,
|
||||
0x8e, 0xe3, 0x97, 0xef, 0xf7, 0x1d, 0x98, 0xd9, 0x65, 0xb4, 0xf7, 0x22, 0x9e, 0x47, 0xb5, 0xbc,
|
||||
0xc9, 0x68, 0x0f, 0x4b, 0x18, 0xfd, 0x91, 0x06, 0x27, 0x47, 0x24, 0x8f, 0x61, 0xf7, 0x6d, 0x8e,
|
||||
0xee, 0xbe, 0x0b, 0x19, 0x63, 0x98, 0xb0, 0x01, 0x1f, 0xe5, 0x52, 0x11, 0x88, 0x58, 0xd1, 0x2e,
|
||||
0x94, 0x3c, 0xda, 0x6e, 0x12, 0x87, 0x58, 0x9c, 0x86, 0xa3, 0xe2, 0x4a, 0xc6, 0x20, 0xcc, 0x1d,
|
||||
0xe2, 0x84, 0xaa, 0xc6, 0x89, 0xe1, 0xa0, 0x5a, 0x6a, 0xc4, 0x58, 0x38, 0x09, 0x8c, 0x1e, 0xc0,
|
||||
0xc9, 0xe8, 0xda, 0x13, 0x59, 0xcb, 0xbd, 0xb8, 0xb5, 0x33, 0xc3, 0x41, 0xf5, 0xe4, 0x56, 0x1a,
|
||||
0x11, 0x8f, 0x1b, 0x41, 0xb7, 0xa0, 0x60, 0x7b, 0xf2, 0x85, 0xa7, 0x8e, 0xe1, 0xf3, 0xee, 0x10,
|
||||
0xc1, 0x53, 0x30, 0x78, 0x67, 0xa8, 0x0f, 0x1c, 0xaa, 0xeb, 0x7f, 0xa5, 0x7b, 0x40, 0x34, 0x1c,
|
||||
0x5a, 0x87, 0xa2, 0x7c, 0x73, 0x5b, 0xd4, 0x51, 0xdb, 0xf3, 0xa2, 0x7c, 0x34, 0x2b, 0xda, 0xc1,
|
||||
0xa0, 0xfa, 0xff, 0xf1, 0x1f, 0x21, 0x6a, 0x21, 0x1b, 0x47, 0xca, 0xa9, 0x05, 0x3b, 0x79, 0xb6,
|
||||
0x89, 0x77, 0x7f, 0x2d, 0x78, 0xf7, 0xd7, 0x36, 0x5c, 0xbe, 0xcd, 0x9a, 0x9c, 0xd9, 0x6e, 0x27,
|
||||
0x58, 0xf6, 0xf1, 0x82, 0x45, 0xe7, 0xa0, 0xa0, 0xf6, 0xaf, 0x0c, 0x3c, 0x1f, 0x44, 0x75, 0x23,
|
||||
0x20, 0xe1, 0x90, 0xa7, 0x1f, 0xa4, 0xfb, 0x42, 0x6e, 0xe3, 0xfb, 0x2f, 0xad, 0x2f, 0x4e, 0xa9,
|
||||
0x6e, 0x9c, 0xdc, 0x1b, 0x9f, 0x43, 0x41, 0xed, 0x72, 0xd5, 0xe9, 0xab, 0x19, 0x3b, 0x3d, 0xb9,
|
||||
0x1b, 0xa3, 0x9f, 0x12, 0x42, 0x62, 0x88, 0x89, 0x3e, 0x81, 0x59, 0x12, 0xa0, 0x07, 0xcb, 0xf6,
|
||||
0x72, 0x46, 0xf4, 0x78, 0xac, 0xc6, 0xa3, 0x58, 0xd1, 0x14, 0x20, 0x7a, 0x5f, 0x64, 0x49, 0xc8,
|
||||
0x8a, 0xb7, 0xa5, 0x5f, 0x9e, 0x91, 0xfb, 0xef, 0x95, 0x20, 0xd8, 0x88, 0x7c, 0x20, 0xee, 0xd2,
|
||||
0xd1, 0x27, 0x4e, 0x6a, 0xe8, 0x5f, 0xc3, 0xa9, 0x43, 0x46, 0x3f, 0xb2, 0xe4, 0x13, 0xa0, 0x6d,
|
||||
0x73, 0x9b, 0xba, 0xe1, 0x4c, 0xac, 0x67, 0x4b, 0xfe, 0x5a, 0xa8, 0x37, 0xf2, 0x66, 0x50, 0x50,
|
||||
0x38, 0x01, 0xab, 0x7f, 0x01, 0x68, 0xfc, 0xaa, 0x96, 0xe1, 0x22, 0x78, 0x1e, 0x66, 0xdd, 0x7e,
|
||||
0x6f, 0x87, 0x04, 0xe7, 0x37, 0x1f, 0x27, 0x67, 0x4b, 0x52, 0xb1, 0xe2, 0x1a, 0xef, 0x3d, 0x7e,
|
||||
0x56, 0x99, 0x7a, 0xf2, 0xac, 0x32, 0xf5, 0xf4, 0x59, 0x65, 0xea, 0x9b, 0x61, 0x45, 0x7b, 0x3c,
|
||||
0xac, 0x68, 0x4f, 0x86, 0x15, 0xed, 0xe9, 0xb0, 0xa2, 0xfd, 0x33, 0xac, 0x68, 0xdf, 0xff, 0x5b,
|
||||
0x99, 0xfa, 0xb4, 0x3c, 0xe9, 0x47, 0xc1, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x43, 0xa0,
|
||||
0xa5, 0x48, 0x14, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) {
|
||||
@ -1573,6 +1605,16 @@ func (m *NetworkPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
{
|
||||
size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
{
|
||||
size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
@ -1921,6 +1963,43 @@ func (m *NetworkPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) MarshalTo(dAtA []byte) (int, error) {
|
||||
size := m.Size()
|
||||
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Conditions) > 0 {
|
||||
for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {
|
||||
{
|
||||
size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
}
|
||||
return len(dAtA) - i, nil
|
||||
}
|
||||
|
||||
func (m *ServiceBackendPort) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -2237,6 +2316,8 @@ func (m *NetworkPolicy) Size() (n int) {
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
l = m.Spec.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
l = m.Status.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
return n
|
||||
}
|
||||
|
||||
@ -2369,6 +2450,21 @@ func (m *NetworkPolicySpec) Size() (n int) {
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *NetworkPolicyStatus) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
}
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Conditions) > 0 {
|
||||
for _, e := range m.Conditions {
|
||||
l = e.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *ServiceBackendPort) Size() (n int) {
|
||||
if m == nil {
|
||||
return 0
|
||||
@ -2599,6 +2695,7 @@ func (this *NetworkPolicy) String() string {
|
||||
s := strings.Join([]string{`&NetworkPolicy{`,
|
||||
`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`,
|
||||
`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "NetworkPolicySpec", "NetworkPolicySpec", 1), `&`, ``, 1) + `,`,
|
||||
`Status:` + strings.Replace(strings.Replace(this.Status.String(), "NetworkPolicyStatus", "NetworkPolicyStatus", 1), `&`, ``, 1) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
@ -2708,6 +2805,21 @@ func (this *NetworkPolicySpec) String() string {
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *NetworkPolicyStatus) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
}
|
||||
repeatedStringForConditions := "[]Condition{"
|
||||
for _, f := range this.Conditions {
|
||||
repeatedStringForConditions += fmt.Sprintf("%v", f) + ","
|
||||
}
|
||||
repeatedStringForConditions += "}"
|
||||
s := strings.Join([]string{`&NetworkPolicyStatus{`,
|
||||
`Conditions:` + repeatedStringForConditions + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *ServiceBackendPort) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
@ -4820,6 +4932,39 @@ func (m *NetworkPolicy) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
@ -5674,6 +5819,90 @@ func (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *NetworkPolicyStatus) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: NetworkPolicyStatus: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: NetworkPolicyStatus: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Conditions = append(m.Conditions, v1.Condition{})
|
||||
if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *ServiceBackendPort) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
|
@ -337,6 +337,11 @@ message NetworkPolicy {
|
||||
// Specification of the desired behavior for this NetworkPolicy.
|
||||
// +optional
|
||||
optional NetworkPolicySpec spec = 2;
|
||||
|
||||
// Status is the current state of the NetworkPolicy.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||||
// +optional
|
||||
optional NetworkPolicyStatus status = 3;
|
||||
}
|
||||
|
||||
// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods
|
||||
@ -486,6 +491,18 @@ message NetworkPolicySpec {
|
||||
repeated string policyTypes = 4;
|
||||
}
|
||||
|
||||
// NetworkPolicyStatus describe the current state of the NetworkPolicy.
|
||||
message NetworkPolicyStatus {
|
||||
// Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.
|
||||
// Current service state
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
// +listType=map
|
||||
// +listMapKey=type
|
||||
repeated k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 1;
|
||||
}
|
||||
|
||||
// ServiceBackendPort is the service port being referenced.
|
||||
message ServiceBackendPort {
|
||||
// Name is the name of the port on the Service.
|
||||
|
@ -36,6 +36,11 @@ type NetworkPolicy struct {
|
||||
// Specification of the desired behavior for this NetworkPolicy.
|
||||
// +optional
|
||||
Spec NetworkPolicySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"`
|
||||
|
||||
// Status is the current state of the NetworkPolicy.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
|
||||
// +optional
|
||||
Status NetworkPolicyStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"`
|
||||
}
|
||||
|
||||
// PolicyType string describes the NetworkPolicy type
|
||||
@ -200,6 +205,48 @@ type NetworkPolicyPeer struct {
|
||||
IPBlock *IPBlock `json:"ipBlock,omitempty" protobuf:"bytes,3,rep,name=ipBlock"`
|
||||
}
|
||||
|
||||
// NetworkPolicyConditionType is the type for status conditions on
|
||||
// a NetworkPolicy. This type should be used with the
|
||||
// NetworkPolicyStatus.Conditions field.
|
||||
type NetworkPolicyConditionType string
|
||||
|
||||
const (
|
||||
// NetworkPolicyConditionStatusAccepted represents status of a Network Policy that could be properly parsed by
|
||||
// the Network Policy provider and will be implemented in the cluster
|
||||
NetworkPolicyConditionStatusAccepted NetworkPolicyConditionType = "Accepted"
|
||||
|
||||
// NetworkPolicyConditionStatusPartialFailure represents status of a Network Policy that could be partially
|
||||
// parsed by the Network Policy provider and may not be completely implemented due to a lack of a feature or some
|
||||
// other condition
|
||||
NetworkPolicyConditionStatusPartialFailure NetworkPolicyConditionType = "PartialFailure"
|
||||
|
||||
// NetworkPolicyConditionStatusFailure represents status of a Network Policy that could not be parsed by the
|
||||
// Network Policy provider and will not be implemented in the cluster
|
||||
NetworkPolicyConditionStatusFailure NetworkPolicyConditionType = "Failure"
|
||||
)
|
||||
|
||||
// NetworkPolicyConditionReason defines the set of reasons that explain why a
|
||||
// particular NetworkPolicy condition type has been raised.
|
||||
type NetworkPolicyConditionReason string
|
||||
|
||||
const (
|
||||
// NetworkPolicyConditionReasonFeatureNotSupported represents a reason where the Network Policy may not have been
|
||||
// implemented in the cluster due to a lack of some feature not supported by the Network Policy provider
|
||||
NetworkPolicyConditionReasonFeatureNotSupported NetworkPolicyConditionReason = "FeatureNotSupported"
|
||||
)
|
||||
|
||||
// NetworkPolicyStatus describe the current state of the NetworkPolicy.
|
||||
type NetworkPolicyStatus struct {
|
||||
// Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy.
|
||||
// Current service state
|
||||
// +optional
|
||||
// +patchMergeKey=type
|
||||
// +patchStrategy=merge
|
||||
// +listType=map
|
||||
// +listMapKey=type
|
||||
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// NetworkPolicyList is a list of NetworkPolicy objects.
|
||||
|
@ -193,6 +193,7 @@ var map_NetworkPolicy = map[string]string{
|
||||
"": "NetworkPolicy describes what network traffic is allowed for a set of Pods",
|
||||
"metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
|
||||
"spec": "Specification of the desired behavior for this NetworkPolicy.",
|
||||
"status": "Status is the current state of the NetworkPolicy. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
|
||||
}
|
||||
|
||||
func (NetworkPolicy) SwaggerDoc() map[string]string {
|
||||
@ -263,6 +264,15 @@ func (NetworkPolicySpec) SwaggerDoc() map[string]string {
|
||||
return map_NetworkPolicySpec
|
||||
}
|
||||
|
||||
var map_NetworkPolicyStatus = map[string]string{
|
||||
"": "NetworkPolicyStatus describe the current state of the NetworkPolicy.",
|
||||
"conditions": "Conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state",
|
||||
}
|
||||
|
||||
func (NetworkPolicyStatus) SwaggerDoc() map[string]string {
|
||||
return map_NetworkPolicyStatus
|
||||
}
|
||||
|
||||
var map_ServiceBackendPort = map[string]string{
|
||||
"": "ServiceBackendPort is the service port being referenced.",
|
||||
"name": "Name is the name of the port on the Service. This is a mutually exclusive setting with \"Number\".",
|
||||
|
@ -432,6 +432,7 @@ func (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
@ -644,6 +645,29 @@ func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *NetworkPolicyStatus) DeepCopyInto(out *NetworkPolicyStatus) {
|
||||
*out = *in
|
||||
if in.Conditions != nil {
|
||||
in, out := &in.Conditions, &out.Conditions
|
||||
*out = make([]metav1.Condition, len(*in))
|
||||
for i := range *in {
|
||||
(*in)[i].DeepCopyInto(&(*out)[i])
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyStatus.
|
||||
func (in *NetworkPolicyStatus) DeepCopy() *NetworkPolicyStatus {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(NetworkPolicyStatus)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ServiceBackendPort) DeepCopyInto(out *ServiceBackendPort) {
|
||||
*out = *in
|
||||
|
@ -160,5 +160,17 @@
|
||||
"policyTypes": [
|
||||
"policyTypesValue"
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"conditions": [
|
||||
{
|
||||
"type": "typeValue",
|
||||
"status": "statusValue",
|
||||
"observedGeneration": 3,
|
||||
"lastTransitionTime": "2004-01-01T01:01:01Z",
|
||||
"reason": "reasonValue",
|
||||
"message": "messageValue"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Binary file not shown.
@ -96,3 +96,11 @@ spec:
|
||||
matchLabelsKey: matchLabelsValue
|
||||
policyTypes:
|
||||
- policyTypesValue
|
||||
status:
|
||||
conditions:
|
||||
- lastTransitionTime: "2004-01-01T01:01:01Z"
|
||||
message: messageValue
|
||||
observedGeneration: 3
|
||||
reason: reasonValue
|
||||
status: statusValue
|
||||
type: typeValue
|
||||
|
@ -160,5 +160,17 @@
|
||||
"policyTypes": [
|
||||
"policyTypesValue"
|
||||
]
|
||||
},
|
||||
"status": {
|
||||
"conditions": [
|
||||
{
|
||||
"type": "typeValue",
|
||||
"status": "statusValue",
|
||||
"observedGeneration": 3,
|
||||
"lastTransitionTime": "2004-01-01T01:01:01Z",
|
||||
"reason": "reasonValue",
|
||||
"message": "messageValue"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
Binary file not shown.
@ -96,3 +96,11 @@ spec:
|
||||
matchLabelsKey: matchLabelsValue
|
||||
policyTypes:
|
||||
- policyTypesValue
|
||||
status:
|
||||
conditions:
|
||||
- lastTransitionTime: "2004-01-01T01:01:01Z"
|
||||
message: messageValue
|
||||
observedGeneration: 3
|
||||
reason: reasonValue
|
||||
status: statusValue
|
||||
type: typeValue
|
||||
|
153
staging/src/k8s.io/api/testdata/v1.22.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
153
staging/src/k8s.io/api/testdata/v1.22.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
{
|
||||
"kind": "NetworkPolicy",
|
||||
"apiVersion": "extensions/v1beta1",
|
||||
"metadata": {
|
||||
"name": "2",
|
||||
"generateName": "3",
|
||||
"namespace": "4",
|
||||
"selfLink": "5",
|
||||
"uid": "7",
|
||||
"resourceVersion": "11042405498087606203",
|
||||
"generation": 8071137005907523419,
|
||||
"creationTimestamp": "2061-09-19T18:13:36Z",
|
||||
"deletionGracePeriodSeconds": -4955867275792137171,
|
||||
"labels": {
|
||||
"7": "8"
|
||||
},
|
||||
"annotations": {
|
||||
"9": "10"
|
||||
},
|
||||
"ownerReferences": [
|
||||
{
|
||||
"apiVersion": "11",
|
||||
"kind": "12",
|
||||
"name": "13",
|
||||
"uid": "Dz廔ȇ{sŊƏp",
|
||||
"controller": false,
|
||||
"blockOwnerDeletion": true
|
||||
}
|
||||
],
|
||||
"finalizers": [
|
||||
"14"
|
||||
],
|
||||
"clusterName": "15",
|
||||
"managedFields": [
|
||||
{
|
||||
"manager": "16",
|
||||
"operation": "鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]",
|
||||
"apiVersion": "17",
|
||||
"fieldsType": "18",
|
||||
"subresource": "19"
|
||||
}
|
||||
]
|
||||
},
|
||||
"spec": {
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3": "68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4"
|
||||
},
|
||||
"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",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ingress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ",
|
||||
"port": 2,
|
||||
"endPort": -420211493
|
||||
}
|
||||
],
|
||||
"from": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4": "31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v",
|
||||
"operator": "Exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5": "U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"g4"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "38",
|
||||
"except": [
|
||||
"39"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"egress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "s3!Zɾģ毋",
|
||||
"port": 3,
|
||||
"endPort": -630252364
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"P1s-V.9.3": "9..c_uo3a"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B": "N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "52",
|
||||
"except": [
|
||||
"53"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"policyTypes": [
|
||||
"(dŊiɢz"
|
||||
]
|
||||
},
|
||||
"status": {}
|
||||
}
|
BIN
staging/src/k8s.io/api/testdata/v1.22.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
BIN
staging/src/k8s.io/api/testdata/v1.22.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
Binary file not shown.
90
staging/src/k8s.io/api/testdata/v1.22.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
90
staging/src/k8s.io/api/testdata/v1.22.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
"9": "10"
|
||||
clusterName: "15"
|
||||
creationTimestamp: "2061-09-19T18:13:36Z"
|
||||
deletionGracePeriodSeconds: -4955867275792137171
|
||||
finalizers:
|
||||
- "14"
|
||||
generateName: "3"
|
||||
generation: 8071137005907523419
|
||||
labels:
|
||||
"7": "8"
|
||||
managedFields:
|
||||
- apiVersion: "17"
|
||||
fieldsType: "18"
|
||||
manager: "16"
|
||||
operation: 鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]
|
||||
subresource: "19"
|
||||
name: "2"
|
||||
namespace: "4"
|
||||
ownerReferences:
|
||||
- apiVersion: "11"
|
||||
blockOwnerDeletion: true
|
||||
controller: false
|
||||
kind: "12"
|
||||
name: "13"
|
||||
uid: Dz廔ȇ{sŊƏp
|
||||
resourceVersion: "11042405498087606203"
|
||||
selfLink: "5"
|
||||
uid: "7"
|
||||
spec:
|
||||
egress:
|
||||
- ports:
|
||||
- endPort: -630252364
|
||||
port: 3
|
||||
protocol: s3!Zɾģ毋
|
||||
to:
|
||||
- ipBlock:
|
||||
cidr: "52"
|
||||
except:
|
||||
- "53"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: 7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B: N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: 1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
P1s-V.9.3: 9..c_uo3a
|
||||
ingress:
|
||||
- from:
|
||||
- ipBlock:
|
||||
cidr: "38"
|
||||
except:
|
||||
- "39"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X
|
||||
operator: In
|
||||
values:
|
||||
- g4
|
||||
matchLabels:
|
||||
pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5: U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v
|
||||
operator: Exists
|
||||
matchLabels:
|
||||
5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4: 31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g
|
||||
ports:
|
||||
- endPort: -420211493
|
||||
port: 2
|
||||
protocol: Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ
|
||||
podSelector:
|
||||
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
|
||||
operator: In
|
||||
values:
|
||||
- D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n
|
||||
matchLabels:
|
||||
8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3: 68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4
|
||||
policyTypes:
|
||||
- (dŊiɢz
|
||||
status: {}
|
153
staging/src/k8s.io/api/testdata/v1.22.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
153
staging/src/k8s.io/api/testdata/v1.22.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
{
|
||||
"kind": "NetworkPolicy",
|
||||
"apiVersion": "networking.k8s.io/v1",
|
||||
"metadata": {
|
||||
"name": "2",
|
||||
"generateName": "3",
|
||||
"namespace": "4",
|
||||
"selfLink": "5",
|
||||
"uid": "7",
|
||||
"resourceVersion": "11042405498087606203",
|
||||
"generation": 8071137005907523419,
|
||||
"creationTimestamp": "2061-09-19T18:13:36Z",
|
||||
"deletionGracePeriodSeconds": -4955867275792137171,
|
||||
"labels": {
|
||||
"7": "8"
|
||||
},
|
||||
"annotations": {
|
||||
"9": "10"
|
||||
},
|
||||
"ownerReferences": [
|
||||
{
|
||||
"apiVersion": "11",
|
||||
"kind": "12",
|
||||
"name": "13",
|
||||
"uid": "Dz廔ȇ{sŊƏp",
|
||||
"controller": false,
|
||||
"blockOwnerDeletion": true
|
||||
}
|
||||
],
|
||||
"finalizers": [
|
||||
"14"
|
||||
],
|
||||
"clusterName": "15",
|
||||
"managedFields": [
|
||||
{
|
||||
"manager": "16",
|
||||
"operation": "鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]",
|
||||
"apiVersion": "17",
|
||||
"fieldsType": "18",
|
||||
"subresource": "19"
|
||||
}
|
||||
]
|
||||
},
|
||||
"spec": {
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3": "68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4"
|
||||
},
|
||||
"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",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ingress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ",
|
||||
"port": 2,
|
||||
"endPort": -420211493
|
||||
}
|
||||
],
|
||||
"from": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4": "31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v",
|
||||
"operator": "Exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5": "U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"g4"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "38",
|
||||
"except": [
|
||||
"39"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"egress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "s3!Zɾģ毋",
|
||||
"port": 3,
|
||||
"endPort": -630252364
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"P1s-V.9.3": "9..c_uo3a"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B": "N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "52",
|
||||
"except": [
|
||||
"53"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"policyTypes": [
|
||||
"(dŊiɢz"
|
||||
]
|
||||
},
|
||||
"status": {}
|
||||
}
|
BIN
staging/src/k8s.io/api/testdata/v1.22.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
BIN
staging/src/k8s.io/api/testdata/v1.22.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
Binary file not shown.
90
staging/src/k8s.io/api/testdata/v1.22.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
90
staging/src/k8s.io/api/testdata/v1.22.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
"9": "10"
|
||||
clusterName: "15"
|
||||
creationTimestamp: "2061-09-19T18:13:36Z"
|
||||
deletionGracePeriodSeconds: -4955867275792137171
|
||||
finalizers:
|
||||
- "14"
|
||||
generateName: "3"
|
||||
generation: 8071137005907523419
|
||||
labels:
|
||||
"7": "8"
|
||||
managedFields:
|
||||
- apiVersion: "17"
|
||||
fieldsType: "18"
|
||||
manager: "16"
|
||||
operation: 鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]
|
||||
subresource: "19"
|
||||
name: "2"
|
||||
namespace: "4"
|
||||
ownerReferences:
|
||||
- apiVersion: "11"
|
||||
blockOwnerDeletion: true
|
||||
controller: false
|
||||
kind: "12"
|
||||
name: "13"
|
||||
uid: Dz廔ȇ{sŊƏp
|
||||
resourceVersion: "11042405498087606203"
|
||||
selfLink: "5"
|
||||
uid: "7"
|
||||
spec:
|
||||
egress:
|
||||
- ports:
|
||||
- endPort: -630252364
|
||||
port: 3
|
||||
protocol: s3!Zɾģ毋
|
||||
to:
|
||||
- ipBlock:
|
||||
cidr: "52"
|
||||
except:
|
||||
- "53"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: 7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B: N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: 1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
P1s-V.9.3: 9..c_uo3a
|
||||
ingress:
|
||||
- from:
|
||||
- ipBlock:
|
||||
cidr: "38"
|
||||
except:
|
||||
- "39"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X
|
||||
operator: In
|
||||
values:
|
||||
- g4
|
||||
matchLabels:
|
||||
pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5: U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v
|
||||
operator: Exists
|
||||
matchLabels:
|
||||
5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4: 31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g
|
||||
ports:
|
||||
- endPort: -420211493
|
||||
port: 2
|
||||
protocol: Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ
|
||||
podSelector:
|
||||
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
|
||||
operator: In
|
||||
values:
|
||||
- D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n
|
||||
matchLabels:
|
||||
8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3: 68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4
|
||||
policyTypes:
|
||||
- (dŊiɢz
|
||||
status: {}
|
153
staging/src/k8s.io/api/testdata/v1.23.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
153
staging/src/k8s.io/api/testdata/v1.23.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
{
|
||||
"kind": "NetworkPolicy",
|
||||
"apiVersion": "extensions/v1beta1",
|
||||
"metadata": {
|
||||
"name": "2",
|
||||
"generateName": "3",
|
||||
"namespace": "4",
|
||||
"selfLink": "5",
|
||||
"uid": "7",
|
||||
"resourceVersion": "11042405498087606203",
|
||||
"generation": 8071137005907523419,
|
||||
"creationTimestamp": "2061-09-19T18:13:36Z",
|
||||
"deletionGracePeriodSeconds": -4955867275792137171,
|
||||
"labels": {
|
||||
"7": "8"
|
||||
},
|
||||
"annotations": {
|
||||
"9": "10"
|
||||
},
|
||||
"ownerReferences": [
|
||||
{
|
||||
"apiVersion": "11",
|
||||
"kind": "12",
|
||||
"name": "13",
|
||||
"uid": "Dz廔ȇ{sŊƏp",
|
||||
"controller": false,
|
||||
"blockOwnerDeletion": true
|
||||
}
|
||||
],
|
||||
"finalizers": [
|
||||
"14"
|
||||
],
|
||||
"clusterName": "15",
|
||||
"managedFields": [
|
||||
{
|
||||
"manager": "16",
|
||||
"operation": "鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]",
|
||||
"apiVersion": "17",
|
||||
"fieldsType": "18",
|
||||
"subresource": "19"
|
||||
}
|
||||
]
|
||||
},
|
||||
"spec": {
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3": "68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4"
|
||||
},
|
||||
"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",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ingress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ",
|
||||
"port": 2,
|
||||
"endPort": -420211493
|
||||
}
|
||||
],
|
||||
"from": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4": "31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v",
|
||||
"operator": "Exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5": "U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"g4"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "38",
|
||||
"except": [
|
||||
"39"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"egress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "s3!Zɾģ毋",
|
||||
"port": 3,
|
||||
"endPort": -630252364
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"P1s-V.9.3": "9..c_uo3a"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B": "N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "52",
|
||||
"except": [
|
||||
"53"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"policyTypes": [
|
||||
"(dŊiɢz"
|
||||
]
|
||||
},
|
||||
"status": {}
|
||||
}
|
BIN
staging/src/k8s.io/api/testdata/v1.23.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
BIN
staging/src/k8s.io/api/testdata/v1.23.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
Binary file not shown.
90
staging/src/k8s.io/api/testdata/v1.23.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
90
staging/src/k8s.io/api/testdata/v1.23.0/extensions.v1beta1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
"9": "10"
|
||||
clusterName: "15"
|
||||
creationTimestamp: "2061-09-19T18:13:36Z"
|
||||
deletionGracePeriodSeconds: -4955867275792137171
|
||||
finalizers:
|
||||
- "14"
|
||||
generateName: "3"
|
||||
generation: 8071137005907523419
|
||||
labels:
|
||||
"7": "8"
|
||||
managedFields:
|
||||
- apiVersion: "17"
|
||||
fieldsType: "18"
|
||||
manager: "16"
|
||||
operation: 鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]
|
||||
subresource: "19"
|
||||
name: "2"
|
||||
namespace: "4"
|
||||
ownerReferences:
|
||||
- apiVersion: "11"
|
||||
blockOwnerDeletion: true
|
||||
controller: false
|
||||
kind: "12"
|
||||
name: "13"
|
||||
uid: Dz廔ȇ{sŊƏp
|
||||
resourceVersion: "11042405498087606203"
|
||||
selfLink: "5"
|
||||
uid: "7"
|
||||
spec:
|
||||
egress:
|
||||
- ports:
|
||||
- endPort: -630252364
|
||||
port: 3
|
||||
protocol: s3!Zɾģ毋
|
||||
to:
|
||||
- ipBlock:
|
||||
cidr: "52"
|
||||
except:
|
||||
- "53"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: 7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B: N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: 1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
P1s-V.9.3: 9..c_uo3a
|
||||
ingress:
|
||||
- from:
|
||||
- ipBlock:
|
||||
cidr: "38"
|
||||
except:
|
||||
- "39"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X
|
||||
operator: In
|
||||
values:
|
||||
- g4
|
||||
matchLabels:
|
||||
pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5: U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v
|
||||
operator: Exists
|
||||
matchLabels:
|
||||
5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4: 31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g
|
||||
ports:
|
||||
- endPort: -420211493
|
||||
port: 2
|
||||
protocol: Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ
|
||||
podSelector:
|
||||
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
|
||||
operator: In
|
||||
values:
|
||||
- D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n
|
||||
matchLabels:
|
||||
8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3: 68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4
|
||||
policyTypes:
|
||||
- (dŊiɢz
|
||||
status: {}
|
153
staging/src/k8s.io/api/testdata/v1.23.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
153
staging/src/k8s.io/api/testdata/v1.23.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.json
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
{
|
||||
"kind": "NetworkPolicy",
|
||||
"apiVersion": "networking.k8s.io/v1",
|
||||
"metadata": {
|
||||
"name": "2",
|
||||
"generateName": "3",
|
||||
"namespace": "4",
|
||||
"selfLink": "5",
|
||||
"uid": "7",
|
||||
"resourceVersion": "11042405498087606203",
|
||||
"generation": 8071137005907523419,
|
||||
"creationTimestamp": "2061-09-19T18:13:36Z",
|
||||
"deletionGracePeriodSeconds": -4955867275792137171,
|
||||
"labels": {
|
||||
"7": "8"
|
||||
},
|
||||
"annotations": {
|
||||
"9": "10"
|
||||
},
|
||||
"ownerReferences": [
|
||||
{
|
||||
"apiVersion": "11",
|
||||
"kind": "12",
|
||||
"name": "13",
|
||||
"uid": "Dz廔ȇ{sŊƏp",
|
||||
"controller": false,
|
||||
"blockOwnerDeletion": true
|
||||
}
|
||||
],
|
||||
"finalizers": [
|
||||
"14"
|
||||
],
|
||||
"clusterName": "15",
|
||||
"managedFields": [
|
||||
{
|
||||
"manager": "16",
|
||||
"operation": "鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]",
|
||||
"apiVersion": "17",
|
||||
"fieldsType": "18",
|
||||
"subresource": "19"
|
||||
}
|
||||
]
|
||||
},
|
||||
"spec": {
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3": "68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4"
|
||||
},
|
||||
"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",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ingress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ",
|
||||
"port": 2,
|
||||
"endPort": -420211493
|
||||
}
|
||||
],
|
||||
"from": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4": "31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v",
|
||||
"operator": "Exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5": "U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X",
|
||||
"operator": "In",
|
||||
"values": [
|
||||
"g4"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "38",
|
||||
"except": [
|
||||
"39"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"egress": [
|
||||
{
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "s3!Zɾģ毋",
|
||||
"port": 3,
|
||||
"endPort": -630252364
|
||||
}
|
||||
],
|
||||
"to": [
|
||||
{
|
||||
"podSelector": {
|
||||
"matchLabels": {
|
||||
"P1s-V.9.3": "9..c_uo3a"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"namespaceSelector": {
|
||||
"matchLabels": {
|
||||
"5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B": "N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz"
|
||||
},
|
||||
"matchExpressions": [
|
||||
{
|
||||
"key": "7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8",
|
||||
"operator": "DoesNotExist"
|
||||
}
|
||||
]
|
||||
},
|
||||
"ipBlock": {
|
||||
"cidr": "52",
|
||||
"except": [
|
||||
"53"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"policyTypes": [
|
||||
"(dŊiɢz"
|
||||
]
|
||||
},
|
||||
"status": {}
|
||||
}
|
BIN
staging/src/k8s.io/api/testdata/v1.23.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
BIN
staging/src/k8s.io/api/testdata/v1.23.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.pb
vendored
Normal file
Binary file not shown.
90
staging/src/k8s.io/api/testdata/v1.23.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
90
staging/src/k8s.io/api/testdata/v1.23.0/networking.k8s.io.v1.NetworkPolicy.after_roundtrip.yaml
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
annotations:
|
||||
"9": "10"
|
||||
clusterName: "15"
|
||||
creationTimestamp: "2061-09-19T18:13:36Z"
|
||||
deletionGracePeriodSeconds: -4955867275792137171
|
||||
finalizers:
|
||||
- "14"
|
||||
generateName: "3"
|
||||
generation: 8071137005907523419
|
||||
labels:
|
||||
"7": "8"
|
||||
managedFields:
|
||||
- apiVersion: "17"
|
||||
fieldsType: "18"
|
||||
manager: "16"
|
||||
operation: 鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]
|
||||
subresource: "19"
|
||||
name: "2"
|
||||
namespace: "4"
|
||||
ownerReferences:
|
||||
- apiVersion: "11"
|
||||
blockOwnerDeletion: true
|
||||
controller: false
|
||||
kind: "12"
|
||||
name: "13"
|
||||
uid: Dz廔ȇ{sŊƏp
|
||||
resourceVersion: "11042405498087606203"
|
||||
selfLink: "5"
|
||||
uid: "7"
|
||||
spec:
|
||||
egress:
|
||||
- ports:
|
||||
- endPort: -630252364
|
||||
port: 3
|
||||
protocol: s3!Zɾģ毋
|
||||
to:
|
||||
- ipBlock:
|
||||
cidr: "52"
|
||||
except:
|
||||
- "53"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: 7u-tie4-7--gm3.38vl-1z---883d-v3j4-7y-p--u/d-4_4--.-_Z4.LA3HVG93_._.I3.__-.0-z_z0sn8
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
5l-59g-qy5--ar-gn58nc2-3--6-o-h-9-15v-5925a-x12a-214-3sc/M.JP_oA_4A.J2s3.XL6_EU--AH-Q.GM7B: N-_-vv-Q2qz.W..4....-h._.GgT7_7B_D-..-.k4uz
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: 1_o_p665O_4Gj._BXt.O-7___-Y_um-_8r--684._-_18_...E.-2oy
|
||||
operator: DoesNotExist
|
||||
matchLabels:
|
||||
P1s-V.9.3: 9..c_uo3a
|
||||
ingress:
|
||||
- from:
|
||||
- ipBlock:
|
||||
cidr: "38"
|
||||
except:
|
||||
- "39"
|
||||
namespaceSelector:
|
||||
matchExpressions:
|
||||
- key: f9wk-3--652xh.2a-ik-ak---r0nh-9289---x-p-qpt6-1w-3205c1lxeqyn-5--9d5a3-7bq/4FpF_W-1._-vL_i.-_-a--G-I.-_Y33--.8U.-.5--_zm-.-_RJt2X
|
||||
operator: In
|
||||
values:
|
||||
- g4
|
||||
matchLabels:
|
||||
pl6-2-316/NgO-d.iUaC_wYSJfB._.zS-._..3le-Q4-R-083.S5: U_D__6t-2.-_-8wE._._3.-.83_iq_-y.-25C.A-j..9dfn3Y8d_0_.-y
|
||||
podSelector:
|
||||
matchExpressions:
|
||||
- key: R6S17_.8CnK_O.d-._NwcGnP-w-Sf5_Or.i1_7z.WH-.._Td2-N_Y.v
|
||||
operator: Exists
|
||||
matchLabels:
|
||||
5__.h-J-M.9_T.q-o7.y-SQ.9A-F-.4--_vLW.jj-.5B.._.5_3-4: 31-4.xXe..03f_--0..L.0qQ6W-.d.20h-OK-_g
|
||||
ports:
|
||||
- endPort: -420211493
|
||||
port: 2
|
||||
protocol: Ǐ2啗塧ȱ蓿彭聡A3fƻfʣ
|
||||
podSelector:
|
||||
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
|
||||
operator: In
|
||||
values:
|
||||
- D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n
|
||||
matchLabels:
|
||||
8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3: 68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4
|
||||
policyTypes:
|
||||
- (dŊiɢz
|
||||
status: {}
|
@ -32,7 +32,8 @@ import (
|
||||
type NetworkPolicyApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
Spec *NetworkPolicySpecApplyConfiguration `json:"spec,omitempty"`
|
||||
Spec *NetworkPolicySpecApplyConfiguration `json:"spec,omitempty"`
|
||||
Status *NetworkPolicyStatusApplyConfiguration `json:"status,omitempty"`
|
||||
}
|
||||
|
||||
// NetworkPolicy constructs an declarative configuration of the NetworkPolicy type for use with
|
||||
@ -247,3 +248,11 @@ func (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApply
|
||||
b.Spec = value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithStatus sets the Status 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 Status field is set to the value of the last call.
|
||||
func (b *NetworkPolicyApplyConfiguration) WithStatus(value *NetworkPolicyStatusApplyConfiguration) *NetworkPolicyApplyConfiguration {
|
||||
b.Status = value
|
||||
return b
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
/*
|
||||
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 v1beta1
|
||||
|
||||
import (
|
||||
v1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
||||
)
|
||||
|
||||
// NetworkPolicyStatusApplyConfiguration represents an declarative configuration of the NetworkPolicyStatus type for use
|
||||
// with apply.
|
||||
type NetworkPolicyStatusApplyConfiguration struct {
|
||||
Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"`
|
||||
}
|
||||
|
||||
// NetworkPolicyStatusApplyConfiguration constructs an declarative configuration of the NetworkPolicyStatus type for use with
|
||||
// apply.
|
||||
func NetworkPolicyStatus() *NetworkPolicyStatusApplyConfiguration {
|
||||
return &NetworkPolicyStatusApplyConfiguration{}
|
||||
}
|
||||
|
||||
// WithConditions adds the given value to the Conditions field in the declarative configuration
|
||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
||||
// If called multiple times, values provided by each call will be appended to the Conditions field.
|
||||
func (b *NetworkPolicyStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *NetworkPolicyStatusApplyConfiguration {
|
||||
for i := range values {
|
||||
if values[i] == nil {
|
||||
panic("nil value passed to WithConditions")
|
||||
}
|
||||
b.Conditions = append(b.Conditions, *values[i])
|
||||
}
|
||||
return b
|
||||
}
|
@ -7847,6 +7847,10 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
type:
|
||||
namedType: io.k8s.api.extensions.v1beta1.NetworkPolicySpec
|
||||
default: {}
|
||||
- name: status
|
||||
type:
|
||||
namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyStatus
|
||||
default: {}
|
||||
- name: io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule
|
||||
map:
|
||||
fields:
|
||||
@ -7926,6 +7930,17 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
elementType:
|
||||
scalar: string
|
||||
elementRelationship: atomic
|
||||
- name: io.k8s.api.extensions.v1beta1.NetworkPolicyStatus
|
||||
map:
|
||||
fields:
|
||||
- name: conditions
|
||||
type:
|
||||
list:
|
||||
elementType:
|
||||
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition
|
||||
elementRelationship: associative
|
||||
keys:
|
||||
- type
|
||||
- name: io.k8s.api.extensions.v1beta1.PodSecurityPolicy
|
||||
map:
|
||||
fields:
|
||||
@ -9395,6 +9410,10 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
type:
|
||||
namedType: io.k8s.api.networking.v1.NetworkPolicySpec
|
||||
default: {}
|
||||
- name: status
|
||||
type:
|
||||
namedType: io.k8s.api.networking.v1.NetworkPolicyStatus
|
||||
default: {}
|
||||
- name: io.k8s.api.networking.v1.NetworkPolicyEgressRule
|
||||
map:
|
||||
fields:
|
||||
@ -9474,6 +9493,17 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
elementType:
|
||||
scalar: string
|
||||
elementRelationship: atomic
|
||||
- name: io.k8s.api.networking.v1.NetworkPolicyStatus
|
||||
map:
|
||||
fields:
|
||||
- name: conditions
|
||||
type:
|
||||
list:
|
||||
elementType:
|
||||
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition
|
||||
elementRelationship: associative
|
||||
keys:
|
||||
- type
|
||||
- name: io.k8s.api.networking.v1.ServiceBackendPort
|
||||
map:
|
||||
fields:
|
||||
|
@ -32,7 +32,8 @@ import (
|
||||
type NetworkPolicyApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
Spec *NetworkPolicySpecApplyConfiguration `json:"spec,omitempty"`
|
||||
Spec *NetworkPolicySpecApplyConfiguration `json:"spec,omitempty"`
|
||||
Status *NetworkPolicyStatusApplyConfiguration `json:"status,omitempty"`
|
||||
}
|
||||
|
||||
// NetworkPolicy constructs an declarative configuration of the NetworkPolicy type for use with
|
||||
@ -247,3 +248,11 @@ func (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApply
|
||||
b.Spec = value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithStatus sets the Status 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 Status field is set to the value of the last call.
|
||||
func (b *NetworkPolicyApplyConfiguration) WithStatus(value *NetworkPolicyStatusApplyConfiguration) *NetworkPolicyApplyConfiguration {
|
||||
b.Status = value
|
||||
return b
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
/*
|
||||
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/client-go/applyconfigurations/meta/v1"
|
||||
)
|
||||
|
||||
// NetworkPolicyStatusApplyConfiguration represents an declarative configuration of the NetworkPolicyStatus type for use
|
||||
// with apply.
|
||||
type NetworkPolicyStatusApplyConfiguration struct {
|
||||
Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"`
|
||||
}
|
||||
|
||||
// NetworkPolicyStatusApplyConfiguration constructs an declarative configuration of the NetworkPolicyStatus type for use with
|
||||
// apply.
|
||||
func NetworkPolicyStatus() *NetworkPolicyStatusApplyConfiguration {
|
||||
return &NetworkPolicyStatusApplyConfiguration{}
|
||||
}
|
||||
|
||||
// WithConditions adds the given value to the Conditions field in the declarative configuration
|
||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
||||
// If called multiple times, values provided by each call will be appended to the Conditions field.
|
||||
func (b *NetworkPolicyStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *NetworkPolicyStatusApplyConfiguration {
|
||||
for i := range values {
|
||||
if values[i] == nil {
|
||||
panic("nil value passed to WithConditions")
|
||||
}
|
||||
b.Conditions = append(b.Conditions, *values[i])
|
||||
}
|
||||
return b
|
||||
}
|
@ -953,6 +953,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
|
||||
return &applyconfigurationsextensionsv1beta1.NetworkPolicyPortApplyConfiguration{}
|
||||
case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicySpec"):
|
||||
return &applyconfigurationsextensionsv1beta1.NetworkPolicySpecApplyConfiguration{}
|
||||
case extensionsv1beta1.SchemeGroupVersion.WithKind("NetworkPolicyStatus"):
|
||||
return &applyconfigurationsextensionsv1beta1.NetworkPolicyStatusApplyConfiguration{}
|
||||
case extensionsv1beta1.SchemeGroupVersion.WithKind("PodSecurityPolicy"):
|
||||
return &applyconfigurationsextensionsv1beta1.PodSecurityPolicyApplyConfiguration{}
|
||||
case extensionsv1beta1.SchemeGroupVersion.WithKind("PodSecurityPolicySpec"):
|
||||
@ -1191,6 +1193,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} {
|
||||
return &applyconfigurationsnetworkingv1.NetworkPolicyPortApplyConfiguration{}
|
||||
case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicySpec"):
|
||||
return &applyconfigurationsnetworkingv1.NetworkPolicySpecApplyConfiguration{}
|
||||
case networkingv1.SchemeGroupVersion.WithKind("NetworkPolicyStatus"):
|
||||
return &applyconfigurationsnetworkingv1.NetworkPolicyStatusApplyConfiguration{}
|
||||
case networkingv1.SchemeGroupVersion.WithKind("ServiceBackendPort"):
|
||||
return &applyconfigurationsnetworkingv1.ServiceBackendPortApplyConfiguration{}
|
||||
|
||||
|
@ -105,6 +105,18 @@ func (c *FakeNetworkPolicies) Update(ctx context.Context, networkPolicy *v1beta1
|
||||
return obj.(*v1beta1.NetworkPolicy), err
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
func (c *FakeNetworkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (*v1beta1.NetworkPolicy, error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateSubresourceAction(networkpoliciesResource, "status", c.ns, networkPolicy), &v1beta1.NetworkPolicy{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*v1beta1.NetworkPolicy), err
|
||||
}
|
||||
|
||||
// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeNetworkPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
@ -153,3 +165,26 @@ func (c *FakeNetworkPolicies) Apply(ctx context.Context, networkPolicy *extensio
|
||||
}
|
||||
return obj.(*v1beta1.NetworkPolicy), err
|
||||
}
|
||||
|
||||
// ApplyStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
||||
func (c *FakeNetworkPolicies) ApplyStatus(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) {
|
||||
if networkPolicy == nil {
|
||||
return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil")
|
||||
}
|
||||
data, err := json.Marshal(networkPolicy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
name := networkPolicy.Name
|
||||
if name == nil {
|
||||
return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply")
|
||||
}
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1beta1.NetworkPolicy{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*v1beta1.NetworkPolicy), err
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ type NetworkPoliciesGetter interface {
|
||||
type NetworkPolicyInterface interface {
|
||||
Create(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.CreateOptions) (*v1beta1.NetworkPolicy, error)
|
||||
Update(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (*v1beta1.NetworkPolicy, error)
|
||||
UpdateStatus(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (*v1beta1.NetworkPolicy, error)
|
||||
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
|
||||
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
|
||||
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1beta1.NetworkPolicy, error)
|
||||
@ -50,6 +51,7 @@ type NetworkPolicyInterface interface {
|
||||
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
|
||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1beta1.NetworkPolicy, err error)
|
||||
Apply(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error)
|
||||
ApplyStatus(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error)
|
||||
NetworkPolicyExpansion
|
||||
}
|
||||
|
||||
@ -139,6 +141,22 @@ func (c *networkPolicies) Update(ctx context.Context, networkPolicy *v1beta1.Net
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
func (c *networkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1beta1.NetworkPolicy, opts v1.UpdateOptions) (result *v1beta1.NetworkPolicy, err error) {
|
||||
result = &v1beta1.NetworkPolicy{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("networkpolicies").
|
||||
Name(networkPolicy.Name).
|
||||
SubResource("status").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Body(networkPolicy).
|
||||
Do(ctx).
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.
|
||||
func (c *networkPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
@ -206,3 +224,33 @@ func (c *networkPolicies) Apply(ctx context.Context, networkPolicy *extensionsv1
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// ApplyStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
||||
func (c *networkPolicies) ApplyStatus(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.NetworkPolicy, err error) {
|
||||
if networkPolicy == nil {
|
||||
return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil")
|
||||
}
|
||||
patchOpts := opts.ToPatchOptions()
|
||||
data, err := json.Marshal(networkPolicy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
name := networkPolicy.Name
|
||||
if name == nil {
|
||||
return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply")
|
||||
}
|
||||
|
||||
result = &v1beta1.NetworkPolicy{}
|
||||
err = c.client.Patch(types.ApplyPatchType).
|
||||
Namespace(c.ns).
|
||||
Resource("networkpolicies").
|
||||
Name(*name).
|
||||
SubResource("status").
|
||||
VersionedParams(&patchOpts, scheme.ParameterCodec).
|
||||
Body(data).
|
||||
Do(ctx).
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
@ -105,6 +105,18 @@ func (c *FakeNetworkPolicies) Update(ctx context.Context, networkPolicy *network
|
||||
return obj.(*networkingv1.NetworkPolicy), err
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
func (c *FakeNetworkPolicies) UpdateStatus(ctx context.Context, networkPolicy *networkingv1.NetworkPolicy, opts v1.UpdateOptions) (*networkingv1.NetworkPolicy, error) {
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewUpdateSubresourceAction(networkpoliciesResource, "status", c.ns, networkPolicy), &networkingv1.NetworkPolicy{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*networkingv1.NetworkPolicy), err
|
||||
}
|
||||
|
||||
// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.
|
||||
func (c *FakeNetworkPolicies) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
|
||||
_, err := c.Fake.
|
||||
@ -153,3 +165,26 @@ func (c *FakeNetworkPolicies) Apply(ctx context.Context, networkPolicy *applycon
|
||||
}
|
||||
return obj.(*networkingv1.NetworkPolicy), err
|
||||
}
|
||||
|
||||
// ApplyStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
||||
func (c *FakeNetworkPolicies) ApplyStatus(ctx context.Context, networkPolicy *applyconfigurationsnetworkingv1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1.NetworkPolicy, err error) {
|
||||
if networkPolicy == nil {
|
||||
return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil")
|
||||
}
|
||||
data, err := json.Marshal(networkPolicy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
name := networkPolicy.Name
|
||||
if name == nil {
|
||||
return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply")
|
||||
}
|
||||
obj, err := c.Fake.
|
||||
Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, *name, types.ApplyPatchType, data, "status"), &networkingv1.NetworkPolicy{})
|
||||
|
||||
if obj == nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj.(*networkingv1.NetworkPolicy), err
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ type NetworkPoliciesGetter interface {
|
||||
type NetworkPolicyInterface interface {
|
||||
Create(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.CreateOptions) (*v1.NetworkPolicy, error)
|
||||
Update(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (*v1.NetworkPolicy, error)
|
||||
UpdateStatus(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (*v1.NetworkPolicy, error)
|
||||
Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
|
||||
DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
|
||||
Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.NetworkPolicy, error)
|
||||
@ -50,6 +51,7 @@ type NetworkPolicyInterface interface {
|
||||
Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
|
||||
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.NetworkPolicy, err error)
|
||||
Apply(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error)
|
||||
ApplyStatus(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error)
|
||||
NetworkPolicyExpansion
|
||||
}
|
||||
|
||||
@ -139,6 +141,22 @@ func (c *networkPolicies) Update(ctx context.Context, networkPolicy *v1.NetworkP
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
|
||||
func (c *networkPolicies) UpdateStatus(ctx context.Context, networkPolicy *v1.NetworkPolicy, opts metav1.UpdateOptions) (result *v1.NetworkPolicy, err error) {
|
||||
result = &v1.NetworkPolicy{}
|
||||
err = c.client.Put().
|
||||
Namespace(c.ns).
|
||||
Resource("networkpolicies").
|
||||
Name(networkPolicy.Name).
|
||||
SubResource("status").
|
||||
VersionedParams(&opts, scheme.ParameterCodec).
|
||||
Body(networkPolicy).
|
||||
Do(ctx).
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs.
|
||||
func (c *networkPolicies) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
|
||||
return c.client.Delete().
|
||||
@ -206,3 +224,33 @@ func (c *networkPolicies) Apply(ctx context.Context, networkPolicy *networkingv1
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
||||
// ApplyStatus was generated because the type contains a Status member.
|
||||
// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().
|
||||
func (c *networkPolicies) ApplyStatus(ctx context.Context, networkPolicy *networkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *v1.NetworkPolicy, err error) {
|
||||
if networkPolicy == nil {
|
||||
return nil, fmt.Errorf("networkPolicy provided to Apply must not be nil")
|
||||
}
|
||||
patchOpts := opts.ToPatchOptions()
|
||||
data, err := json.Marshal(networkPolicy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
name := networkPolicy.Name
|
||||
if name == nil {
|
||||
return nil, fmt.Errorf("networkPolicy.Name must be provided to Apply")
|
||||
}
|
||||
|
||||
result = &v1.NetworkPolicy{}
|
||||
err = c.client.Patch(types.ApplyPatchType).
|
||||
Namespace(c.ns).
|
||||
Resource("networkpolicies").
|
||||
Name(*name).
|
||||
SubResource("status").
|
||||
VersionedParams(&patchOpts, scheme.ParameterCodec).
|
||||
Body(data).
|
||||
Do(ctx).
|
||||
Into(result)
|
||||
return
|
||||
}
|
||||
|
@ -267,4 +267,79 @@ var _ = common.SIGDescribe("Netpol API", func() {
|
||||
framework.ExpectNoError(err)
|
||||
framework.ExpectEqual(len(nps.Items), 0, "filtered list should be 0 items")
|
||||
})
|
||||
|
||||
/*
|
||||
Release: v1.24
|
||||
Testname: NetworkPolicy support status subresource
|
||||
Description:
|
||||
- Status condition without a Reason cannot exist
|
||||
- Status should support conditions
|
||||
- Two conditions with the same type cannot exist.
|
||||
*/
|
||||
ginkgo.It("should support creating NetworkPolicy with Status subresource [Feature:NetworkPolicyStatus]", func() {
|
||||
ns := f.Namespace.Name
|
||||
npClient := f.ClientSet.NetworkingV1().NetworkPolicies(ns)
|
||||
|
||||
ginkgo.By("NetworkPolicy should deny invalid status condition without Reason field")
|
||||
|
||||
namespaceSelector := &metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"ns-name": "pod-b",
|
||||
},
|
||||
}
|
||||
podSelector := &metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"pod-name": "client-a",
|
||||
},
|
||||
}
|
||||
ingressRule := networkingv1.NetworkPolicyIngressRule{}
|
||||
ingressRule.From = append(ingressRule.From, networkingv1.NetworkPolicyPeer{PodSelector: podSelector, NamespaceSelector: namespaceSelector})
|
||||
|
||||
npTemplate := GenNetworkPolicy(SetGenerateName("e2e-example-netpol-status-validate"),
|
||||
SetObjectMetaLabel(map[string]string{"special-label": f.UniqueName}),
|
||||
SetSpecPodSelectorMatchLabels(map[string]string{"pod-name": "test-pod"}),
|
||||
SetSpecIngressRules(ingressRule))
|
||||
newNetPol, err := npClient.Create(context.TODO(), npTemplate, metav1.CreateOptions{})
|
||||
|
||||
framework.ExpectNoError(err, "request template:%v", npTemplate)
|
||||
|
||||
condition := metav1.Condition{
|
||||
Type: string(networkingv1.NetworkPolicyConditionStatusAccepted),
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "RuleApplied",
|
||||
LastTransitionTime: metav1.Time{Time: time.Now().Add(-5 * time.Minute)},
|
||||
Message: "rule was successfully applied",
|
||||
ObservedGeneration: 2,
|
||||
}
|
||||
|
||||
status := networkingv1.NetworkPolicyStatus{
|
||||
Conditions: []metav1.Condition{
|
||||
condition,
|
||||
},
|
||||
}
|
||||
|
||||
ginkgo.By("NetworkPolicy should support valid status condition")
|
||||
newNetPol.Status = status
|
||||
|
||||
_, err = npClient.UpdateStatus(context.TODO(), newNetPol, metav1.UpdateOptions{})
|
||||
framework.ExpectNoError(err, "request template:%v", newNetPol)
|
||||
|
||||
ginkgo.By("NetworkPolicy should not support status condition without reason field")
|
||||
newNetPol.Status.Conditions[0].Reason = ""
|
||||
_, err = npClient.UpdateStatus(context.TODO(), newNetPol, metav1.UpdateOptions{})
|
||||
framework.ExpectError(err, "request template:%v", newNetPol)
|
||||
|
||||
ginkgo.By("NetworkPolicy should not support status condition with duplicated types")
|
||||
newNetPol.Status.Conditions = []metav1.Condition{condition, condition}
|
||||
newNetPol.Status.Conditions[1].Status = metav1.ConditionFalse
|
||||
_, err = npClient.UpdateStatus(context.TODO(), newNetPol, metav1.UpdateOptions{})
|
||||
framework.ExpectError(err, "request template:%v", newNetPol)
|
||||
|
||||
ginkgo.By("deleting all test collection")
|
||||
err = npClient.DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{LabelSelector: "special-label=" + f.UniqueName})
|
||||
framework.ExpectNoError(err)
|
||||
nps, err := npClient.List(context.TODO(), metav1.ListOptions{LabelSelector: "special-label=" + f.UniqueName})
|
||||
framework.ExpectNoError(err)
|
||||
framework.ExpectEqual(len(nps.Items), 0, "filtered list should be 0 items")
|
||||
})
|
||||
})
|
||||
|
@ -36,6 +36,9 @@ import (
|
||||
"k8s.io/client-go/kubernetes"
|
||||
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
||||
apiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
|
||||
k8sfeatures "k8s.io/kubernetes/pkg/features"
|
||||
|
||||
//k8sfeatures "k8s.io/kubernetes/pkg/features"
|
||||
"k8s.io/kubernetes/test/integration/etcd"
|
||||
"k8s.io/kubernetes/test/integration/framework"
|
||||
"k8s.io/kubernetes/test/utils/image"
|
||||
@ -55,6 +58,8 @@ var resetFieldsStatusData = map[schema.GroupVersionResource]string{
|
||||
gvr("extensions", "v1beta1", "ingresses"): `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`,
|
||||
gvr("networking.k8s.io", "v1beta1", "ingresses"): `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`,
|
||||
gvr("networking.k8s.io", "v1", "ingresses"): `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`,
|
||||
gvr("extensions", "v1beta1", "networkpolicies"): `{"status": {"conditions":[{"type":"Accepted","status":"True","lastTransitionTime":"2020-01-01T00:00:00Z","reason":"RuleApplied","message":"Rule was applied"}]}}`,
|
||||
gvr("networking.k8s.io", "v1", "networkpolicies"): `{"status": {"conditions":[{"type":"Accepted","status":"True","lastTransitionTime":"2020-01-01T00:00:00Z","reason":"RuleApplied","message":"Rule was applied"}]}}`,
|
||||
gvr("autoscaling", "v1", "horizontalpodautoscalers"): `{"status": {"currentReplicas": 25}}`,
|
||||
gvr("autoscaling", "v2", "horizontalpodautoscalers"): `{"status": {"currentReplicas": 25}}`,
|
||||
gvr("batch", "v1", "cronjobs"): `{"status": {"lastScheduleTime": "2020-01-01T00:00:00Z"}}`,
|
||||
@ -128,6 +133,8 @@ var resetFieldsSpecData = map[schema.GroupVersionResource]string{
|
||||
gvr("extensions", "v1beta1", "ingresses"): `{"spec": {"backend": {"serviceName": "service2"}}}`,
|
||||
gvr("networking.k8s.io", "v1beta1", "ingresses"): `{"spec": {"backend": {"serviceName": "service2"}}}`,
|
||||
gvr("networking.k8s.io", "v1", "ingresses"): `{"spec": {"defaultBackend": {"service": {"name": "service2"}}}}`,
|
||||
gvr("extensions", "v1beta1", "networkpolicies"): `{"spec":{"podSelector":{"matchLabels":{"app":"web"}},"ingress":[]}}`,
|
||||
gvr("networking.k8s.io", "v1", "networkpolicies"): `{"spec":{"podSelector":{"matchLabels":{"app":"web"}},"ingress":[]}}`,
|
||||
gvr("policy", "v1", "poddisruptionbudgets"): `{"spec": {"selector": {"matchLabels": {"anokkey2": "anokvalue"}}}}`,
|
||||
gvr("policy", "v1beta1", "poddisruptionbudgets"): `{"spec": {"selector": {"matchLabels": {"anokkey2": "anokvalue"}}}}`,
|
||||
gvr("storage.k8s.io", "v1alpha1", "volumeattachments"): `{"metadata": {"name": "vaName2"}, "spec": {"nodeName": "localhost2"}}`,
|
||||
@ -148,6 +155,8 @@ var resetFieldsSpecData = map[schema.GroupVersionResource]string{
|
||||
// We then attempt to apply obj2 to the spec endpoint which fails with an expected conflict.
|
||||
func TestApplyResetFields(t *testing.T) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.ServerSideApply, true)()
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, k8sfeatures.NetworkPolicyStatus, true)()
|
||||
|
||||
server, err := apiservertesting.StartTestServer(t, apiservertesting.NewDefaultTestServerOptions(), []string{"--disable-admission-plugins", "ServiceAccount,TaintNodesByCondition"}, framework.SharedEtcd())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
@ -50,6 +50,8 @@ var statusData = map[schema.GroupVersionResource]string{
|
||||
gvr("extensions", "v1beta1", "ingresses"): `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.1"}]}}}`,
|
||||
gvr("networking.k8s.io", "v1beta1", "ingresses"): `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.1"}]}}}`,
|
||||
gvr("networking.k8s.io", "v1", "ingresses"): `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.1"}]}}}`,
|
||||
gvr("extensions", "v1beta1", "networkpolicies"): `{"status": {"conditions":[{"type":"Accepted","status":"False","lastTransitionTime":"2020-01-01T00:00:00Z","reason":"RuleApplied","message":"Rule was applied"}]}}`,
|
||||
gvr("networking.k8s.io", "v1", "networkpolicies"): `{"status": {"conditions":[{"type":"Accepted","status":"False","lastTransitionTime":"2020-01-01T00:00:00Z","reason":"RuleApplied","message":"Rule was applied"}]}}`,
|
||||
gvr("autoscaling", "v1", "horizontalpodautoscalers"): `{"status": {"currentReplicas": 5}}`,
|
||||
gvr("autoscaling", "v2", "horizontalpodautoscalers"): `{"status": {"currentReplicas": 5}}`,
|
||||
gvr("batch", "v1", "cronjobs"): `{"status": {"lastScheduleTime": null}}`,
|
||||
|
Loading…
Reference in New Issue
Block a user