diff --git a/charts/netris-operator/Chart.yaml b/charts/netris-operator/Chart.yaml index 03d0627..5e71037 100644 --- a/charts/netris-operator/Chart.yaml +++ b/charts/netris-operator/Chart.yaml @@ -15,12 +15,12 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.3.6 +version: 0.3.7 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. -appVersion: v0.4.4 +appVersion: v0.4.5 home: https://github.com/netrisai/netris-operator icon: https://www.netris.ai/wp-content/uploads/2020/05/logo-600.png # [todo] Change url to permalink keywords: diff --git a/charts/netris-operator/crds/k8s.netris.ai_bgpmeta.yaml b/charts/netris-operator/crds/k8s.netris.ai_bgpmeta.yaml index a8c72ce..2c9ddff 100644 --- a/charts/netris-operator/crds/k8s.netris.ai_bgpmeta.yaml +++ b/charts/netris-operator/crds/k8s.netris.ai_bgpmeta.yaml @@ -1,10 +1,10 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.6.1 creationTimestamp: null name: bgpmeta.k8s.netris.ai spec: @@ -15,164 +15,163 @@ spec: plural: bgpmeta singular: bgpmeta scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: BGPMeta is the Schema for the bgpmeta API - 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 - 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: BGPMetaSpec defines the desired state of BGPMeta - properties: - allowas_in: - type: integer - bgp_password: - type: string - bgpGeneration: - format: int64 - type: integer - bgpName: - type: string - community: - type: string - description: - type: string - id: - type: integer - imported: - description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - Important: Run "make" to regenerate code after modifying this file' - type: boolean - inboundRouteMap: - type: integer - internal: - type: string - ip_version: - type: string - local_ip: - type: string - local_preference: - type: integer - multihop: - type: integer - name: - type: string - neighbor_address: - type: string - neighbor_as: - type: integer - nfv_id: - type: integer - nfv_port_id: - type: integer - originate: - type: string - outboundRouteMap: - type: integer - prefix_length: - type: integer - prefix_limit: - type: integer - prefix_list_inbound: - type: string - prefix_list_outbound: - type: string - prepend_inbound: - type: integer - prepend_outbound: - type: integer - rcircuit_id: - type: integer - reclaimPolicy: - type: boolean - remote_ip: - type: string - site_id: - type: integer - status: - type: string - switch_id: - type: integer - switch_name: - type: string - switch_port_id: - type: integer - term_switch_id: - type: integer - term_switch_name: - type: string - terminate_on_switch: - type: string - update_source: - type: string - vlan: - type: integer - weight: - type: integer - required: - - allowas_in - - bgpGeneration - - bgpName - - bgp_password - - community - - description - - id - - imported - - inboundRouteMap - - internal - - ip_version - - local_ip - - local_preference - - multihop - - name - - neighbor_address - - neighbor_as - - nfv_id - - nfv_port_id - - originate - - outboundRouteMap - - prefix_length - - prefix_limit - - prefix_list_inbound - - prefix_list_outbound - - prepend_inbound - - prepend_outbound - - rcircuit_id - - reclaimPolicy - - remote_ip - - site_id - - status - - switch_id - - switch_name - - switch_port_id - - term_switch_id - - term_switch_name - - terminate_on_switch - - update_source - - vlan - - weight - type: object - status: - description: BGPMetaStatus defines the observed state of BGPMeta - type: object - type: object - version: v1alpha1 versions: - name: v1alpha1 + schema: + openAPIV3Schema: + description: BGPMeta is the Schema for the bgpmeta API + 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 + 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: BGPMetaSpec defines the desired state of BGPMeta + properties: + allowas_in: + type: integer + bgp_password: + type: string + bgpGeneration: + format: int64 + type: integer + bgpName: + type: string + community: + type: string + description: + type: string + id: + type: integer + imported: + description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + Important: Run "make" to regenerate code after modifying this file' + type: boolean + inboundRouteMap: + type: integer + internal: + type: string + ip_version: + type: string + local_ip: + type: string + local_preference: + type: integer + multihop: + type: integer + name: + type: string + neighbor_address: + type: string + neighbor_as: + type: integer + nfv_id: + type: integer + nfv_port_id: + type: integer + originate: + type: string + outboundRouteMap: + type: integer + prefix_length: + type: integer + prefix_limit: + type: integer + prefix_list_inbound: + type: string + prefix_list_outbound: + type: string + prepend_inbound: + type: integer + prepend_outbound: + type: integer + rcircuit_id: + type: integer + reclaimPolicy: + type: boolean + remote_ip: + type: string + site_id: + type: integer + status: + type: string + switch_id: + type: integer + switch_name: + type: string + switch_port_id: + type: integer + term_switch_id: + type: integer + term_switch_name: + type: string + terminate_on_switch: + type: string + update_source: + type: string + vlan: + type: integer + weight: + type: integer + required: + - allowas_in + - bgpGeneration + - bgpName + - bgp_password + - community + - description + - id + - imported + - inboundRouteMap + - internal + - ip_version + - local_ip + - local_preference + - multihop + - name + - neighbor_address + - neighbor_as + - nfv_id + - nfv_port_id + - originate + - outboundRouteMap + - prefix_length + - prefix_limit + - prefix_list_inbound + - prefix_list_outbound + - prepend_inbound + - prepend_outbound + - rcircuit_id + - reclaimPolicy + - remote_ip + - site_id + - status + - switch_id + - switch_name + - switch_port_id + - term_switch_id + - term_switch_name + - terminate_on_switch + - update_source + - vlan + - weight + type: object + status: + description: BGPMetaStatus defines the observed state of BGPMeta + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/netris-operator/crds/k8s.netris.ai_bgps.yaml b/charts/netris-operator/crds/k8s.netris.ai_bgps.yaml index b6c7619..e4d560c 100644 --- a/charts/netris-operator/crds/k8s.netris.ai_bgps.yaml +++ b/charts/netris-operator/crds/k8s.netris.ai_bgps.yaml @@ -1,51 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.6.1 creationTimestamp: null name: bgps.k8s.netris.ai spec: - additionalPrinterColumns: - - JSONPath: .status.state - name: State - type: string - - JSONPath: .status.bgpstate - name: BGP State - type: string - - JSONPath: .status.portstate - name: Port State - type: string - - JSONPath: .spec.neighborAs - name: Neighbor AS - type: string - - JSONPath: .spec.localIP - name: Local address - type: string - - JSONPath: .spec.remoteIP - name: Remote address - type: string - - JSONPath: .spec.transport.name - name: Port/Vnet - priority: 1 - type: string - - JSONPath: .status.vlanID - name: VLANID - priority: 1 - type: string - - JSONPath: .status.terminateOnSwitch - name: Terminated On - priority: 1 - type: string - - JSONPath: .status.modified - name: Modified - priority: 1 - type: date - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: k8s.netris.ai names: kind: BGP @@ -53,154 +15,191 @@ spec: plural: bgps singular: bgp scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: BGP is the Schema for the bgps API - 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 - 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: BGPSpec defines the desired state of BGP - properties: - allowAsIn: - type: integer - bgpPassword: - type: string - defaultOriginate: - type: boolean - description: - type: string - inboundRouteMap: - type: string - localIP: - pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) - type: string - localPreference: - type: integer - multihop: - description: BGPMultihop . - properties: - hops: - type: integer - neighborAddress: - pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) - type: string - updateSource: - pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) - type: string - type: object - neighborAs: - type: integer - outboundRouteMap: - type: string - prefixInboundMax: - type: integer - prefixListInbound: - items: - type: string - type: array - prefixListOutbound: - items: - type: string - type: array - prependInbound: - type: integer - prependOutbound: - type: integer - remoteIP: - pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) - type: string - sendBGPCommunity: - items: - type: string - type: array - site: - type: string - softgate: - type: string - state: - enum: - - enabled - - disabled - type: string - terminateOnSwitch: - description: BGPTerminateOnSwitch . - properties: - enabled: - type: boolean - switchName: + versions: + - additionalPrinterColumns: + - jsonPath: .status.state + name: State + type: string + - jsonPath: .status.bgpstate + name: BGP State + type: string + - jsonPath: .status.portstate + name: Port State + type: string + - jsonPath: .spec.neighborAs + name: Neighbor AS + type: string + - jsonPath: .spec.localIP + name: Local address + type: string + - jsonPath: .spec.remoteIP + name: Remote address + type: string + - jsonPath: .spec.transport.name + name: Port/Vnet + priority: 1 + type: string + - jsonPath: .status.vlanID + name: VLANID + priority: 1 + type: string + - jsonPath: .status.terminateOnSwitch + name: Terminated On + priority: 1 + type: string + - jsonPath: .status.modified + name: Modified + priority: 1 + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: BGP is the Schema for the bgps API + 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 + 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: BGPSpec defines the desired state of BGP + properties: + allowAsIn: + type: integer + bgpPassword: + type: string + defaultOriginate: + type: boolean + description: + type: string + inboundRouteMap: + type: string + localIP: + pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) + type: string + localPreference: + type: integer + multihop: + description: BGPMultihop . + properties: + hops: + type: integer + neighborAddress: + pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) + type: string + updateSource: + pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) + type: string + type: object + neighborAs: + type: integer + outboundRouteMap: + type: string + prefixInboundMax: + type: integer + prefixListInbound: + items: type: string - required: - - enabled - type: object - transport: - description: BGPTransport . - properties: - name: - pattern: (^[a-zA-Z0-9]+@[a-zA-Z0-9-]+$)|(^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-z0-9])?(\.[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?)*$) + type: array + prefixListOutbound: + items: type: string - type: - enum: - - port - - vnet + type: array + prependInbound: + type: integer + prependOutbound: + type: integer + remoteIP: + pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) + type: string + sendBGPCommunity: + items: type: string - vlanId: - type: integer - required: - - name - type: object - weight: - type: integer - required: - - localIP - - neighborAs - - remoteIP - - site - - transport - type: object - status: - description: BGPStatus defines the observed state of BGP - properties: - bgpprefixes: - type: integer - bgpstate: - type: string - bgpstatus: - type: string - message: - type: string - modified: - format: date-time - type: string - portstate: - type: string - state: - type: string - status: - type: string - terminateOnSwitch: - type: string - vlanID: - type: string - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + type: array + site: + type: string + softgate: + type: string + state: + enum: + - enabled + - disabled + type: string + terminateOnSwitch: + description: BGPTerminateOnSwitch . + properties: + enabled: + type: boolean + switchName: + type: string + required: + - enabled + type: object + transport: + description: BGPTransport . + properties: + name: + pattern: (^[a-zA-Z0-9]+@[a-zA-Z0-9-]+$)|(^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-z0-9])?(\.[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?)*$) + type: string + type: + enum: + - port + - vnet + type: string + vlanId: + type: integer + required: + - name + type: object + weight: + type: integer + required: + - localIP + - neighborAs + - remoteIP + - site + - transport + type: object + status: + description: BGPStatus defines the observed state of BGP + properties: + bgpprefixes: + type: integer + bgpstate: + type: string + bgpstatus: + type: string + message: + type: string + modified: + format: date-time + type: string + portstate: + type: string + state: + type: string + status: + type: string + terminateOnSwitch: + type: string + vlanID: + type: string + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/netris-operator/crds/k8s.netris.ai_l4lbmeta.yaml b/charts/netris-operator/crds/k8s.netris.ai_l4lbmeta.yaml index 7e0f9a6..ac6e96d 100644 --- a/charts/netris-operator/crds/k8s.netris.ai_l4lbmeta.yaml +++ b/charts/netris-operator/crds/k8s.netris.ai_l4lbmeta.yaml @@ -1,10 +1,10 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.6.1 creationTimestamp: null name: l4lbmeta.k8s.netris.ai spec: @@ -15,125 +15,124 @@ spec: plural: l4lbmeta singular: l4lbmeta scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: L4LBMeta is the Schema for the l4lbmeta API - 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 - 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: L4LBMetaSpec defines the desired state of L4LBMeta - properties: - automatic: - type: boolean - backendIps: - items: - description: L4LBMetaBackend . - properties: - ip: - type: string - maintenance: - type: boolean - port: - type: integer - required: - - ip - - maintenance - - port - type: object - type: array - healthCheck: - description: L4LBMetaHealthCheck . - properties: - HTTP: - description: L4LBMetaHealthCheckHTTP . - properties: - requestPath: - type: string - timeOut: - type: string - required: - - requestPath - - timeOut - type: object - TCP: - description: L4LBMetaHealthCheckTCP . + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: L4LBMeta is the Schema for the l4lbmeta API + 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 + 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: L4LBMetaSpec defines the desired state of L4LBMeta + properties: + automatic: + type: boolean + backendIps: + items: + description: L4LBMetaBackend . properties: - requestPath: - type: string - timeOut: + ip: type: string + maintenance: + type: boolean + port: + type: integer required: - - requestPath - - timeOut + - ip + - maintenance + - port type: object - type: object - id: - type: integer - imported: - type: boolean - ip: - type: string - kubenet_info: - type: string - l4lbGeneration: - format: int64 - type: integer - l4lbName: - type: string - port: - type: integer - protocol: - type: string - reclaimPolicy: - type: boolean - siteId: - type: integer - siteName: - type: string - status: - type: string - tenantId: - type: integer - required: - - automatic - - backendIps - - healthCheck - - id - - imported - - ip - - kubenet_info - - l4lbGeneration - - l4lbName - - port - - protocol - - reclaimPolicy - - siteId - - siteName - - status - - tenantId - type: object - status: - description: L4LBMetaStatus defines the observed state of L4LBMeta - type: object - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + type: array + healthCheck: + description: L4LBMetaHealthCheck . + properties: + HTTP: + description: L4LBMetaHealthCheckHTTP . + properties: + requestPath: + type: string + timeOut: + type: string + required: + - requestPath + - timeOut + type: object + TCP: + description: L4LBMetaHealthCheckTCP . + properties: + requestPath: + type: string + timeOut: + type: string + required: + - requestPath + - timeOut + type: object + type: object + id: + type: integer + imported: + type: boolean + ip: + type: string + kubenet_info: + type: string + l4lbGeneration: + format: int64 + type: integer + l4lbName: + type: string + port: + type: integer + protocol: + type: string + reclaimPolicy: + type: boolean + siteId: + type: integer + siteName: + type: string + status: + type: string + tenantId: + type: integer + required: + - automatic + - backendIps + - healthCheck + - id + - imported + - ip + - kubenet_info + - l4lbGeneration + - l4lbName + - port + - protocol + - reclaimPolicy + - siteId + - siteName + - status + - tenantId + type: object + status: + description: L4LBMetaStatus defines the observed state of L4LBMeta + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/netris-operator/crds/k8s.netris.ai_l4lbs.yaml b/charts/netris-operator/crds/k8s.netris.ai_l4lbs.yaml index 36512d1..a42eb52 100644 --- a/charts/netris-operator/crds/k8s.netris.ai_l4lbs.yaml +++ b/charts/netris-operator/crds/k8s.netris.ai_l4lbs.yaml @@ -1,39 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.6.1 creationTimestamp: null name: l4lbs.k8s.netris.ai spec: - additionalPrinterColumns: - - JSONPath: .status.state - name: State - type: string - - JSONPath: .spec.frontend.ip - name: Frontend - type: string - - JSONPath: .status.port - name: Port - type: string - - JSONPath: .spec.site - name: Site - type: string - - JSONPath: .spec.ownerTenant - name: Tenant - type: string - - JSONPath: .status.status - name: Status - type: string - - JSONPath: .status.modified - name: Modified - priority: 1 - type: date - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: k8s.netris.ai names: kind: L4LB @@ -41,101 +15,126 @@ spec: plural: l4lbs singular: l4lb scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: L4LB is the Schema for the l4lbs API - 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 - 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: L4LBSpec defines the desired state of L4LB - properties: - backend: - items: - description: L4LBBackend . - pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-4])$ - type: string - type: array - check: - description: L4LBCheck . - properties: - requestPath: - type: string - timeout: - type: integer - type: - enum: - - tcp - - http - - none - type: string - type: object - frontend: - description: L4LBFrontend . - properties: - ip: - pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ - type: string - port: - maximum: 65534 - minimum: 0 - type: integer - required: - - port - type: object - ownerTenant: - type: string - protocol: - enum: - - tcp - - udp - type: string - site: - type: string - state: - description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster - Important: Run "make" to regenerate code after modifying this file' - enum: - - active - - disable - type: string - required: - - backend - - frontend - type: object - status: - description: L4LBStatus defines the observed state of L4LB - properties: - message: - type: string - modified: - format: date-time - type: string - port: - type: string - state: - type: string - status: - type: string - type: object - type: object - version: v1alpha1 versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .status.state + name: State + type: string + - jsonPath: .spec.frontend.ip + name: Frontend + type: string + - jsonPath: .status.port + name: Port + type: string + - jsonPath: .spec.site + name: Site + type: string + - jsonPath: .spec.ownerTenant + name: Tenant + type: string + - jsonPath: .status.status + name: Status + type: string + - jsonPath: .status.modified + name: Modified + priority: 1 + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: L4LB is the Schema for the l4lbs API + 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 + 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: L4LBSpec defines the desired state of L4LB + properties: + backend: + items: + description: L4LBBackend . + pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-4])$ + type: string + type: array + check: + description: L4LBCheck . + properties: + requestPath: + type: string + timeout: + type: integer + type: + enum: + - tcp + - http + - none + type: string + type: object + frontend: + description: L4LBFrontend . + properties: + ip: + pattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ + type: string + port: + maximum: 65534 + minimum: 0 + type: integer + required: + - port + type: object + ownerTenant: + type: string + protocol: + enum: + - tcp + - udp + type: string + site: + type: string + state: + description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + Important: Run "make" to regenerate code after modifying this file' + enum: + - active + - disable + type: string + required: + - backend + - frontend + type: object + status: + description: L4LBStatus defines the observed state of L4LB + properties: + message: + type: string + modified: + format: date-time + type: string + port: + type: string + state: + type: string + status: + type: string + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/netris-operator/crds/k8s.netris.ai_vnetmeta.yaml b/charts/netris-operator/crds/k8s.netris.ai_vnetmeta.yaml index 11de21b..40ccf02 100644 --- a/charts/netris-operator/crds/k8s.netris.ai_vnetmeta.yaml +++ b/charts/netris-operator/crds/k8s.netris.ai_vnetmeta.yaml @@ -1,10 +1,10 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.6.1 creationTimestamp: null name: vnetmeta.k8s.netris.ai spec: @@ -15,151 +15,150 @@ spec: plural: vnetmeta singular: vnetmeta scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: VNetMeta is the Schema for the vnetmeta API - 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 - 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: VNetMetaSpec defines the desired state of VNetMeta - properties: - gateways: - items: - description: VNetMetaGateway . - properties: - gateway: - type: string - gwLength: - type: integer - id: - type: integer - nos: - type: string - vaVlanId: - type: integer - version: - type: string - required: - - gateway - - gwLength - type: object - type: array - id: - type: integer - imported: - type: boolean - members: - items: - description: VNetMetaMember . - properties: - childPort: - type: integer - lacp: - type: string - member_state: - type: string - parentPort: - type: integer - port_id: - type: integer - port_name: - type: string - portIsUntagged: - type: boolean - tenant_id: - type: integer - vlan_id: - type: integer - required: - - childPort - - lacp - - member_state - - parentPort - - portIsUntagged - - port_id - - port_name - - tenant_id - - vlan_id - type: object - type: array - name: - type: string - owner: - type: string - ownerid: - type: integer - provisioning: - type: integer - reclaimPolicy: - type: boolean - sites: - items: - description: VNetMetaSite . - properties: - id: - type: integer - name: - type: string - type: object - type: array - state: - type: string - tenants: - items: - type: integer - type: array - vaMode: - type: boolean - vaNativeVlan: - type: integer - vaVlans: - type: string - vnetGeneration: - format: int64 - type: integer - vnetName: - type: string - required: - - gateways - - id - - imported - - members - - name - - owner - - ownerid - - provisioning - - reclaimPolicy - - sites - - state - - tenants - - vaMode - - vaNativeVlan - - vaVlans - - vnetGeneration - - vnetName - type: object - status: - description: VNetMetaStatus defines the observed state of VNetMeta - type: object - type: object - version: v1alpha1 versions: - name: v1alpha1 + schema: + openAPIV3Schema: + description: VNetMeta is the Schema for the vnetmeta API + 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 + 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: VNetMetaSpec defines the desired state of VNetMeta + properties: + gateways: + items: + description: VNetMetaGateway . + properties: + gateway: + type: string + gwLength: + type: integer + id: + type: integer + nos: + type: string + vaVlanId: + type: integer + version: + type: string + required: + - gateway + - gwLength + type: object + type: array + id: + type: integer + imported: + type: boolean + members: + items: + description: VNetMetaMember . + properties: + childPort: + type: integer + lacp: + type: string + member_state: + type: string + parentPort: + type: integer + port_id: + type: integer + port_name: + type: string + portIsUntagged: + type: boolean + tenant_id: + type: integer + vlan_id: + type: integer + required: + - childPort + - lacp + - member_state + - parentPort + - portIsUntagged + - port_id + - port_name + - tenant_id + - vlan_id + type: object + type: array + name: + type: string + owner: + type: string + ownerid: + type: integer + provisioning: + type: integer + reclaimPolicy: + type: boolean + sites: + items: + description: VNetMetaSite . + properties: + id: + type: integer + name: + type: string + type: object + type: array + state: + type: string + tenants: + items: + type: integer + type: array + vaMode: + type: boolean + vaNativeVlan: + type: integer + vaVlans: + type: string + vnetGeneration: + format: int64 + type: integer + vnetName: + type: string + required: + - gateways + - id + - imported + - members + - name + - owner + - ownerid + - provisioning + - reclaimPolicy + - sites + - state + - tenants + - vaMode + - vaNativeVlan + - vaVlans + - vnetGeneration + - vnetName + type: object + status: + description: VNetMetaStatus defines the observed state of VNetMeta + type: object + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/netris-operator/crds/k8s.netris.ai_vnets.yaml b/charts/netris-operator/crds/k8s.netris.ai_vnets.yaml index 1bf2c68..c723da4 100644 --- a/charts/netris-operator/crds/k8s.netris.ai_vnets.yaml +++ b/charts/netris-operator/crds/k8s.netris.ai_vnets.yaml @@ -1,40 +1,13 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.3.0 + controller-gen.kubebuilder.io/version: v0.6.1 creationTimestamp: null name: vnets.k8s.netris.ai spec: - additionalPrinterColumns: - - JSONPath: .status.state - name: State - type: string - - JSONPath: .status.gateways - name: Gateways - type: string - - JSONPath: .status.sites - name: Sites - type: string - - JSONPath: .status.modified - name: Modified - priority: 1 - type: date - - JSONPath: .spec.ownerTenant - name: Owner - type: string - - JSONPath: .spec.guestTenants - name: Guest Tenants - priority: 1 - type: string - - JSONPath: .status.status - name: Status - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date group: k8s.netris.ai names: kind: VNet @@ -42,104 +15,130 @@ spec: plural: vnets singular: vnet scope: Namespaced - subresources: - status: {} - validation: - openAPIV3Schema: - description: VNet is the Schema for the vnets API - 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 - 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: VNetSpec . - properties: - guestTenants: - items: + versions: + - additionalPrinterColumns: + - jsonPath: .status.state + name: State + type: string + - jsonPath: .status.gateways + name: Gateways + type: string + - jsonPath: .status.sites + name: Sites + type: string + - jsonPath: .status.modified + name: Modified + priority: 1 + type: date + - jsonPath: .spec.ownerTenant + name: Owner + type: string + - jsonPath: .spec.guestTenants + name: Guest Tenants + priority: 1 + type: string + - jsonPath: .status.status + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: VNet is the Schema for the vnets API + 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 + 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: VNetSpec . + properties: + guestTenants: + items: + type: string + type: array + ownerTenant: type: string - type: array - ownerTenant: - type: string - sites: - items: - description: VNetSite . - properties: - gateways: - items: - description: VNetGateway . - pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) + sites: + items: + description: VNetSite . + properties: + gateways: + items: + description: VNetGateway . + pattern: (^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/([0-9]|[12]\d|3[0-2]))?$)|(^((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?(\/([1-9]|[1-5][0-9]|6[0-4]))?$) + type: string + type: array + name: type: string - type: array - name: - type: string - switchPorts: - items: - description: VNetSwitchPort . - properties: - name: - pattern: ^[a-zA-Z0-9]+@[a-zA-Z0-9-]+$ - type: string - state: - type: string - vlanId: - maximum: 4094 - minimum: 2 - type: integer - required: - - name - type: object - type: array - required: - - name - type: object - type: array - state: - enum: - - active - - disabled - type: string - required: - - guestTenants - - ownerTenant - - sites - type: object - status: - description: VNetStatus defines the observed state of VNet - properties: - gateways: - type: string - message: - type: string - modified: - format: date-time - type: string - sites: - type: string - state: - type: string - status: - description: 'INSERT ADDITIONAL STATUS FIELD - define observed state - of cluster Important: Run "make" to regenerate code after modifying - this file' - type: string - type: object - required: - - spec - type: object - version: v1alpha1 - versions: - - name: v1alpha1 + switchPorts: + items: + description: VNetSwitchPort . + properties: + name: + pattern: ^[a-zA-Z0-9]+@[a-zA-Z0-9-]+$ + type: string + state: + type: string + vlanId: + maximum: 4094 + minimum: 2 + type: integer + required: + - name + type: object + type: array + required: + - name + type: object + type: array + state: + enum: + - active + - disabled + type: string + required: + - guestTenants + - ownerTenant + - sites + type: object + status: + description: VNetStatus defines the observed state of VNet + properties: + gateways: + type: string + message: + type: string + modified: + format: date-time + type: string + sites: + type: string + state: + type: string + status: + description: 'INSERT ADDITIONAL STATUS FIELD - define observed state + of cluster Important: Run "make" to regenerate code after modifying + this file' + type: string + type: object + required: + - spec + type: object served: true storage: true + subresources: + status: {} status: acceptedNames: kind: "" diff --git a/charts/netris-operator/templates/rbac.yaml b/charts/netris-operator/templates/rbac.yaml index 0de6b60..6c6ffbf 100644 --- a/charts/netris-operator/templates/rbac.yaml +++ b/charts/netris-operator/templates/rbac.yaml @@ -5,6 +5,13 @@ kind: ClusterRole metadata: name: '{{ include "netris-operator.fullname" . }}-manager-role' rules: + - apiGroups: + - '' + resources: + - events + verbs: + - create + - patch - apiGroups: - '' resources: