update crds
This commit is contained in:
@@ -0,0 +1,212 @@
|
||||
{
|
||||
"description": "Alert is the Schema for the alerts API",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||
"type": "string"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object"
|
||||
},
|
||||
"spec": {
|
||||
"description": "AlertSpec defines an alerting rule for events involving a list of objects.",
|
||||
"properties": {
|
||||
"eventMetadata": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "EventMetadata is an optional field for adding metadata to events dispatched by the\ncontroller. This can be used for enhancing the context of the event. If a field\nwould override one already present on the original event as generated by the emitter,\nthen the override doesn't happen, i.e. the original value is preserved, and an info\nlog is printed.",
|
||||
"type": "object"
|
||||
},
|
||||
"eventSeverity": {
|
||||
"default": "info",
|
||||
"description": "EventSeverity specifies how to filter events based on severity.\nIf set to 'info' no events will be filtered.",
|
||||
"enum": [
|
||||
"info",
|
||||
"error"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"eventSources": {
|
||||
"description": "EventSources specifies how to filter events based\non the involved object kind, name and namespace.",
|
||||
"items": {
|
||||
"description": "CrossNamespaceObjectReference contains enough information to let you locate the\ntyped referenced object at cluster level",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "API version of the referent",
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"description": "Kind of the referent",
|
||||
"enum": [
|
||||
"Bucket",
|
||||
"GitRepository",
|
||||
"Kustomization",
|
||||
"HelmRelease",
|
||||
"HelmChart",
|
||||
"HelmRepository",
|
||||
"ImageRepository",
|
||||
"ImagePolicy",
|
||||
"ImageUpdateAutomation",
|
||||
"OCIRepository",
|
||||
"ArtifactGenerator",
|
||||
"ExternalArtifact"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"matchLabels": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\nMatchLabels requires the name to be set to `*`.",
|
||||
"type": "object"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the referent\nIf multiple resources are targeted `*` may be set.",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"description": "Namespace of the referent",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"exclusionList": {
|
||||
"description": "ExclusionList specifies a list of Golang regular expressions\nto be used for excluding messages.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"inclusionList": {
|
||||
"description": "InclusionList specifies a list of Golang regular expressions\nto be used for including messages.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"providerRef": {
|
||||
"description": "ProviderRef specifies which Provider this Alert should use.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"summary": {
|
||||
"description": "Summary holds a short description of the impact and affected cluster.",
|
||||
"maxLength": 255,
|
||||
"type": "string"
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend subsequent\nevents handling for this Alert.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"eventSources",
|
||||
"providerRef"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "AlertStatus defines the observed state of the Alert.",
|
||||
"properties": {
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the Alert.",
|
||||
"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.\nThis 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.\nThis may be an empty string.",
|
||||
"maxLength": 32768,
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis 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",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"lastHandledReconcileAt": {
|
||||
"description": "LastHandledReconcileAt holds the value of the most recent\nreconcile request value, so a change of the annotation value\ncan be detected.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "ObservedGeneration is the last observed generation.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"description": "Alert is the Schema for the alerts API",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||
"type": "string"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object"
|
||||
},
|
||||
"spec": {
|
||||
"description": "AlertSpec defines an alerting rule for events involving a list of objects.",
|
||||
"properties": {
|
||||
"eventMetadata": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "EventMetadata is an optional field for adding metadata to events dispatched by the\ncontroller. This can be used for enhancing the context of the event. If a field\nwould override one already present on the original event as generated by the emitter,\nthen the override doesn't happen, i.e. the original value is preserved, and an info\nlog is printed.",
|
||||
"type": "object"
|
||||
},
|
||||
"eventSeverity": {
|
||||
"default": "info",
|
||||
"description": "EventSeverity specifies how to filter events based on severity.\nIf set to 'info' no events will be filtered.",
|
||||
"enum": [
|
||||
"info",
|
||||
"error"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"eventSources": {
|
||||
"description": "EventSources specifies how to filter events based\non the involved object kind, name and namespace.",
|
||||
"items": {
|
||||
"description": "CrossNamespaceObjectReference contains enough information to let you locate the\ntyped referenced object at cluster level",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "API version of the referent",
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"description": "Kind of the referent",
|
||||
"enum": [
|
||||
"Bucket",
|
||||
"GitRepository",
|
||||
"Kustomization",
|
||||
"HelmRelease",
|
||||
"HelmChart",
|
||||
"HelmRepository",
|
||||
"ImageRepository",
|
||||
"ImagePolicy",
|
||||
"ImageUpdateAutomation",
|
||||
"OCIRepository",
|
||||
"ArtifactGenerator",
|
||||
"ExternalArtifact"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"matchLabels": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\nMatchLabels requires the name to be set to `*`.",
|
||||
"type": "object"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the referent\nIf multiple resources are targeted `*` may be set.",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"description": "Namespace of the referent",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"exclusionList": {
|
||||
"description": "ExclusionList specifies a list of Golang regular expressions\nto be used for excluding messages.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"inclusionList": {
|
||||
"description": "InclusionList specifies a list of Golang regular expressions\nto be used for including messages.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"providerRef": {
|
||||
"description": "ProviderRef specifies which Provider this Alert should use.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"summary": {
|
||||
"description": "Summary holds a short description of the impact and affected cluster.\nDeprecated: Use EventMetadata instead.",
|
||||
"maxLength": 255,
|
||||
"type": "string"
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend subsequent\nevents handling for this Alert.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"eventSources",
|
||||
"providerRef"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"description": "Provider is the Schema for the providers API.",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||
"type": "string"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object"
|
||||
},
|
||||
"spec": {
|
||||
"description": "ProviderSpec defines the desired state of the Provider.",
|
||||
"properties": {
|
||||
"address": {
|
||||
"description": "Address specifies the endpoint, in a generic sense, to where alerts are sent.\nWhat kind of endpoint depends on the specific Provider type being used.\nFor the generic Provider, for example, this is an HTTP/S address.\nFor other Provider types this could be a project ID or a namespace.",
|
||||
"maxLength": 2048,
|
||||
"type": "string"
|
||||
},
|
||||
"certSecretRef": {
|
||||
"description": "CertSecretRef specifies the Secret containing\na PEM-encoded CA certificate (in the `ca.crt` key).\n\nNote: Support for the `caFile` key has\nbeen deprecated.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"channel": {
|
||||
"description": "Channel specifies the destination channel where events should be posted.",
|
||||
"maxLength": 2048,
|
||||
"type": "string"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval at which to reconcile the Provider with its Secret references.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"proxy": {
|
||||
"description": "Proxy the HTTP/S address of the proxy server.",
|
||||
"maxLength": 2048,
|
||||
"pattern": "^(http|https)://.*$",
|
||||
"type": "string"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing the authentication\ncredentials for this Provider.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend subsequent\nevents handling for this Provider.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"timeout": {
|
||||
"description": "Timeout for sending alerts to the Provider.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"description": "Type specifies which Provider implementation to use.",
|
||||
"enum": [
|
||||
"slack",
|
||||
"discord",
|
||||
"msteams",
|
||||
"rocket",
|
||||
"generic",
|
||||
"generic-hmac",
|
||||
"github",
|
||||
"gitlab",
|
||||
"gitea",
|
||||
"bitbucketserver",
|
||||
"bitbucket",
|
||||
"azuredevops",
|
||||
"googlechat",
|
||||
"googlepubsub",
|
||||
"webex",
|
||||
"sentry",
|
||||
"azureeventhub",
|
||||
"telegram",
|
||||
"lark",
|
||||
"matrix",
|
||||
"opsgenie",
|
||||
"alertmanager",
|
||||
"grafana",
|
||||
"githubdispatch",
|
||||
"pagerduty",
|
||||
"datadog"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"username": {
|
||||
"description": "Username specifies the name under which events are posted.",
|
||||
"maxLength": 2048,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "ProviderStatus defines the observed state of the Provider.",
|
||||
"properties": {
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the Provider.",
|
||||
"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.\nThis 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.\nThis may be an empty string.",
|
||||
"maxLength": 32768,
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis 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",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"lastHandledReconcileAt": {
|
||||
"description": "LastHandledReconcileAt holds the value of the most recent\nreconcile request value, so a change of the annotation value\ncan be detected.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "ObservedGeneration is the last reconciled generation.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
{
|
||||
"description": "Provider is the Schema for the providers API",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||
"type": "string"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object"
|
||||
},
|
||||
"spec": {
|
||||
"description": "ProviderSpec defines the desired state of the Provider.",
|
||||
"properties": {
|
||||
"address": {
|
||||
"description": "Address specifies the endpoint, in a generic sense, to where alerts are sent.\nWhat kind of endpoint depends on the specific Provider type being used.\nFor the generic Provider, for example, this is an HTTP/S address.\nFor other Provider types this could be a project ID or a namespace.",
|
||||
"maxLength": 2048,
|
||||
"type": "string"
|
||||
},
|
||||
"certSecretRef": {
|
||||
"description": "CertSecretRef specifies the Secret containing TLS certificates\nfor secure communication.\n\nSupported configurations:\n- CA-only: Server authentication (provide ca.crt only)\n- mTLS: Mutual authentication (provide ca.crt + tls.crt + tls.key)\n- Client-only: Client authentication with system CA (provide tls.crt + tls.key only)\n\nLegacy keys \"caFile\", \"certFile\", \"keyFile\" are supported but deprecated. Use \"ca.crt\", \"tls.crt\", \"tls.key\" instead.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"channel": {
|
||||
"description": "Channel specifies the destination channel where events should be posted.",
|
||||
"maxLength": 2048,
|
||||
"type": "string"
|
||||
},
|
||||
"commitStatusExpr": {
|
||||
"description": "CommitStatusExpr is a CEL expression that evaluates to a string value\nthat can be used to generate a custom commit status message for use\nwith eligible Provider types (github, gitlab, gitea, bitbucketserver,\nbitbucket, azuredevops). Supported variables are: event, provider,\nand alert.",
|
||||
"type": "string"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval at which to reconcile the Provider with its Secret references.\nDeprecated and not used in v1beta3.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"proxy": {
|
||||
"description": "Proxy the HTTP/S address of the proxy server.\nDeprecated: Use ProxySecretRef instead. Will be removed in v1.",
|
||||
"maxLength": 2048,
|
||||
"pattern": "^(http|https)://.*$",
|
||||
"type": "string"
|
||||
},
|
||||
"proxySecretRef": {
|
||||
"description": "ProxySecretRef specifies the Secret containing the proxy configuration\nfor this Provider. The Secret should contain an 'address' key with the\nHTTP/S address of the proxy server. Optional 'username' and 'password'\nkeys can be provided for proxy authentication.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing the authentication\ncredentials for this Provider.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"serviceAccountName": {
|
||||
"description": "ServiceAccountName is the name of the Kubernetes ServiceAccount used to\nauthenticate with cloud provider services through workload identity.\nThis enables multi-tenant authentication without storing static credentials.\n\nSupported provider types: azureeventhub, azuredevops, googlepubsub\n\nWhen specified, the controller will:\n1. Create an OIDC token for the specified ServiceAccount\n2. Exchange it for cloud provider credentials via STS\n3. Use the obtained credentials for API authentication\n\nWhen unspecified, controller-level authentication is used (single-tenant).\n\nAn error is thrown if static credentials are also defined in SecretRef.\nThis field requires the ObjectLevelWorkloadIdentity feature gate to be enabled.",
|
||||
"type": "string"
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend subsequent\nevents handling for this Provider.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"timeout": {
|
||||
"description": "Timeout for sending alerts to the Provider.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"description": "Type specifies which Provider implementation to use.",
|
||||
"enum": [
|
||||
"slack",
|
||||
"discord",
|
||||
"msteams",
|
||||
"rocket",
|
||||
"generic",
|
||||
"generic-hmac",
|
||||
"github",
|
||||
"gitlab",
|
||||
"gitea",
|
||||
"giteapullrequestcomment",
|
||||
"bitbucketserver",
|
||||
"bitbucket",
|
||||
"azuredevops",
|
||||
"googlechat",
|
||||
"googlepubsub",
|
||||
"webex",
|
||||
"sentry",
|
||||
"azureeventhub",
|
||||
"telegram",
|
||||
"lark",
|
||||
"matrix",
|
||||
"opsgenie",
|
||||
"alertmanager",
|
||||
"grafana",
|
||||
"githubdispatch",
|
||||
"githubpullrequestcomment",
|
||||
"gitlabmergerequestcomment",
|
||||
"pagerduty",
|
||||
"datadog",
|
||||
"nats",
|
||||
"zulip",
|
||||
"otel"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"username": {
|
||||
"description": "Username specifies the name under which events are posted.",
|
||||
"maxLength": 2048,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
],
|
||||
"type": "object",
|
||||
"x-kubernetes-validations": [
|
||||
{
|
||||
"message": "spec.commitStatusExpr is only supported for the 'github', 'gitlab', 'gitea', 'bitbucketserver', 'bitbucket', 'azuredevops' provider types",
|
||||
"rule": "self.type == 'github' || self.type == 'gitlab' || self.type == 'gitea' || self.type == 'bitbucketserver' || self.type == 'bitbucket' || self.type == 'azuredevops' || !has(self.commitStatusExpr)"
|
||||
}
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
{
|
||||
"description": "Receiver is the Schema for the receivers API.",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||
"type": "string"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object"
|
||||
},
|
||||
"spec": {
|
||||
"description": "ReceiverSpec defines the desired state of the Receiver.",
|
||||
"properties": {
|
||||
"events": {
|
||||
"description": "Events specifies the list of event types to handle,\ne.g. 'push' for GitHub or 'Push Hook' for GitLab.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"interval": {
|
||||
"default": "10m",
|
||||
"description": "Interval at which to reconcile the Receiver with its Secret references.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"resourceFilter": {
|
||||
"description": "ResourceFilter is a CEL expression expected to return a boolean that is\nevaluated for each resource referenced in the Resources field when a\nwebhook is received. If the expression returns false then the controller\nwill not request a reconciliation for the resource.\nWhen the expression is specified the controller will parse it and mark\nthe object as terminally failed if the expression is invalid or does not\nreturn a boolean.",
|
||||
"type": "string"
|
||||
},
|
||||
"resources": {
|
||||
"description": "A list of resources to be notified about changes.",
|
||||
"items": {
|
||||
"description": "CrossNamespaceObjectReference contains enough information to let you locate the\ntyped referenced object at cluster level",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "API version of the referent",
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"description": "Kind of the referent",
|
||||
"enum": [
|
||||
"Bucket",
|
||||
"GitRepository",
|
||||
"Kustomization",
|
||||
"HelmRelease",
|
||||
"HelmChart",
|
||||
"HelmRepository",
|
||||
"ImageRepository",
|
||||
"ImagePolicy",
|
||||
"ImageUpdateAutomation",
|
||||
"OCIRepository",
|
||||
"ArtifactGenerator",
|
||||
"ExternalArtifact"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"matchLabels": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\nMatchLabels requires the name to be set to `*`.",
|
||||
"type": "object"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the referent\nIf multiple resources are targeted `*` may be set.",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"description": "Namespace of the referent",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing the token used\nto validate the payload authenticity. The Secret must contain a 'token'\nkey. For GCR receivers, the Secret must also contain an 'email' key\nwith the IAM service account email configured on the Pub/Sub push\nsubscription, and an 'audience' key with the expected OIDC token audience.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend subsequent\nevents handling for this receiver.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"type": {
|
||||
"description": "Type of webhook sender, used to determine\nthe validation procedure and payload deserialization.",
|
||||
"enum": [
|
||||
"generic",
|
||||
"generic-hmac",
|
||||
"github",
|
||||
"gitlab",
|
||||
"bitbucket",
|
||||
"harbor",
|
||||
"dockerhub",
|
||||
"quay",
|
||||
"gcr",
|
||||
"nexus",
|
||||
"acr",
|
||||
"cdevents"
|
||||
],
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"resources",
|
||||
"secretRef",
|
||||
"type"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "ReceiverStatus defines the observed state of the Receiver.",
|
||||
"properties": {
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the Receiver.",
|
||||
"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.\nThis 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.\nThis may be an empty string.",
|
||||
"maxLength": 32768,
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis 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",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"lastHandledReconcileAt": {
|
||||
"description": "LastHandledReconcileAt holds the value of the most recent\nreconcile request value, so a change of the annotation value\ncan be detected.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "ObservedGeneration is the last observed generation of the Receiver object.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"webhookPath": {
|
||||
"description": "WebhookPath is the generated incoming webhook address in the format\nof '/hook/sha256sum(token+name+namespace)'.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
{
|
||||
"description": "Receiver is the Schema for the receivers API.",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
||||
"type": "string"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object"
|
||||
},
|
||||
"spec": {
|
||||
"description": "ReceiverSpec defines the desired state of the Receiver.",
|
||||
"properties": {
|
||||
"events": {
|
||||
"description": "Events specifies the list of event types to handle,\ne.g. 'push' for GitHub or 'Push Hook' for GitLab.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval at which to reconcile the Receiver with its Secret references.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"resources": {
|
||||
"description": "A list of resources to be notified about changes.",
|
||||
"items": {
|
||||
"description": "CrossNamespaceObjectReference contains enough information to let you locate the\ntyped referenced object at cluster level",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "API version of the referent",
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"description": "Kind of the referent",
|
||||
"enum": [
|
||||
"Bucket",
|
||||
"GitRepository",
|
||||
"Kustomization",
|
||||
"HelmRelease",
|
||||
"HelmChart",
|
||||
"HelmRepository",
|
||||
"ImageRepository",
|
||||
"ImagePolicy",
|
||||
"ImageUpdateAutomation",
|
||||
"OCIRepository",
|
||||
"ArtifactGenerator",
|
||||
"ExternalArtifact"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"matchLabels": {
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\nMatchLabels requires the name to be set to `*`.",
|
||||
"type": "object"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the referent\nIf multiple resources are targeted `*` may be set.",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"description": "Namespace of the referent",
|
||||
"maxLength": 253,
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing the token used\nto validate the payload authenticity.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend subsequent\nevents handling for this receiver.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"type": {
|
||||
"description": "Type of webhook sender, used to determine\nthe validation procedure and payload deserialization.",
|
||||
"enum": [
|
||||
"generic",
|
||||
"generic-hmac",
|
||||
"github",
|
||||
"gitlab",
|
||||
"bitbucket",
|
||||
"harbor",
|
||||
"dockerhub",
|
||||
"quay",
|
||||
"gcr",
|
||||
"nexus",
|
||||
"acr"
|
||||
],
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"resources",
|
||||
"secretRef",
|
||||
"type"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "ReceiverStatus defines the observed state of the Receiver.",
|
||||
"properties": {
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the Receiver.",
|
||||
"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.\nThis 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.\nThis may be an empty string.",
|
||||
"maxLength": 32768,
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith 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.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis 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",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"lastHandledReconcileAt": {
|
||||
"description": "LastHandledReconcileAt holds the value of the most recent\nreconcile request value, so a change of the annotation value\ncan be detected.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "ObservedGeneration is the last observed generation of the Receiver object.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"url": {
|
||||
"description": "URL is the generated incoming webhook address in the format\nof '/hook/sha256sum(token+name+namespace)'.\nDeprecated: Replaced by WebhookPath.",
|
||||
"type": "string"
|
||||
},
|
||||
"webhookPath": {
|
||||
"description": "WebhookPath is the generated incoming webhook address in the format\nof '/hook/sha256sum(token+name+namespace)'.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
Reference in New Issue
Block a user