251 lines
12 KiB
JSON
251 lines
12 KiB
JSON
{
|
|
"description": "Bucket is the Schema for the buckets 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": "BucketSpec specifies the required configuration to produce an Artifact for\nan object storage bucket.",
|
|
"properties": {
|
|
"accessFrom": {
|
|
"description": "AccessFrom specifies an Access Control List for allowing cross-namespace\nreferences to this object.\nNOTE: Not implemented, provisional as of https://github.com/fluxcd/flux2/pull/2092",
|
|
"properties": {
|
|
"namespaceSelectors": {
|
|
"description": "NamespaceSelectors is the list of namespace selectors to which this ACL applies.\nItems in this list are evaluated using a logical OR operation.",
|
|
"items": {
|
|
"description": "NamespaceSelector selects the namespaces to which this ACL applies.\nAn empty map of MatchLabels matches all namespaces in a cluster.",
|
|
"properties": {
|
|
"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.",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"namespaceSelectors"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"bucketName": {
|
|
"description": "BucketName is the name of the object storage bucket.",
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"description": "Endpoint is the object storage address the BucketName is located at.",
|
|
"type": "string"
|
|
},
|
|
"ignore": {
|
|
"description": "Ignore overrides the set of excluded patterns in the .sourceignore format\n(which is the same as .gitignore). If not provided, a default will be used,\nconsult the documentation for your version to find out what those are.",
|
|
"type": "string"
|
|
},
|
|
"insecure": {
|
|
"description": "Insecure allows connecting to a non-TLS HTTP Endpoint.",
|
|
"type": "boolean"
|
|
},
|
|
"interval": {
|
|
"description": "Interval at which the Bucket Endpoint is checked for updates.\nThis interval is approximate and may be subject to jitter to ensure\nefficient use of resources.",
|
|
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m|h))+$",
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"description": "Prefix to use for server-side filtering of files in the Bucket.",
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"default": "generic",
|
|
"description": "Provider of the object storage bucket.\nDefaults to 'generic', which expects an S3 (API) compatible object\nstorage.",
|
|
"enum": [
|
|
"generic",
|
|
"aws",
|
|
"gcp",
|
|
"azure"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"region": {
|
|
"description": "Region of the Endpoint where the BucketName is located in.",
|
|
"type": "string"
|
|
},
|
|
"secretRef": {
|
|
"description": "SecretRef specifies the Secret containing authentication credentials\nfor the Bucket.",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Name of the referent.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"suspend": {
|
|
"description": "Suspend tells the controller to suspend the reconciliation of this\nBucket.",
|
|
"type": "boolean"
|
|
},
|
|
"timeout": {
|
|
"default": "60s",
|
|
"description": "Timeout for fetch operations, defaults to 60s.",
|
|
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m))+$",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"bucketName",
|
|
"endpoint",
|
|
"interval"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"status": {
|
|
"default": {
|
|
"observedGeneration": -1
|
|
},
|
|
"description": "BucketStatus records the observed state of a Bucket.",
|
|
"properties": {
|
|
"artifact": {
|
|
"description": "Artifact represents the last successful Bucket reconciliation.",
|
|
"properties": {
|
|
"digest": {
|
|
"description": "Digest is the digest of the file in the form of '<algorithm>:<checksum>'.",
|
|
"pattern": "^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$",
|
|
"type": "string"
|
|
},
|
|
"lastUpdateTime": {
|
|
"description": "LastUpdateTime is the timestamp corresponding to the last update of the\nArtifact.",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Metadata holds upstream information such as OCI annotations.",
|
|
"type": "object"
|
|
},
|
|
"path": {
|
|
"description": "Path is the relative file path of the Artifact. It can be used to locate\nthe file in the root of the Artifact storage on the local file system of\nthe controller managing the Source.",
|
|
"type": "string"
|
|
},
|
|
"revision": {
|
|
"description": "Revision is a human-readable identifier traceable in the origin source\nsystem. It can be a Git commit SHA, Git tag, a Helm chart version, etc.",
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"description": "Size is the number of bytes in the file.",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"url": {
|
|
"description": "URL is the HTTP address of the Artifact as exposed by the controller\nmanaging the Source. It can be used to retrieve the Artifact for\nconsumption, e.g. by another controller applying the Artifact contents.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"lastUpdateTime",
|
|
"path",
|
|
"revision",
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"conditions": {
|
|
"description": "Conditions holds the conditions for the Bucket.",
|
|
"items": {
|
|
"description": "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}",
|
|
"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.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)",
|
|
"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 Bucket object.",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"observedIgnore": {
|
|
"description": "ObservedIgnore is the observed exclusion patterns used for constructing\nthe source artifact.",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"description": "URL is the dynamic fetch link for the latest Artifact.\nIt is provided on a \"best effort\" basis, and using the precise\nBucketStatus.Artifact data is recommended.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"type": "object"
|
|
} |