update crds
This commit is contained in:
@@ -0,0 +1,338 @@
|
||||
{
|
||||
"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": {
|
||||
"bucketName": {
|
||||
"description": "BucketName is the name of the object storage bucket.",
|
||||
"type": "string"
|
||||
},
|
||||
"certSecretRef": {
|
||||
"description": "CertSecretRef can be given the name of a Secret containing\neither or both of\n\n- a PEM-encoded client certificate (`tls.crt`) and private\nkey (`tls.key`);\n- a PEM-encoded CA certificate (`ca.crt`)\n\nand whichever are supplied, will be used for connecting to the\nbucket. The client cert and key are useful if you are\nauthenticating with a certificate; the CA cert is useful if\nyou are using a self-signed server certificate. The Secret must\nbe of type `Opaque` or `kubernetes.io/tls`.\n\nThis field is only supported for the `generic` provider.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"proxySecretRef": {
|
||||
"description": "ProxySecretRef specifies the Secret containing the proxy configuration\nto use while communicating with the Bucket server.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"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
|
||||
},
|
||||
"serviceAccountName": {
|
||||
"description": "ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate\nthe bucket. This field is only supported for the 'gcp' and 'aws' providers.\nFor more information about workload identity:\nhttps://fluxcd.io/flux/components/source/buckets/#workload-identity",
|
||||
"type": "string"
|
||||
},
|
||||
"sts": {
|
||||
"description": "STS specifies the required configuration to use a Security Token\nService for fetching temporary credentials to authenticate in a\nBucket provider.\n\nThis field is only supported for the `aws` and `generic` providers.",
|
||||
"properties": {
|
||||
"certSecretRef": {
|
||||
"description": "CertSecretRef can be given the name of a Secret containing\neither or both of\n\n- a PEM-encoded client certificate (`tls.crt`) and private\nkey (`tls.key`);\n- a PEM-encoded CA certificate (`ca.crt`)\n\nand whichever are supplied, will be used for connecting to the\nSTS endpoint. The client cert and key are useful if you are\nauthenticating with a certificate; the CA cert is useful if\nyou are using a self-signed server certificate. The Secret must\nbe of type `Opaque` or `kubernetes.io/tls`.\n\nThis field is only supported for the `ldap` provider.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"endpoint": {
|
||||
"description": "Endpoint is the HTTP/S endpoint of the Security Token Service from\nwhere temporary credentials will be fetched.",
|
||||
"pattern": "^(http|https)://.*$",
|
||||
"type": "string"
|
||||
},
|
||||
"provider": {
|
||||
"description": "Provider of the Security Token Service.",
|
||||
"enum": [
|
||||
"aws",
|
||||
"ldap"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing authentication credentials\nfor the STS endpoint. This Secret must contain the fields `username`\nand `password` and is supported only for the `ldap` provider.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"endpoint",
|
||||
"provider"
|
||||
],
|
||||
"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",
|
||||
"x-kubernetes-validations": [
|
||||
{
|
||||
"message": "STS configuration is only supported for the 'aws' and 'generic' Bucket providers",
|
||||
"rule": "self.provider == 'aws' || self.provider == 'generic' || !has(self.sts)"
|
||||
},
|
||||
{
|
||||
"message": "'aws' is the only supported STS provider for the 'aws' Bucket provider",
|
||||
"rule": "self.provider != 'aws' || !has(self.sts) || self.sts.provider == 'aws'"
|
||||
},
|
||||
{
|
||||
"message": "'ldap' is the only supported STS provider for the 'generic' Bucket provider",
|
||||
"rule": "self.provider != 'generic' || !has(self.sts) || self.sts.provider == 'ldap'"
|
||||
},
|
||||
{
|
||||
"message": "spec.sts.secretRef is not required for the 'aws' STS provider",
|
||||
"rule": "!has(self.sts) || self.sts.provider != 'aws' || !has(self.sts.secretRef)"
|
||||
},
|
||||
{
|
||||
"message": "spec.sts.certSecretRef is not required for the 'aws' STS provider",
|
||||
"rule": "!has(self.sts) || self.sts.provider != 'aws' || !has(self.sts.certSecretRef)"
|
||||
},
|
||||
{
|
||||
"message": "ServiceAccountName is not supported for the 'generic' Bucket provider",
|
||||
"rule": "self.provider != 'generic' || !has(self.serviceAccountName)"
|
||||
},
|
||||
{
|
||||
"message": "cannot set both .spec.secretRef and .spec.serviceAccountName",
|
||||
"rule": "!has(self.secretRef) || !has(self.serviceAccountName)"
|
||||
}
|
||||
],
|
||||
"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": [
|
||||
"digest",
|
||||
"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.",
|
||||
"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 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"
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"description": "ExternalArtifact is the Schema for the external artifacts 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": "ExternalArtifactSpec defines the desired state of ExternalArtifact",
|
||||
"properties": {
|
||||
"sourceRef": {
|
||||
"description": "SourceRef points to the Kubernetes custom resource for\nwhich the artifact is generated.",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "API version of the referent, if not specified the Kubernetes preferred version will be used.",
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"description": "Kind of the referent.",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
},
|
||||
"namespace": {
|
||||
"description": "Namespace of the referent, when not specified it acts as LocalObjectReference.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"description": "ExternalArtifactStatus defines the observed state of ExternalArtifact",
|
||||
"properties": {
|
||||
"artifact": {
|
||||
"description": "Artifact represents the output of an ExternalArtifact 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": [
|
||||
"digest",
|
||||
"lastUpdateTime",
|
||||
"path",
|
||||
"revision",
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the ExternalArtifact.",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,438 @@
|
||||
{
|
||||
"description": "GitRepository is the Schema for the gitrepositories 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": "GitRepositorySpec specifies the required configuration to produce an\nArtifact for a Git repository.",
|
||||
"properties": {
|
||||
"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"
|
||||
},
|
||||
"include": {
|
||||
"description": "Include specifies a list of GitRepository resources which Artifacts\nshould be included in the Artifact produced for this GitRepository.",
|
||||
"items": {
|
||||
"description": "GitRepositoryInclude specifies a local reference to a GitRepository which\nArtifact (sub-)contents must be included, and where they should be placed.",
|
||||
"properties": {
|
||||
"fromPath": {
|
||||
"description": "FromPath specifies the path to copy contents from, defaults to the root\nof the Artifact.",
|
||||
"type": "string"
|
||||
},
|
||||
"repository": {
|
||||
"description": "GitRepositoryRef specifies the GitRepository which Artifact contents\nmust be included.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"toPath": {
|
||||
"description": "ToPath specifies the path to copy contents to, defaults to the name of\nthe GitRepositoryRef.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval at which the GitRepository URL 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"
|
||||
},
|
||||
"provider": {
|
||||
"description": "Provider used for authentication, can be 'azure', 'github', 'generic'.\nWhen not specified, defaults to 'generic'.",
|
||||
"enum": [
|
||||
"generic",
|
||||
"azure",
|
||||
"github"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"proxySecretRef": {
|
||||
"description": "ProxySecretRef specifies the Secret containing the proxy configuration\nto use while communicating with the Git server.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"recurseSubmodules": {
|
||||
"description": "RecurseSubmodules enables the initialization of all submodules within\nthe GitRepository as cloned from the URL, using their default settings.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"ref": {
|
||||
"description": "Reference specifies the Git reference to resolve and monitor for\nchanges, defaults to the 'master' branch.",
|
||||
"properties": {
|
||||
"branch": {
|
||||
"description": "Branch to check out, defaults to 'master' if no other field is defined.",
|
||||
"type": "string"
|
||||
},
|
||||
"commit": {
|
||||
"description": "Commit SHA to check out, takes precedence over all reference fields.\n\nThis can be combined with Branch to shallow clone the branch, in which\nthe commit is expected to exist.",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the reference to check out; takes precedence over Branch, Tag and SemVer.\n\nIt must be a valid Git reference: https://git-scm.com/docs/git-check-ref-format#_description\nExamples: \"refs/heads/main\", \"refs/tags/v0.1.0\", \"refs/pull/420/head\", \"refs/merge-requests/1/head\"",
|
||||
"type": "string"
|
||||
},
|
||||
"semver": {
|
||||
"description": "SemVer tag expression to check out, takes precedence over Tag.",
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"description": "Tag to check out, takes precedence over Branch.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing authentication credentials for\nthe GitRepository.\nFor HTTPS repositories the Secret must contain 'username' and 'password'\nfields for basic auth or 'bearerToken' field for token auth.\nFor SSH repositories the Secret must contain 'identity'\nand 'known_hosts' fields.",
|
||||
"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 to the GitRepository. This field is only supported for 'azure' provider.",
|
||||
"type": "string"
|
||||
},
|
||||
"sparseCheckout": {
|
||||
"description": "SparseCheckout specifies a list of directories to checkout when cloning\nthe repository. If specified, only these directories are included in the\nArtifact produced for this GitRepository.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend the reconciliation of this\nGitRepository.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"timeout": {
|
||||
"default": "60s",
|
||||
"description": "Timeout for Git operations like cloning, defaults to 60s.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"url": {
|
||||
"description": "URL specifies the Git repository URL, it can be an HTTP/S or SSH address.",
|
||||
"pattern": "^(http|https|ssh)://.*$",
|
||||
"type": "string"
|
||||
},
|
||||
"verify": {
|
||||
"description": "Verification specifies the configuration to verify the Git commit\nsignature(s).",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"default": "HEAD",
|
||||
"description": "Mode specifies which Git object(s) should be verified.\n\nThe variants \"head\" and \"HEAD\" both imply the same thing, i.e. verify\nthe commit that the HEAD of the Git repository points to. The variant\n\"head\" solely exists to ensure backwards compatibility.",
|
||||
"enum": [
|
||||
"head",
|
||||
"HEAD",
|
||||
"Tag",
|
||||
"TagAndHEAD"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing the public keys of trusted Git\nauthors.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"secretRef"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"interval",
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"x-kubernetes-validations": [
|
||||
{
|
||||
"message": "serviceAccountName can only be set when provider is 'azure'",
|
||||
"rule": "!has(self.serviceAccountName) || (has(self.provider) && self.provider == 'azure')"
|
||||
}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "GitRepositoryStatus records the observed state of a Git repository.",
|
||||
"properties": {
|
||||
"artifact": {
|
||||
"description": "Artifact represents the last successful GitRepository 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": [
|
||||
"digest",
|
||||
"lastUpdateTime",
|
||||
"path",
|
||||
"revision",
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the GitRepository.",
|
||||
"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"
|
||||
},
|
||||
"includedArtifacts": {
|
||||
"description": "IncludedArtifacts contains a list of the last successfully included\nArtifacts as instructed by GitRepositorySpec.Include.",
|
||||
"items": {
|
||||
"description": "Artifact represents the output of a Source 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": [
|
||||
"digest",
|
||||
"lastUpdateTime",
|
||||
"path",
|
||||
"revision",
|
||||
"url"
|
||||
],
|
||||
"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 GitRepository\nobject.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"observedIgnore": {
|
||||
"description": "ObservedIgnore is the observed exclusion patterns used for constructing\nthe source artifact.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedInclude": {
|
||||
"description": "ObservedInclude is the observed list of GitRepository resources used to\nproduce the current Artifact.",
|
||||
"items": {
|
||||
"description": "GitRepositoryInclude specifies a local reference to a GitRepository which\nArtifact (sub-)contents must be included, and where they should be placed.",
|
||||
"properties": {
|
||||
"fromPath": {
|
||||
"description": "FromPath specifies the path to copy contents from, defaults to the root\nof the Artifact.",
|
||||
"type": "string"
|
||||
},
|
||||
"repository": {
|
||||
"description": "GitRepositoryRef specifies the GitRepository which Artifact contents\nmust be included.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"toPath": {
|
||||
"description": "ToPath specifies the path to copy contents to, defaults to the name of\nthe GitRepositoryRef.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"repository"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"observedRecurseSubmodules": {
|
||||
"description": "ObservedRecurseSubmodules is the observed resource submodules\nconfiguration used to produce the current Artifact.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"observedSparseCheckout": {
|
||||
"description": "ObservedSparseCheckout is the observed list of directories used to\nproduce the current Artifact.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"sourceVerificationMode": {
|
||||
"description": "SourceVerificationMode is the last used verification mode indicating\nwhich Git object(s) have been verified.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,299 @@
|
||||
{
|
||||
"description": "HelmChart is the Schema for the helmcharts 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": "HelmChartSpec specifies the desired state of a Helm chart.",
|
||||
"properties": {
|
||||
"chart": {
|
||||
"description": "Chart is the name or path the Helm chart is available at in the\nSourceRef.",
|
||||
"type": "string"
|
||||
},
|
||||
"ignoreMissingValuesFiles": {
|
||||
"description": "IgnoreMissingValuesFiles controls whether to silently ignore missing values\nfiles rather than failing.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval at which the HelmChart SourceRef 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"
|
||||
},
|
||||
"reconcileStrategy": {
|
||||
"default": "ChartVersion",
|
||||
"description": "ReconcileStrategy determines what enables the creation of a new artifact.\nValid values are ('ChartVersion', 'Revision').\nSee the documentation of the values for an explanation on their behavior.\nDefaults to ChartVersion when omitted.",
|
||||
"enum": [
|
||||
"ChartVersion",
|
||||
"Revision"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"sourceRef": {
|
||||
"description": "SourceRef is the reference to the Source the chart is available at.",
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"description": "APIVersion of the referent.",
|
||||
"type": "string"
|
||||
},
|
||||
"kind": {
|
||||
"description": "Kind of the referent, valid values are ('HelmRepository', 'GitRepository',\n'Bucket').",
|
||||
"enum": [
|
||||
"HelmRepository",
|
||||
"GitRepository",
|
||||
"Bucket"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"kind",
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"suspend": {
|
||||
"description": "Suspend tells the controller to suspend the reconciliation of this\nsource.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"valuesFiles": {
|
||||
"description": "ValuesFiles is an alternative list of values files to use as the chart\nvalues (values.yaml is not included by default), expected to be a\nrelative path in the SourceRef.\nValues files are merged in the order of this list with the last file\noverriding the first. Ignored when omitted.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"verify": {
|
||||
"description": "Verify contains the secret name containing the trusted public keys\nused to verify the signature and specifies which provider to use to check\nwhether OCI image is authentic.\nThis field is only supported when using HelmRepository source with spec.type 'oci'.\nChart dependencies, which are not bundled in the umbrella chart artifact, are not verified.",
|
||||
"properties": {
|
||||
"matchOIDCIdentity": {
|
||||
"description": "MatchOIDCIdentity specifies the identity matching criteria to use\nwhile verifying an OCI artifact which was signed using Cosign keyless\nsigning. The artifact's identity is deemed to be verified if any of the\nspecified matchers match against the identity.",
|
||||
"items": {
|
||||
"description": "OIDCIdentityMatch specifies options for verifying the certificate identity,\ni.e. the issuer and the subject of the certificate.",
|
||||
"properties": {
|
||||
"issuer": {
|
||||
"description": "Issuer specifies the regex pattern to match against to verify\nthe OIDC issuer in the Fulcio certificate. The pattern must be a\nvalid Go regular expression.",
|
||||
"type": "string"
|
||||
},
|
||||
"subject": {
|
||||
"description": "Subject specifies the regex pattern to match against to verify\nthe identity subject in the Fulcio certificate. The pattern must\nbe a valid Go regular expression.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"issuer",
|
||||
"subject"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"provider": {
|
||||
"default": "cosign",
|
||||
"description": "Provider specifies the technology used to sign the OCI Artifact.",
|
||||
"enum": [
|
||||
"cosign",
|
||||
"notation"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Kubernetes Secret containing the\ntrusted public keys.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"provider"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"version": {
|
||||
"default": "*",
|
||||
"description": "Version is the chart version semver expression, ignored for charts from\nGitRepository and Bucket sources. Defaults to latest when omitted.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"chart",
|
||||
"interval",
|
||||
"sourceRef"
|
||||
],
|
||||
"type": "object",
|
||||
"x-kubernetes-validations": [
|
||||
{
|
||||
"message": "spec.verify is only supported when spec.sourceRef.kind is 'HelmRepository'",
|
||||
"rule": "!has(self.verify) || self.sourceRef.kind == 'HelmRepository'"
|
||||
}
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "HelmChartStatus records the observed state of the HelmChart.",
|
||||
"properties": {
|
||||
"artifact": {
|
||||
"description": "Artifact represents the output of the last successful 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": [
|
||||
"digest",
|
||||
"lastUpdateTime",
|
||||
"path",
|
||||
"revision",
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the HelmChart.",
|
||||
"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"
|
||||
},
|
||||
"observedChartName": {
|
||||
"description": "ObservedChartName is the last observed chart name as specified by the\nresolved chart reference.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedGeneration": {
|
||||
"description": "ObservedGeneration is the last observed generation of the HelmChart\nobject.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"observedSourceArtifactRevision": {
|
||||
"description": "ObservedSourceArtifactRevision is the last observed Artifact.Revision\nof the HelmChartSpec.SourceRef.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedValuesFiles": {
|
||||
"description": "ObservedValuesFiles are the observed value files of the last successful\nreconciliation.\nIt matches the chart in the last successfully reconciled artifact.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
@@ -0,0 +1,256 @@
|
||||
{
|
||||
"description": "HelmRepository is the Schema for the helmrepositories 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": "HelmRepositorySpec specifies the required configuration to produce an\nArtifact for a Helm repository index YAML.",
|
||||
"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
|
||||
},
|
||||
"certSecretRef": {
|
||||
"description": "CertSecretRef can be given the name of a Secret containing\neither or both of\n\n- a PEM-encoded client certificate (`tls.crt`) and private\nkey (`tls.key`);\n- a PEM-encoded CA certificate (`ca.crt`)\n\nand whichever are supplied, will be used for connecting to the\nregistry. The client cert and key are useful if you are\nauthenticating with a certificate; the CA cert is useful if\nyou are using a self-signed server certificate. The Secret must\nbe of type `Opaque` or `kubernetes.io/tls`.\n\nIt takes precedence over the values specified in the Secret referred\nto by `.spec.secretRef`.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"insecure": {
|
||||
"description": "Insecure allows connecting to a non-TLS HTTP container registry.\nThis field is only taken into account if the .spec.type field is set to 'oci'.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval at which the HelmRepository URL 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"
|
||||
},
|
||||
"passCredentials": {
|
||||
"description": "PassCredentials allows the credentials from the SecretRef to be passed\non to a host that does not match the host as defined in URL.\nThis may be required if the host of the advertised chart URLs in the\nindex differ from the defined URL.\nEnabling this should be done with caution, as it can potentially result\nin credentials getting stolen in a MITM-attack.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"provider": {
|
||||
"default": "generic",
|
||||
"description": "Provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.\nThis field is optional, and only taken into account if the .spec.type field is set to 'oci'.\nWhen not specified, defaults to 'generic'.",
|
||||
"enum": [
|
||||
"generic",
|
||||
"aws",
|
||||
"azure",
|
||||
"gcp"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Secret containing authentication credentials\nfor the HelmRepository.\nFor HTTP/S basic auth the secret must contain 'username' and 'password'\nfields.\nSupport for TLS auth using the 'certFile' and 'keyFile', and/or 'caFile'\nkeys is deprecated. Please use `.spec.certSecretRef` instead.",
|
||||
"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\nHelmRepository.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"timeout": {
|
||||
"description": "Timeout is used for the index fetch operation for an HTTPS helm repository,\nand for remote OCI Repository operations like pulling for an OCI helm\nchart by the associated HelmChart.\nIts default value is 60s.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"description": "Type of the HelmRepository.\nWhen this field is set to \"oci\", the URL field value must be prefixed with \"oci://\".",
|
||||
"enum": [
|
||||
"default",
|
||||
"oci"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"url": {
|
||||
"description": "URL of the Helm repository, a valid URL contains at least a protocol and\nhost.",
|
||||
"pattern": "^(http|https|oci)://.*$",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "HelmRepositoryStatus records the observed state of the HelmRepository.",
|
||||
"properties": {
|
||||
"artifact": {
|
||||
"description": "Artifact represents the last successful HelmRepository 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": [
|
||||
"digest",
|
||||
"lastUpdateTime",
|
||||
"path",
|
||||
"revision",
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the HelmRepository.",
|
||||
"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 HelmRepository\nobject.",
|
||||
"format": "int64",
|
||||
"type": "integer"
|
||||
},
|
||||
"url": {
|
||||
"description": "URL is the dynamic fetch link for the latest Artifact.\nIt is provided on a \"best effort\" basis, and using the precise\nHelmRepositoryStatus.Artifact data is recommended.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
@@ -0,0 +1,361 @@
|
||||
{
|
||||
"description": "OCIRepository is the Schema for the ocirepositories 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": "OCIRepositorySpec defines the desired state of OCIRepository",
|
||||
"properties": {
|
||||
"certSecretRef": {
|
||||
"description": "CertSecretRef can be given the name of a Secret containing\neither or both of\n\n- a PEM-encoded client certificate (`tls.crt`) and private\nkey (`tls.key`);\n- a PEM-encoded CA certificate (`ca.crt`)\n\nand whichever are supplied, will be used for connecting to the\nregistry. The client cert and key are useful if you are\nauthenticating with a certificate; the CA cert is useful if\nyou are using a self-signed server certificate. The Secret must\nbe of type `Opaque` or `kubernetes.io/tls`.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"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 container registry.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"interval": {
|
||||
"description": "Interval at which the OCIRepository URL 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"
|
||||
},
|
||||
"layerSelector": {
|
||||
"description": "LayerSelector specifies which layer should be extracted from the OCI artifact.\nWhen not specified, the first layer found in the artifact is selected.",
|
||||
"properties": {
|
||||
"mediaType": {
|
||||
"description": "MediaType specifies the OCI media type of the layer\nwhich should be extracted from the OCI Artifact. The\nfirst layer matching this type is selected.",
|
||||
"type": "string"
|
||||
},
|
||||
"operation": {
|
||||
"description": "Operation specifies how the selected layer should be processed.\nBy default, the layer compressed content is extracted to storage.\nWhen the operation is set to 'copy', the layer compressed content\nis persisted to storage as it is.",
|
||||
"enum": [
|
||||
"extract",
|
||||
"copy"
|
||||
],
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"provider": {
|
||||
"default": "generic",
|
||||
"description": "The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.\nWhen not specified, defaults to 'generic'.",
|
||||
"enum": [
|
||||
"generic",
|
||||
"aws",
|
||||
"azure",
|
||||
"gcp"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"proxySecretRef": {
|
||||
"description": "ProxySecretRef specifies the Secret containing the proxy configuration\nto use while communicating with the container registry.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"ref": {
|
||||
"description": "The OCI reference to pull and monitor for changes,\ndefaults to the latest tag.",
|
||||
"properties": {
|
||||
"digest": {
|
||||
"description": "Digest is the image digest to pull, takes precedence over SemVer.\nThe value should be in the format 'sha256:<HASH>'.",
|
||||
"type": "string"
|
||||
},
|
||||
"semver": {
|
||||
"description": "SemVer is the range of tags to pull selecting the latest within\nthe range, takes precedence over Tag.",
|
||||
"type": "string"
|
||||
},
|
||||
"semverFilter": {
|
||||
"description": "SemverFilter is a regex pattern to filter the tags within the SemVer range.",
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"description": "Tag is the image tag to pull, defaults to latest.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef contains the secret name containing the registry login\ncredentials to resolve image metadata.\nThe secret must be of type kubernetes.io/dockerconfigjson.",
|
||||
"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 authenticate\nthe image pull if the service account has attached pull secrets. For more information:\nhttps://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account",
|
||||
"type": "string"
|
||||
},
|
||||
"suspend": {
|
||||
"description": "This flag tells the controller to suspend the reconciliation of this source.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"timeout": {
|
||||
"default": "60s",
|
||||
"description": "The timeout for remote OCI Repository operations like pulling, defaults to 60s.",
|
||||
"pattern": "^([0-9]+(\\.[0-9]+)?(ms|s|m))+$",
|
||||
"type": "string"
|
||||
},
|
||||
"url": {
|
||||
"description": "URL is a reference to an OCI artifact repository hosted\non a remote container registry.",
|
||||
"pattern": "^oci://.*$",
|
||||
"type": "string"
|
||||
},
|
||||
"verify": {
|
||||
"description": "Verify contains the secret name containing the trusted public keys\nused to verify the signature and specifies which provider to use to check\nwhether OCI image is authentic.",
|
||||
"properties": {
|
||||
"matchOIDCIdentity": {
|
||||
"description": "MatchOIDCIdentity specifies the identity matching criteria to use\nwhile verifying an OCI artifact which was signed using Cosign keyless\nsigning. The artifact's identity is deemed to be verified if any of the\nspecified matchers match against the identity.",
|
||||
"items": {
|
||||
"description": "OIDCIdentityMatch specifies options for verifying the certificate identity,\ni.e. the issuer and the subject of the certificate.",
|
||||
"properties": {
|
||||
"issuer": {
|
||||
"description": "Issuer specifies the regex pattern to match against to verify\nthe OIDC issuer in the Fulcio certificate. The pattern must be a\nvalid Go regular expression.",
|
||||
"type": "string"
|
||||
},
|
||||
"subject": {
|
||||
"description": "Subject specifies the regex pattern to match against to verify\nthe identity subject in the Fulcio certificate. The pattern must\nbe a valid Go regular expression.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"issuer",
|
||||
"subject"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"provider": {
|
||||
"default": "cosign",
|
||||
"description": "Provider specifies the technology used to sign the OCI Artifact.",
|
||||
"enum": [
|
||||
"cosign",
|
||||
"notation"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"secretRef": {
|
||||
"description": "SecretRef specifies the Kubernetes Secret containing the\ntrusted public keys.",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the referent.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"provider"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"interval",
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"status": {
|
||||
"default": {
|
||||
"observedGeneration": -1
|
||||
},
|
||||
"description": "OCIRepositoryStatus defines the observed state of OCIRepository",
|
||||
"properties": {
|
||||
"artifact": {
|
||||
"description": "Artifact represents the output of the last successful OCI Repository sync.",
|
||||
"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": [
|
||||
"digest",
|
||||
"lastUpdateTime",
|
||||
"path",
|
||||
"revision",
|
||||
"url"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Conditions holds the conditions for the OCIRepository.",
|
||||
"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"
|
||||
},
|
||||
"observedIgnore": {
|
||||
"description": "ObservedIgnore is the observed exclusion patterns used for constructing\nthe source artifact.",
|
||||
"type": "string"
|
||||
},
|
||||
"observedLayerSelector": {
|
||||
"description": "ObservedLayerSelector is the observed layer selector used for constructing\nthe source artifact.",
|
||||
"properties": {
|
||||
"mediaType": {
|
||||
"description": "MediaType specifies the OCI media type of the layer\nwhich should be extracted from the OCI Artifact. The\nfirst layer matching this type is selected.",
|
||||
"type": "string"
|
||||
},
|
||||
"operation": {
|
||||
"description": "Operation specifies how the selected layer should be processed.\nBy default, the layer compressed content is extracted to storage.\nWhen the operation is set to 'copy', the layer compressed content\nis persisted to storage as it is.",
|
||||
"enum": [
|
||||
"extract",
|
||||
"copy"
|
||||
],
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
},
|
||||
"url": {
|
||||
"description": "URL is the download link for the artifact output of the last OCI Repository sync.",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
Reference in New Issue
Block a user