config/crds/networking.gke.io_gcpfirewalls.yaml (210 lines of code) (raw):

# Copyright 2024 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 # # https://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. --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.5 name: gcpfirewalls.networking.gke.io spec: group: networking.gke.io names: kind: GCPFirewall listKind: GCPFirewallList plural: gcpfirewalls shortNames: - gf singular: gcpfirewall scope: Cluster versions: - name: v1 schema: openAPIV3Schema: description: |- GCPFirewall describes a GCP firewall spec that can be used to configure GCE firewalls. A GCPFirewallSpec will correspond 1:1 with a GCE firewall rule. properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string description: description: |- Description describes a GCP firewall in a human-readable way. Usually it provides also information on the producer of this GCPFirewall custom resource. type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: |- Spec is the desired configuration for GCP firewall More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: action: default: ALLOW description: |- Rule action of the firewall rule. Only allow action is supported. If not specified, defaults to ALLOW. enum: - ALLOW type: string disabled: description: If set to true, the GCPFirewall is not synced by the controller. type: boolean ingress: description: |- A collection of sources and destinations to determine which ingress traffic is allowed. If source is nil or empty, the traffic is allowed from all sources (0.0.0.0/0). If destination is nil or empty, the traffic is allowed to all kubernetes cluster entities (nodes, pods and services) from the specified sources. If both are nil, the traffic is allowed from all sources (0.0.00/0) to the cluster entities. properties: destination: description: |2- Destination specifies the target of the firewall rule. If this field is empty, this rule allows traffic from specified sources to all kubernetes cluster entities. properties: ipBlocks: description: |- IPBlocks specify the set of destination CIDRs that the rule applies to. If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the list. If this field is empty, this rule allows all destinations. Valid example list items are "192.168.1.1/24" or "2001:db9::/64". items: description: CIDR defines a IP block. maxLength: 64 type: string x-kubernetes-validations: - message: Please provide valid IPv4 or IPv6 CIDR value rule: isIP(self) || isCIDR(self) maxItems: 256 minItems: 1 type: array type: object source: description: Source describes a peer to allow traffic from. properties: ipBlocks: description: |- IPBlocks specify the set of source CIDR ranges that the rule applies to. If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the list. If this field is empty, this rule allows all sources. Valid example list items are "192.168.1.1/24" or "2001:db9::/64". items: description: CIDR defines a IP block. maxLength: 64 type: string x-kubernetes-validations: - message: Please provide valid IPv4 or IPv6 CIDR value rule: isIP(self) || isCIDR(self) maxItems: 256 minItems: 1 type: array type: object type: object ports: description: |- List of protocol/ ports which needs to be selected by this rule. If this field is empty or missing, this rule matches all protocol/ ports. If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list. items: description: ProtocolPort describes the protocol and ports to allow traffic on. properties: endPort: description: |- EndPort is the last port of the port range that is selected on the firewall rule targets. If StartPort is not specified or greater than this value, then this field is ignored. format: int32 maximum: 65535 minimum: 1 type: integer protocol: description: The protocol which the traffic must match. enum: - TCP - UDP - ICMP - SCTP - AH - ESP type: string startPort: description: |- StartPort is the starting port of the port range that is selected on the firewall rule targets for the specified protocol. If EndPort is not specified, this is the only port selected. If StartPort is not provided, all ports are matched. format: int32 maximum: 65535 minimum: 1 type: integer required: - protocol type: object type: array type: object status: default: conditions: - lastTransitionTime: "1970-01-01T00:00:00Z" message: Waiting for controller reason: Pending status: Unknown type: Enforced description: |- Status is the runtime status of this GCP firewall More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status properties: conditions: default: - lastTransitionTime: "1970-01-01T00:00:00Z" message: Waiting for controller reason: Pending status: Unknown type: Enforced description: Conditions describe the current condition of the firewall rule. items: description: Condition contains details for one aspect of the current state of this API Resource. properties: lastTransitionTime: 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. format: date-time type: string message: description: |- message is a human readable message indicating details about the transition. This may be an empty string. maxLength: 32768 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 minimum: 0 type: integer reason: 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. maxLength: 1024 minLength: 1 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string status: description: status of the condition, one of True, False, Unknown. enum: - "True" - "False" - Unknown type: string type: description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - lastTransitionTime - message - reason - status - type type: object maxItems: 8 type: array x-kubernetes-list-map-keys: - type x-kubernetes-list-type: map priority: description: Priority of the GCP firewall rule. format: int32 type: integer resourceURL: description: |- Resource link for the GCE firewall rule. In case of FW 3.0, this is the GCE Network Firewall Policy resource. type: string type: description: |- Type specifies the underlying GCE firewall implementation type. Takes one of the values from [VPC, REGIONAL, GLOBAL] enum: - VPC - REGIONAL - GLOBAL type: string type: object type: object served: true storage: true subresources: status: {}