Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add projectcalico crds #191

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions crd.projectcalico.org/alertexception_v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"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": "AlertExceptionSpec contains the specification for an alert exception resource.",
"properties": {
"description": {
"description": "The description is displayed by the UI.",
"type": "string"
},
"endTime": {
"description": "EndTime defines the end time at which this alert exception will expire. If omitted the alert exception filtering will continue indefinitely.",
"format": "date-time",
"type": "string"
},
"selector": {
"description": "Selector defines a query string for alert events to be excluded from UI search results.",
"type": "string"
},
"startTime": {
"description": "StartTime defines the start time from which this alert exception will take effect. If the value is in the past, matched alerts will be filtered immediately. If the value is changed to a future time, alert exceptions will restart at that time.",
"format": "date-time",
"type": "string"
}
},
"required": [
"description",
"selector",
"startTime"
],
"type": "object",
"additionalProperties": false
},
"status": {
"description": "AlertExceptionStatus contains the status of an alert exception.",
"type": "object"
}
},
"type": "object"
}
171 changes: 171 additions & 0 deletions crd.projectcalico.org/bgpconfiguration_v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
{
"description": "BGPConfiguration contains the configuration for any BGP routing.",
"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": "BGPConfigurationSpec contains the values of the BGP configuration.",
"properties": {
"asNumber": {
"description": "ASNumber is the default AS number used by a node. [Default: 64512]",
"format": "int32",
"type": "integer"
},
"bindMode": {
"description": "BindMode indicates whether to listen for BGP connections on all addresses (None) or only on the node's canonical IP address Node.Spec.BGP.IPvXAddress (NodeIP). Default behaviour is to listen for BGP connections on all addresses.",
"type": "string"
},
"communities": {
"description": "Communities is a list of BGP community values and their arbitrary names for tagging routes.",
"items": {
"description": "Community contains standard or large community value and its name.",
"properties": {
"name": {
"description": "Name given to community value.",
"type": "string"
},
"value": {
"description": "Value must be of format `aa:nn` or `aa:nn:mm`. For standard community use `aa:nn` format, where `aa` and `nn` are 16 bit number. For large community use `aa:nn:mm` format, where `aa`, `nn` and `mm` are 32 bit number. Where, `aa` is an AS Number, `nn` and `mm` are per-AS identifier.",
"pattern": "^(\\d+):(\\d+)$|^(\\d+):(\\d+):(\\d+)$",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"extensions": {
"additionalProperties": {
"type": "string"
},
"description": "Extensions is a mapping of keys to values that can be used in custom BGP templates",
"type": "object"
},
"listenPort": {
"description": "ListenPort is the port where BGP protocol should listen. Defaults to 179",
"maximum": 65535,
"minimum": 1,
"type": "integer"
},
"logSeverityScreen": {
"description": "LogSeverityScreen is the log severity above which logs are sent to the stdout. [Default: INFO]",
"type": "string"
},
"nodeMeshMaxRestartTime": {
"description": "Time to allow for software restart for node-to-mesh peerings. When specified, this is configured as the graceful restart timeout. When not specified, the BIRD default of 120s is used. This field can only be set on the default BGPConfiguration instance and requires that NodeMesh is enabled",
"type": "string"
},
"nodeMeshPassword": {
"description": "Optional BGP password for full node-to-mesh peerings. This field can only be set on the default BGPConfiguration instance and requires that NodeMesh is enabled",
"properties": {
"secretKeyRef": {
"description": "Selects a key of a secret in the node pod's namespace.",
"properties": {
"key": {
"description": "The key of the secret to select from. Must be a valid secret key.",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?",
"type": "string"
},
"optional": {
"description": "Specify whether the Secret or its key must be defined",
"type": "boolean"
}
},
"required": [
"key"
],
"type": "object",
"additionalProperties": false
}
},
"type": "object",
"additionalProperties": false
},
"nodeToNodeMeshEnabled": {
"description": "NodeToNodeMeshEnabled sets whether full node to node BGP mesh is enabled. [Default: true]",
"type": "boolean"
},
"prefixAdvertisements": {
"description": "PrefixAdvertisements contains per-prefix advertisement configuration.",
"items": {
"description": "PrefixAdvertisement configures advertisement properties for the specified CIDR.",
"properties": {
"cidr": {
"description": "CIDR for which properties should be advertised.",
"type": "string"
},
"communities": {
"description": "Communities can be list of either community names already defined in `Specs.Communities` or community value of format `aa:nn` or `aa:nn:mm`. For standard community use `aa:nn` format, where `aa` and `nn` are 16 bit number. For large community use `aa:nn:mm` format, where `aa`, `nn` and `mm` are 32 bit number. Where,`aa` is an AS Number, `nn` and `mm` are per-AS identifier.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"serviceClusterIPs": {
"description": "ServiceClusterIPs are the CIDR blocks from which service cluster IPs are allocated. If specified, Calico will advertise these blocks, as well as any cluster IPs within them.",
"items": {
"description": "ServiceClusterIPBlock represents a single allowed ClusterIP CIDR block.",
"properties": {
"cidr": {
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"serviceExternalIPs": {
"description": "ServiceExternalIPs are the CIDR blocks for Kubernetes Service External IPs. Kubernetes Service ExternalIPs will only be advertised if they are within one of these blocks.",
"items": {
"description": "ServiceExternalIPBlock represents a single allowed External IP CIDR block.",
"properties": {
"cidr": {
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"serviceLoadBalancerIPs": {
"description": "ServiceLoadBalancerIPs are the CIDR blocks for Kubernetes Service LoadBalancer IPs. Kubernetes Service status.LoadBalancer.Ingress IPs will only be advertised if they are within one of these blocks.",
"items": {
"description": "ServiceLoadBalancerIPBlock represents a single allowed LoadBalancer IP CIDR block.",
"properties": {
"cidr": {
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"type": "array"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}
123 changes: 123 additions & 0 deletions crd.projectcalico.org/bgpfilter_v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
{
"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": "BGPFilterSpec contains the IPv4 and IPv6 filter rules of the BGP Filter.",
"properties": {
"exportV4": {
"description": "The ordered set of IPv4 BGPFilter rules acting on exporting routes to a peer.",
"items": {
"description": "BGPFilterRuleV4 defines a BGP filter rule consisting a single IPv4 CIDR block and a filter action for this CIDR.",
"properties": {
"action": {
"type": "string"
},
"cidr": {
"type": "string"
},
"matchOperator": {
"type": "string"
}
},
"required": [
"action",
"cidr",
"matchOperator"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"exportV6": {
"description": "The ordered set of IPv6 BGPFilter rules acting on exporting routes to a peer.",
"items": {
"description": "BGPFilterRuleV6 defines a BGP filter rule consisting a single IPv6 CIDR block and a filter action for this CIDR.",
"properties": {
"action": {
"type": "string"
},
"cidr": {
"type": "string"
},
"matchOperator": {
"type": "string"
}
},
"required": [
"action",
"cidr",
"matchOperator"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"importV4": {
"description": "The ordered set of IPv4 BGPFilter rules acting on importing routes from a peer.",
"items": {
"description": "BGPFilterRuleV4 defines a BGP filter rule consisting a single IPv4 CIDR block and a filter action for this CIDR.",
"properties": {
"action": {
"type": "string"
},
"cidr": {
"type": "string"
},
"matchOperator": {
"type": "string"
}
},
"required": [
"action",
"cidr",
"matchOperator"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"importV6": {
"description": "The ordered set of IPv6 BGPFilter rules acting on importing routes from a peer.",
"items": {
"description": "BGPFilterRuleV6 defines a BGP filter rule consisting a single IPv6 CIDR block and a filter action for this CIDR.",
"properties": {
"action": {
"type": "string"
},
"cidr": {
"type": "string"
},
"matchOperator": {
"type": "string"
}
},
"required": [
"action",
"cidr",
"matchOperator"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}
Loading