From 7c0a9a96c13ab236cbd3539a2f0640a2d1b64289 Mon Sep 17 00:00:00 2001 From: Eyar Zilberman Date: Thu, 23 Jun 2022 11:23:10 +0300 Subject: [PATCH] update index and CRDs --- argoproj/workflowtaskresult_v1alpha1.json | 856 ++++++++++++++++++ fluxcd/helmrelease_v1.json | 417 +++++++++ fluxcd/imagepolicy_v1alpha1.json | 180 ++++ fluxcd/imagepolicy_v1alpha2.json | 180 ++++ fluxcd/imagepolicy_v1beta1.json | 187 ++++ fluxcd/imagerepository_v1alpha1.json | 160 ++++ fluxcd/imagerepository_v1alpha2.json | 160 ++++ fluxcd/imagerepository_v1beta1.json | 202 +++++ fluxcd/imageupdateautomation_v1alpha1.json | 233 +++++ fluxcd/imageupdateautomation_v1alpha2.json | 282 ++++++ fluxcd/imageupdateautomation_v1beta1.json | 289 ++++++ fluxcd/kustomization_v1beta1.json | 554 ++++++++++++ fluxcd/kustomization_v1beta2.json | 560 ++++++++++++ index.yaml | 216 ++++- .../alertmanager_v1.json | 0 .../alertmanagerconfig_v1alpha1.json | 0 .../podmonitor_v1.json | 0 .../probe_v1.json | 0 .../prometheus_v1.json | 0 .../prometheusrule_v1.json | 0 .../servicemonitor_v1.json | 0 .../thanosruler_v1.json | 0 22 files changed, 4460 insertions(+), 16 deletions(-) create mode 100644 argoproj/workflowtaskresult_v1alpha1.json create mode 100644 fluxcd/helmrelease_v1.json create mode 100644 fluxcd/imagepolicy_v1alpha1.json create mode 100644 fluxcd/imagepolicy_v1alpha2.json create mode 100644 fluxcd/imagepolicy_v1beta1.json create mode 100644 fluxcd/imagerepository_v1alpha1.json create mode 100644 fluxcd/imagerepository_v1alpha2.json create mode 100644 fluxcd/imagerepository_v1beta1.json create mode 100644 fluxcd/imageupdateautomation_v1alpha1.json create mode 100644 fluxcd/imageupdateautomation_v1alpha2.json create mode 100644 fluxcd/imageupdateautomation_v1beta1.json create mode 100644 fluxcd/kustomization_v1beta1.json create mode 100644 fluxcd/kustomization_v1beta2.json rename {prometheus => prometheus-community}/alertmanager_v1.json (100%) rename {prometheus => prometheus-community}/alertmanagerconfig_v1alpha1.json (100%) rename {prometheus => prometheus-community}/podmonitor_v1.json (100%) rename {prometheus => prometheus-community}/probe_v1.json (100%) rename {prometheus => prometheus-community}/prometheus_v1.json (100%) rename {prometheus => prometheus-community}/prometheusrule_v1.json (100%) rename {prometheus => prometheus-community}/servicemonitor_v1.json (100%) rename {prometheus => prometheus-community}/thanosruler_v1.json (100%) diff --git a/argoproj/workflowtaskresult_v1alpha1.json b/argoproj/workflowtaskresult_v1alpha1.json new file mode 100644 index 00000000..861cf13a --- /dev/null +++ b/argoproj/workflowtaskresult_v1alpha1.json @@ -0,0 +1,856 @@ +{ + "properties": { + "apiVersion": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "message": { + "type": "string" + }, + "metadata": { + "type": "object" + }, + "outputs": { + "properties": { + "artifacts": { + "items": { + "properties": { + "archive": { + "properties": { + "none": { + "type": "object" + }, + "tar": { + "properties": { + "compressionLevel": { + "format": "int32", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "zip": { + "type": "object" + } + }, + "type": "object", + "additionalProperties": false + }, + "archiveLogs": { + "type": "boolean" + }, + "artifactGC": { + "properties": { + "strategy": { + "enum": [ + "", + "OnWorkflowCompletion", + "OnWorkflowDeletion" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "artifactory": { + "properties": { + "passwordSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "url": { + "type": "string" + }, + "usernameSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "url" + ], + "type": "object", + "additionalProperties": false + }, + "deleted": { + "type": "boolean" + }, + "from": { + "type": "string" + }, + "fromExpression": { + "type": "string" + }, + "gcs": { + "properties": { + "bucket": { + "type": "string" + }, + "key": { + "type": "string" + }, + "serviceAccountKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "git": { + "properties": { + "branch": { + "type": "string" + }, + "depth": { + "format": "int64", + "type": "integer" + }, + "disableSubmodules": { + "type": "boolean" + }, + "fetch": { + "items": { + "type": "string" + }, + "type": "array" + }, + "insecureIgnoreHostKey": { + "type": "boolean" + }, + "passwordSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "repo": { + "type": "string" + }, + "revision": { + "type": "string" + }, + "singleBranch": { + "type": "boolean" + }, + "sshPrivateKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "usernameSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "repo" + ], + "type": "object", + "additionalProperties": false + }, + "globalName": { + "type": "string" + }, + "hdfs": { + "properties": { + "addresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "force": { + "type": "boolean" + }, + "hdfsUser": { + "type": "string" + }, + "krbCCacheSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "krbConfigConfigMap": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "krbKeytabSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "krbRealm": { + "type": "string" + }, + "krbServicePrincipalName": { + "type": "string" + }, + "krbUsername": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false + }, + "http": { + "properties": { + "auth": { + "properties": { + "basicAuth": { + "properties": { + "passwordSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "usernameSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "clientCert": { + "properties": { + "clientCertSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "clientKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "oauth2": { + "properties": { + "clientIDSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "clientSecretSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "endpointParams": { + "items": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "scopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokenURLSecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "headers": { + "items": { + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object", + "additionalProperties": false + }, + "mode": { + "format": "int32", + "type": "integer" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "oss": { + "properties": { + "accessKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "bucket": { + "type": "string" + }, + "createBucketIfNotPresent": { + "type": "boolean" + }, + "endpoint": { + "type": "string" + }, + "key": { + "type": "string" + }, + "lifecycleRule": { + "properties": { + "markDeletionAfterDays": { + "format": "int32", + "type": "integer" + }, + "markInfrequentAccessAfterDays": { + "format": "int32", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "secretKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "securityToken": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "path": { + "type": "string" + }, + "raw": { + "properties": { + "data": { + "type": "string" + } + }, + "required": [ + "data" + ], + "type": "object", + "additionalProperties": false + }, + "recurseMode": { + "type": "boolean" + }, + "s3": { + "properties": { + "accessKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "bucket": { + "type": "string" + }, + "createBucketIfNotPresent": { + "properties": { + "objectLocking": { + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "encryptionOptions": { + "properties": { + "enableEncryption": { + "type": "boolean" + }, + "kmsEncryptionContext": { + "type": "string" + }, + "kmsKeyId": { + "type": "string" + }, + "serverSideCustomerKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "endpoint": { + "type": "string" + }, + "insecure": { + "type": "boolean" + }, + "key": { + "type": "string" + }, + "region": { + "type": "string" + }, + "roleARN": { + "type": "string" + }, + "secretKeySecret": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "useSDKCreds": { + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "subPath": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "exitCode": { + "type": "string" + }, + "parameters": { + "items": { + "properties": { + "default": { + "type": "string" + }, + "description": { + "type": "string" + }, + "enum": { + "items": { + "type": "string" + }, + "type": "array" + }, + "globalName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueFrom": { + "properties": { + "configMapKeyRef": { + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "key" + ], + "type": "object", + "additionalProperties": false + }, + "default": { + "type": "string" + }, + "event": { + "type": "string" + }, + "expression": { + "type": "string" + }, + "jqFilter": { + "type": "string" + }, + "jsonPath": { + "type": "string" + }, + "parameter": { + "type": "string" + }, + "path": { + "type": "string" + }, + "supplied": { + "type": "object" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "result": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "phase": { + "type": "string" + }, + "progress": { + "type": "string" + } + }, + "required": [ + "metadata" + ], + "type": "object" +} diff --git a/fluxcd/helmrelease_v1.json b/fluxcd/helmrelease_v1.json new file mode 100644 index 00000000..5ade8e60 --- /dev/null +++ b/fluxcd/helmrelease_v1.json @@ -0,0 +1,417 @@ +{ + "description": "HelmRelease is a type to represent a Helm release.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "properties": { + "chart": { + "properties": { + "chartPullSecret": { + "description": "ChartPullSecret holds the reference to the authentication secret for accessing the Helm repository using HTTPS basic auth. NOT IMPLEMENTED!", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "git": { + "description": "Git URL is the URL of the Git repository, e.g. `git@github.com:org/repo`, `http://github.com/org/repo`, or `ssh://git@example.com:2222/org/repo.git`.", + "type": "string" + }, + "name": { + "description": "Name is the name of the Helm chart _without_ an alias, e.g. redis (for `helm upgrade [flags] stable/redis`).", + "type": "string" + }, + "path": { + "description": "Path is the path to the chart relative to the repository root.", + "type": "string" + }, + "ref": { + "description": "Ref is the Git branch (or other reference) to use. Defaults to 'master', or the configured default Git ref.", + "type": "string" + }, + "repository": { + "description": "RepoURL is the URL of the Helm repository, e.g. `https://kubernetes-charts.storage.googleapis.com` or `https://charts.example.com`.", + "type": "string" + }, + "secretRef": { + "description": "SecretRef holds the authentication secret for accessing the Git repository (over HTTPS). The credentials will be added to an HTTPS GitURL before the mirror is started.", + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "skipDepUpdate": { + "description": "SkipDepUpdate will tell the operator to skip running 'helm dep update' before installing or upgrading the chart, the chart dependencies _must_ be present for this to succeed.", + "type": "boolean" + }, + "version": { + "description": "Version is the targeted Helm chart version, e.g. 7.0.1.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "disableOpenAPIValidation": { + "description": "DisableOpenAPIValidation controls whether OpenAPI validation is enforced.", + "type": "boolean" + }, + "forceUpgrade": { + "description": "Force will mark this Helm release to `--force` upgrades. This forces the resource updates through delete/recreate if needed.", + "type": "boolean" + }, + "helmVersion": { + "description": "HelmVersion is the version of Helm to target. If not supplied, the lowest _enabled Helm version_ will be targeted. Valid HelmVersion values are: \"v2\", \"v3\"", + "enum": [ + "v2", + "v3" + ], + "type": "string" + }, + "maxHistory": { + "description": "MaxHistory is the maximum amount of revisions to keep for the Helm release. If not supplied, it defaults to 10.", + "type": "integer" + }, + "releaseName": { + "description": "ReleaseName is the name of the The Helm release. If not supplied, it will be generated by affixing the namespace to the resource name.", + "type": "string" + }, + "resetValues": { + "description": "ResetValues will mark this Helm release to reset the values to the defaults of the targeted chart before performing an upgrade. Not explicitly setting this to `false` equals to `true` due to the declarative nature of the operator.", + "type": "boolean" + }, + "rollback": { + "description": "The rollback settings for this Helm release.", + "properties": { + "disableHooks": { + "description": "DisableHooks will mark this Helm release to prevent hooks from running during the rollback.", + "type": "boolean" + }, + "enable": { + "description": "Enable will mark this Helm release for rollbacks.", + "type": "boolean" + }, + "force": { + "description": "Force will mark this Helm release to `--force` rollbacks. This forces the resource updates through delete/recreate if needed.", + "type": "boolean" + }, + "maxRetries": { + "description": "MaxRetries is the maximum amount of upgrade retries the operator should make before bailing.", + "format": "int64", + "type": "integer" + }, + "recreate": { + "description": "Recreate will mark this Helm release to `--recreate-pods` for if applicable. This performs pod restarts.", + "type": "boolean" + }, + "retry": { + "description": "Retry will mark this Helm release for upgrade retries after a rollback.", + "type": "boolean" + }, + "timeout": { + "description": "Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during rollback.", + "format": "int64", + "type": "integer" + }, + "wait": { + "description": "Wait will mark this Helm release to wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful.", + "type": "boolean" + } + }, + "type": "object", + "additionalProperties": false + }, + "skipCRDs": { + "description": "SkipCRDs will mark this Helm release to skip the creation of CRDs during a Helm 3 installation.", + "type": "boolean" + }, + "targetNamespace": { + "description": "TargetNamespace overrides the targeted namespace for the Helm release. The default namespace equals to the namespace of the HelmRelease resource.", + "type": "string" + }, + "test": { + "description": "The test settings for this Helm release.", + "properties": { + "cleanup": { + "description": "Cleanup, when targeting Helm 2, determines whether to delete test pods between each test run initiated by the Helm Operator.", + "type": "boolean" + }, + "enable": { + "description": "Enable will mark this Helm release for tests.", + "type": "boolean" + }, + "ignoreFailures": { + "description": "IgnoreFailures will cause a Helm release to be rolled back if it fails otherwise it will be left in a released state", + "type": "boolean" + }, + "timeout": { + "description": "Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during test.", + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "timeout": { + "description": "Timeout is the time to wait for any individual Kubernetes operation (like Jobs for hooks) during installation and upgrade operations.", + "format": "int64", + "type": "integer" + }, + "valueFileSecrets": { + "description": "ValueFileSecrets holds the local name references to secrets. DEPRECATED, use ValuesFrom.secretKeyRef instead.", + "items": { + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "values": { + "description": "Values holds the values for this Helm release.", + "x-kubernetes-preserve-unknown-fields": true + }, + "valuesFrom": { + "items": { + "properties": { + "chartFileRef": { + "description": "The reference to a local chart file with release values.", + "properties": { + "optional": { + "description": "Optional will mark this ChartFileSelector as optional. The result of this are that operations are permitted without the source, due to it e.g. being temporarily unavailable.", + "type": "boolean" + }, + "path": { + "description": "Path is the file path to the source relative to the chart root.", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false + }, + "configMapKeyRef": { + "description": "The reference to a config map with release values.", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "externalSourceRef": { + "description": "The reference to an external source with release values.", + "properties": { + "optional": { + "description": "Optional will mark this ExternalSourceSelector as optional. The result of this are that operations are permitted without the source, due to it e.g. being temporarily unavailable.", + "type": "boolean" + }, + "url": { + "description": "URL is the URL of the external source.", + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object", + "additionalProperties": false + }, + "secretKeyRef": { + "description": "The reference to a secret with release values.", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "optional": { + "type": "boolean" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "wait": { + "description": "Wait will mark this Helm release to wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful.", + "type": "boolean" + } + }, + "required": [ + "chart" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "HelmReleaseStatus contains status information about an HelmRelease.", + "properties": { + "conditions": { + "description": "Conditions contains observations of the resource's state, e.g., has the chart which it refers to been fetched.", + "items": { + "properties": { + "lastTransitionTime": { + "description": "LastTransitionTime is the timestamp corresponding to the last status change of this condition.", + "format": "date-time", + "type": "string" + }, + "lastUpdateTime": { + "description": "LastUpdateTime is the timestamp corresponding to the last status update of this condition.", + "format": "date-time", + "type": "string" + }, + "message": { + "description": "Message is a human readable description of the details of the last transition, complementing reason.", + "type": "string" + }, + "reason": { + "description": "Reason is a brief machine readable explanation for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of ('True', 'False', 'Unknown').", + "enum": [ + "True", + "False", + "Unknown" + ], + "type": "string" + }, + "type": { + "description": "Type of the condition, one of ('ChartFetched', 'Deployed', 'Released', 'RolledBack', 'Tested').", + "enum": [ + "ChartFetched", + "Deployed", + "Released", + "RolledBack", + "Tested" + ], + "type": "string" + } + }, + "required": [ + "status", + "type" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "lastAttemptedRevision": { + "description": "LastAttemptedRevision is the revision of the latest chart sync, and may be of a failed release.", + "type": "string" + }, + "observedGeneration": { + "description": "ObservedGeneration is the most recent generation observed by the operator.", + "format": "int64", + "type": "integer" + }, + "phase": { + "description": "Phase the release is in, one of ('ChartFetched', 'ChartFetchFailed', 'Installing', 'Upgrading', 'Deployed', 'DeployFailed', 'Testing', 'TestFailed', 'Tested', 'Succeeded', 'RollingBack', 'RolledBack', 'RollbackFailed')", + "enum": [ + "ChartFetched", + "ChartFetchFailed", + "Installing", + "Upgrading", + "Deployed", + "DeployFailed", + "Testing", + "TestFailed", + "Tested", + "Succeeded", + "Failed", + "RollingBack", + "RolledBack", + "RollbackFailed" + ], + "type": "string" + }, + "releaseName": { + "description": "ReleaseName is the name as either supplied or generated.", + "type": "string" + }, + "releaseStatus": { + "description": "ReleaseStatus is the status as given by Helm for the release managed by this resource.", + "type": "string" + }, + "revision": { + "description": "Revision holds the Git hash or version of the chart currently deployed.", + "type": "string" + }, + "rollbackCount": { + "description": "RollbackCount records the amount of rollback attempts made, it is incremented after a rollback failure and reset after a successful upgrade or revision change.", + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "metadata", + "spec" + ], + "type": "object" +} diff --git a/fluxcd/imagepolicy_v1alpha1.json b/fluxcd/imagepolicy_v1alpha1.json new file mode 100644 index 00000000..4d48524f --- /dev/null +++ b/fluxcd/imagepolicy_v1alpha1.json @@ -0,0 +1,180 @@ +{ + "description": "ImagePolicy is the Schema for the imagepolicies API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImagePolicySpec defines the parameters for calculating the ImagePolicy", + "properties": { + "filterTags": { + "description": "FilterTags enables filtering for only a subset of tags based on a set of rules. If no rules are provided, all the tags from the repository will be ordered and compared.", + "properties": { + "extract": { + "description": "Extract allows a capture group to be extracted from the specified regular expression pattern, useful before tag evaluation.", + "type": "string" + }, + "pattern": { + "description": "Pattern specifies a regular expression pattern used to filter for image tags.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "imageRepositoryRef": { + "description": "ImageRepositoryRef points at the object specifying the image being scanned", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "policy": { + "description": "Policy gives the particulars of the policy to be followed in selecting the most recent image", + "properties": { + "alphabetical": { + "description": "Alphabetical set of rules to use for alphabetical ordering of the tags.", + "properties": { + "order": { + "default": "asc", + "description": "Order specifies the sorting order of the tags. Given the letters of the alphabet as tags, ascending order would select Z, and descending order would select A.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "numerical": { + "description": "Numerical set of rules to use for numerical ordering of the tags.", + "properties": { + "order": { + "default": "asc", + "description": "Order specifies the sorting order of the tags. Given the integer values from 0 to 9 as tags, ascending order would select 9, and descending order would select 0.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "semver": { + "description": "SemVer gives a semantic version range to check against the tags available.", + "properties": { + "range": { + "description": "Range gives a semver range for the image tag; the highest version within the range that's a tag yields the latest image.", + "type": "string" + } + }, + "required": [ + "range" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "imageRepositoryRef", + "policy" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "ImagePolicyStatus defines the observed state of ImagePolicy", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "latestImage": { + "description": "LatestImage gives the first in the list of images scanned by the image repository, when filtered and ordered according to the policy.", + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imagepolicy_v1alpha2.json b/fluxcd/imagepolicy_v1alpha2.json new file mode 100644 index 00000000..4d48524f --- /dev/null +++ b/fluxcd/imagepolicy_v1alpha2.json @@ -0,0 +1,180 @@ +{ + "description": "ImagePolicy is the Schema for the imagepolicies API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImagePolicySpec defines the parameters for calculating the ImagePolicy", + "properties": { + "filterTags": { + "description": "FilterTags enables filtering for only a subset of tags based on a set of rules. If no rules are provided, all the tags from the repository will be ordered and compared.", + "properties": { + "extract": { + "description": "Extract allows a capture group to be extracted from the specified regular expression pattern, useful before tag evaluation.", + "type": "string" + }, + "pattern": { + "description": "Pattern specifies a regular expression pattern used to filter for image tags.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "imageRepositoryRef": { + "description": "ImageRepositoryRef points at the object specifying the image being scanned", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "policy": { + "description": "Policy gives the particulars of the policy to be followed in selecting the most recent image", + "properties": { + "alphabetical": { + "description": "Alphabetical set of rules to use for alphabetical ordering of the tags.", + "properties": { + "order": { + "default": "asc", + "description": "Order specifies the sorting order of the tags. Given the letters of the alphabet as tags, ascending order would select Z, and descending order would select A.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "numerical": { + "description": "Numerical set of rules to use for numerical ordering of the tags.", + "properties": { + "order": { + "default": "asc", + "description": "Order specifies the sorting order of the tags. Given the integer values from 0 to 9 as tags, ascending order would select 9, and descending order would select 0.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "semver": { + "description": "SemVer gives a semantic version range to check against the tags available.", + "properties": { + "range": { + "description": "Range gives a semver range for the image tag; the highest version within the range that's a tag yields the latest image.", + "type": "string" + } + }, + "required": [ + "range" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "imageRepositoryRef", + "policy" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "ImagePolicyStatus defines the observed state of ImagePolicy", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "latestImage": { + "description": "LatestImage gives the first in the list of images scanned by the image repository, when filtered and ordered according to the policy.", + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imagepolicy_v1beta1.json b/fluxcd/imagepolicy_v1beta1.json new file mode 100644 index 00000000..f0a2f5ec --- /dev/null +++ b/fluxcd/imagepolicy_v1beta1.json @@ -0,0 +1,187 @@ +{ + "description": "ImagePolicy is the Schema for the imagepolicies API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImagePolicySpec defines the parameters for calculating the ImagePolicy", + "properties": { + "filterTags": { + "description": "FilterTags enables filtering for only a subset of tags based on a set of rules. If no rules are provided, all the tags from the repository will be ordered and compared.", + "properties": { + "extract": { + "description": "Extract allows a capture group to be extracted from the specified regular expression pattern, useful before tag evaluation.", + "type": "string" + }, + "pattern": { + "description": "Pattern specifies a regular expression pattern used to filter for image tags.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "imageRepositoryRef": { + "description": "ImageRepositoryRef points at the object specifying the image being scanned", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent, when not specified it acts as LocalObjectReference.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "policy": { + "description": "Policy gives the particulars of the policy to be followed in selecting the most recent image", + "properties": { + "alphabetical": { + "description": "Alphabetical set of rules to use for alphabetical ordering of the tags.", + "properties": { + "order": { + "default": "asc", + "description": "Order specifies the sorting order of the tags. Given the letters of the alphabet as tags, ascending order would select Z, and descending order would select A.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "numerical": { + "description": "Numerical set of rules to use for numerical ordering of the tags.", + "properties": { + "order": { + "default": "asc", + "description": "Order specifies the sorting order of the tags. Given the integer values from 0 to 9 as tags, ascending order would select 9, and descending order would select 0.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "semver": { + "description": "SemVer gives a semantic version range to check against the tags available.", + "properties": { + "range": { + "description": "Range gives a semver range for the image tag; the highest version within the range that's a tag yields the latest image.", + "type": "string" + } + }, + "required": [ + "range" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "imageRepositoryRef", + "policy" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "default": { + "observedGeneration": -1 + }, + "description": "ImagePolicyStatus defines the observed state of ImagePolicy", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "latestImage": { + "description": "LatestImage gives the first in the list of images scanned by the image repository, when filtered and ordered according to the policy.", + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imagerepository_v1alpha1.json b/fluxcd/imagerepository_v1alpha1.json new file mode 100644 index 00000000..a3779836 --- /dev/null +++ b/fluxcd/imagerepository_v1alpha1.json @@ -0,0 +1,160 @@ +{ + "description": "ImageRepository is the Schema for the imagerepositories API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImageRepositorySpec defines the parameters for scanning an image repository, e.g., `fluxcd/flux`.", + "properties": { + "certSecretRef": { + "description": "CertSecretRef can be given the name of a secret containing either or both of \n - a PEM-encoded client certificate (`certFile`) and private key (`keyFile`); - a PEM-encoded CA certificate (`caFile`) \n and whichever are supplied, will be used for connecting to the registry. The client cert and key are useful if you are authenticating with a certificate; the CA cert is useful if you are using a self-signed server certificate.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "image": { + "description": "Image is the name of the image repository", + "type": "string" + }, + "interval": { + "description": "Interval is the length of time to wait between scans of the image repository.", + "type": "string" + }, + "secretRef": { + "description": "SecretRef can be given the name of a secret containing credentials to use for the image registry. The secret should be created with `kubectl create secret docker-registry`, or the equivalent.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "suspend": { + "description": "This flag tells the controller to suspend subsequent image scans. It does not apply to already started scans. Defaults to false.", + "type": "boolean" + }, + "timeout": { + "description": "Timeout for image scanning. Defaults to 'Interval' duration.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "ImageRepositoryStatus defines the observed state of ImageRepository", + "properties": { + "canonicalImageName": { + "description": "CanonicalName is the name of the image repository with all the implied bits made explicit; e.g., `docker.io/library/alpine` rather than `alpine`.", + "type": "string" + }, + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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 reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "lastScanResult": { + "description": "LastScanResult contains the number of fetched tags.", + "properties": { + "scanTime": { + "format": "date-time", + "type": "string" + }, + "tagCount": { + "type": "integer" + } + }, + "required": [ + "tagCount" + ], + "type": "object", + "additionalProperties": false + }, + "observedGeneration": { + "description": "ObservedGeneration is the last reconciled generation.", + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imagerepository_v1alpha2.json b/fluxcd/imagerepository_v1alpha2.json new file mode 100644 index 00000000..a3779836 --- /dev/null +++ b/fluxcd/imagerepository_v1alpha2.json @@ -0,0 +1,160 @@ +{ + "description": "ImageRepository is the Schema for the imagerepositories API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImageRepositorySpec defines the parameters for scanning an image repository, e.g., `fluxcd/flux`.", + "properties": { + "certSecretRef": { + "description": "CertSecretRef can be given the name of a secret containing either or both of \n - a PEM-encoded client certificate (`certFile`) and private key (`keyFile`); - a PEM-encoded CA certificate (`caFile`) \n and whichever are supplied, will be used for connecting to the registry. The client cert and key are useful if you are authenticating with a certificate; the CA cert is useful if you are using a self-signed server certificate.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "image": { + "description": "Image is the name of the image repository", + "type": "string" + }, + "interval": { + "description": "Interval is the length of time to wait between scans of the image repository.", + "type": "string" + }, + "secretRef": { + "description": "SecretRef can be given the name of a secret containing credentials to use for the image registry. The secret should be created with `kubectl create secret docker-registry`, or the equivalent.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "suspend": { + "description": "This flag tells the controller to suspend subsequent image scans. It does not apply to already started scans. Defaults to false.", + "type": "boolean" + }, + "timeout": { + "description": "Timeout for image scanning. Defaults to 'Interval' duration.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "ImageRepositoryStatus defines the observed state of ImageRepository", + "properties": { + "canonicalImageName": { + "description": "CanonicalName is the name of the image repository with all the implied bits made explicit; e.g., `docker.io/library/alpine` rather than `alpine`.", + "type": "string" + }, + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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 reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "lastScanResult": { + "description": "LastScanResult contains the number of fetched tags.", + "properties": { + "scanTime": { + "format": "date-time", + "type": "string" + }, + "tagCount": { + "type": "integer" + } + }, + "required": [ + "tagCount" + ], + "type": "object", + "additionalProperties": false + }, + "observedGeneration": { + "description": "ObservedGeneration is the last reconciled generation.", + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imagerepository_v1beta1.json b/fluxcd/imagerepository_v1beta1.json new file mode 100644 index 00000000..a78ae5fc --- /dev/null +++ b/fluxcd/imagerepository_v1beta1.json @@ -0,0 +1,202 @@ +{ + "description": "ImageRepository is the Schema for the imagerepositories API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImageRepositorySpec defines the parameters for scanning an image repository, e.g., `fluxcd/flux`.", + "properties": { + "accessFrom": { + "description": "AccessFrom defines an ACL for allowing cross-namespace references to the ImageRepository object based on the caller's namespace labels.", + "properties": { + "namespaceSelectors": { + "description": "NamespaceSelectors is the list of namespace selectors to which this ACL applies. Items in this list are evaluated using a logical OR operation.", + "items": { + "description": "NamespaceSelector selects the namespaces to which this ACL applies. An 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 map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator 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 either or both of \n - a PEM-encoded client certificate (`certFile`) and private key (`keyFile`); - a PEM-encoded CA certificate (`caFile`) \n and whichever are supplied, will be used for connecting to the registry. The client cert and key are useful if you are authenticating with a certificate; the CA cert is useful if you are using a self-signed server certificate.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "exclusionList": { + "description": "ExclusionList is a list of regex strings used to exclude certain tags from being stored in the database.", + "items": { + "type": "string" + }, + "type": "array" + }, + "image": { + "description": "Image is the name of the image repository", + "type": "string" + }, + "interval": { + "description": "Interval is the length of time to wait between scans of the image repository.", + "type": "string" + }, + "secretRef": { + "description": "SecretRef can be given the name of a secret containing credentials to use for the image registry. The secret should be created with `kubectl create secret docker-registry`, or the equivalent.", + "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 the image pull if the service account has attached pull secrets.", + "type": "string" + }, + "suspend": { + "description": "This flag tells the controller to suspend subsequent image scans. It does not apply to already started scans. Defaults to false.", + "type": "boolean" + }, + "timeout": { + "description": "Timeout for image scanning. Defaults to 'Interval' duration.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "status": { + "default": { + "observedGeneration": -1 + }, + "description": "ImageRepositoryStatus defines the observed state of ImageRepository", + "properties": { + "canonicalImageName": { + "description": "CanonicalName is the name of the image repository with all the implied bits made explicit; e.g., `docker.io/library/alpine` rather than `alpine`.", + "type": "string" + }, + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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 reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "lastScanResult": { + "description": "LastScanResult contains the number of fetched tags.", + "properties": { + "scanTime": { + "format": "date-time", + "type": "string" + }, + "tagCount": { + "type": "integer" + } + }, + "required": [ + "tagCount" + ], + "type": "object", + "additionalProperties": false + }, + "observedGeneration": { + "description": "ObservedGeneration is the last reconciled generation.", + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imageupdateautomation_v1alpha1.json b/fluxcd/imageupdateautomation_v1alpha1.json new file mode 100644 index 00000000..f947b85b --- /dev/null +++ b/fluxcd/imageupdateautomation_v1alpha1.json @@ -0,0 +1,233 @@ +{ + "description": "ImageUpdateAutomation is the Schema for the imageupdateautomations API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImageUpdateAutomationSpec defines the desired state of ImageUpdateAutomation", + "properties": { + "checkout": { + "description": "Checkout gives the parameters for cloning the git repository, ready to make changes.", + "properties": { + "branch": { + "description": "Branch gives the branch to clone from the git repository. If `.spec.push` is not supplied, commits will also be pushed to this branch.", + "type": "string" + }, + "gitRepositoryRef": { + "description": "GitRepositoryRef refers to the resource giving access details to a git repository to update files in.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "branch", + "gitRepositoryRef" + ], + "type": "object", + "additionalProperties": false + }, + "commit": { + "description": "Commit specifies how to commit to the git repository.", + "properties": { + "authorEmail": { + "description": "AuthorEmail gives the email to provide when making a commit", + "type": "string" + }, + "authorName": { + "description": "AuthorName gives the name to provide when making a commit", + "type": "string" + }, + "messageTemplate": { + "description": "MessageTemplate provides a template for the commit message, into which will be interpolated the details of the change made.", + "type": "string" + }, + "signingKey": { + "description": "SigningKey provides the option to sign commits with a GPG key", + "properties": { + "secretRef": { + "description": "SecretRef holds the name to a secret that contains a 'git.asc' key corresponding to the ASCII Armored file containing the GPG signing keypair as the value. It must be in the same namespace as the ImageUpdateAutomation.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "authorEmail", + "authorName" + ], + "type": "object", + "additionalProperties": false + }, + "interval": { + "description": "Interval gives an lower bound for how often the automation run should be attempted.", + "type": "string" + }, + "push": { + "description": "Push specifies how and where to push commits made by the automation. If missing, commits are pushed (back) to `.spec.checkout.branch`.", + "properties": { + "branch": { + "description": "Branch specifies that commits should be pushed to the branch named. The branch is created using `.spec.checkout.branch` as the starting point, if it doesn't already exist.", + "type": "string" + } + }, + "required": [ + "branch" + ], + "type": "object", + "additionalProperties": false + }, + "suspend": { + "description": "Suspend tells the controller to not run this automation, until it is unset (or set to false). Defaults to false.", + "type": "boolean" + }, + "update": { + "default": { + "strategy": "Setters" + }, + "description": "Update gives the specification for how to update the files in the repository. This can be left empty, to use the default value.", + "properties": { + "path": { + "description": "Path to the directory containing the manifests to be updated. Defaults to 'None', which translates to the root path of the GitRepositoryRef.", + "type": "string" + }, + "strategy": { + "default": "Setters", + "description": "Strategy names the strategy to be used.", + "enum": [ + "Setters" + ], + "type": "string" + } + }, + "required": [ + "strategy" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "checkout", + "commit", + "interval" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "ImageUpdateAutomationStatus defines the observed state of ImageUpdateAutomation", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "lastAutomationRunTime": { + "description": "LastAutomationRunTime records the last time the controller ran this automation through to completion (even if no updates were made).", + "format": "date-time", + "type": "string" + }, + "lastHandledReconcileAt": { + "description": "LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "lastPushCommit": { + "description": "LastPushCommit records the SHA1 of the last commit made by the controller, for this automation object", + "type": "string" + }, + "lastPushTime": { + "description": "LastPushTime records the time of the last pushed change.", + "format": "date-time", + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imageupdateautomation_v1alpha2.json b/fluxcd/imageupdateautomation_v1alpha2.json new file mode 100644 index 00000000..c28907bf --- /dev/null +++ b/fluxcd/imageupdateautomation_v1alpha2.json @@ -0,0 +1,282 @@ +{ + "description": "ImageUpdateAutomation is the Schema for the imageupdateautomations API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImageUpdateAutomationSpec defines the desired state of ImageUpdateAutomation", + "properties": { + "git": { + "description": "GitSpec contains all the git-specific definitions. This is technically optional, but in practice mandatory until there are other kinds of source allowed.", + "properties": { + "checkout": { + "description": "Checkout gives the parameters for cloning the git repository, ready to make changes. If not present, the `spec.ref` field from the referenced `GitRepository` or its default will be used.", + "properties": { + "ref": { + "description": "Reference gives a branch, tag or commit to clone from the Git repository.", + "properties": { + "branch": { + "description": "The Git branch to checkout, defaults to master.", + "type": "string" + }, + "commit": { + "description": "The Git commit SHA to checkout, if specified Tag filters will be ignored.", + "type": "string" + }, + "semver": { + "description": "The Git tag semver expression, takes precedence over Tag.", + "type": "string" + }, + "tag": { + "description": "The Git tag to checkout, takes precedence over Branch.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "ref" + ], + "type": "object", + "additionalProperties": false + }, + "commit": { + "description": "Commit specifies how to commit to the git repository.", + "properties": { + "author": { + "description": "Author gives the email and optionally the name to use as the author of commits.", + "properties": { + "email": { + "description": "Email gives the email to provide when making a commit.", + "type": "string" + }, + "name": { + "description": "Name gives the name to provide when making a commit.", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object", + "additionalProperties": false + }, + "messageTemplate": { + "description": "MessageTemplate provides a template for the commit message, into which will be interpolated the details of the change made.", + "type": "string" + }, + "signingKey": { + "description": "SigningKey provides the option to sign commits with a GPG key", + "properties": { + "secretRef": { + "description": "SecretRef holds the name to a secret that contains a 'git.asc' key corresponding to the ASCII Armored file containing the GPG signing keypair as the value. It must be in the same namespace as the ImageUpdateAutomation.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "author" + ], + "type": "object", + "additionalProperties": false + }, + "push": { + "description": "Push specifies how and where to push commits made by the automation. If missing, commits are pushed (back) to `.spec.checkout.branch` or its default.", + "properties": { + "branch": { + "description": "Branch specifies that commits should be pushed to the branch named. The branch is created using `.spec.checkout.branch` as the starting point, if it doesn't already exist.", + "type": "string" + } + }, + "required": [ + "branch" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "commit" + ], + "type": "object", + "additionalProperties": false + }, + "interval": { + "description": "Interval gives an lower bound for how often the automation run should be attempted.", + "type": "string" + }, + "sourceRef": { + "description": "SourceRef refers to the resource giving access details to a git repository.", + "properties": { + "apiVersion": { + "description": "API version of the referent", + "type": "string" + }, + "kind": { + "default": "GitRepository", + "description": "Kind of the referent", + "enum": [ + "GitRepository" + ], + "type": "string" + }, + "name": { + "description": "Name of the referent", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "suspend": { + "description": "Suspend tells the controller to not run this automation, until it is unset (or set to false). Defaults to false.", + "type": "boolean" + }, + "update": { + "default": { + "strategy": "Setters" + }, + "description": "Update gives the specification for how to update the files in the repository. This can be left empty, to use the default value.", + "properties": { + "path": { + "description": "Path to the directory containing the manifests to be updated. Defaults to 'None', which translates to the root path of the GitRepositoryRef.", + "type": "string" + }, + "strategy": { + "default": "Setters", + "description": "Strategy names the strategy to be used.", + "enum": [ + "Setters" + ], + "type": "string" + } + }, + "required": [ + "strategy" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "interval", + "sourceRef" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "description": "ImageUpdateAutomationStatus defines the observed state of ImageUpdateAutomation", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "lastAutomationRunTime": { + "description": "LastAutomationRunTime records the last time the controller ran this automation through to completion (even if no updates were made).", + "format": "date-time", + "type": "string" + }, + "lastHandledReconcileAt": { + "description": "LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "lastPushCommit": { + "description": "LastPushCommit records the SHA1 of the last commit made by the controller, for this automation object", + "type": "string" + }, + "lastPushTime": { + "description": "LastPushTime records the time of the last pushed change.", + "format": "date-time", + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/imageupdateautomation_v1beta1.json b/fluxcd/imageupdateautomation_v1beta1.json new file mode 100644 index 00000000..1c52b067 --- /dev/null +++ b/fluxcd/imageupdateautomation_v1beta1.json @@ -0,0 +1,289 @@ +{ + "description": "ImageUpdateAutomation is the Schema for the imageupdateautomations API", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ImageUpdateAutomationSpec defines the desired state of ImageUpdateAutomation", + "properties": { + "git": { + "description": "GitSpec contains all the git-specific definitions. This is technically optional, but in practice mandatory until there are other kinds of source allowed.", + "properties": { + "checkout": { + "description": "Checkout gives the parameters for cloning the git repository, ready to make changes. If not present, the `spec.ref` field from the referenced `GitRepository` or its default will be used.", + "properties": { + "ref": { + "description": "Reference gives a branch, tag or commit to clone from the Git repository.", + "properties": { + "branch": { + "description": "Branch to check out, defaults to 'master' if no other field is defined. \n When GitRepositorySpec.GitImplementation is set to 'go-git', a shallow clone of the specified branch is performed.", + "type": "string" + }, + "commit": { + "description": "Commit SHA to check out, takes precedence over all reference fields. \n When GitRepositorySpec.GitImplementation is set to 'go-git', this can be combined with Branch to shallow clone the branch, in which the commit is expected to exist.", + "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 + } + }, + "required": [ + "ref" + ], + "type": "object", + "additionalProperties": false + }, + "commit": { + "description": "Commit specifies how to commit to the git repository.", + "properties": { + "author": { + "description": "Author gives the email and optionally the name to use as the author of commits.", + "properties": { + "email": { + "description": "Email gives the email to provide when making a commit.", + "type": "string" + }, + "name": { + "description": "Name gives the name to provide when making a commit.", + "type": "string" + } + }, + "required": [ + "email" + ], + "type": "object", + "additionalProperties": false + }, + "messageTemplate": { + "description": "MessageTemplate provides a template for the commit message, into which will be interpolated the details of the change made.", + "type": "string" + }, + "signingKey": { + "description": "SigningKey provides the option to sign commits with a GPG key", + "properties": { + "secretRef": { + "description": "SecretRef holds the name to a secret that contains a 'git.asc' key corresponding to the ASCII Armored file containing the GPG signing keypair as the value. It must be in the same namespace as the ImageUpdateAutomation.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "author" + ], + "type": "object", + "additionalProperties": false + }, + "push": { + "description": "Push specifies how and where to push commits made by the automation. If missing, commits are pushed (back) to `.spec.checkout.branch` or its default.", + "properties": { + "branch": { + "description": "Branch specifies that commits should be pushed to the branch named. The branch is created using `.spec.checkout.branch` as the starting point, if it doesn't already exist.", + "type": "string" + } + }, + "required": [ + "branch" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "commit" + ], + "type": "object", + "additionalProperties": false + }, + "interval": { + "description": "Interval gives an lower bound for how often the automation run should be attempted.", + "type": "string" + }, + "sourceRef": { + "description": "SourceRef refers to the resource giving access details to a git repository.", + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "kind": { + "default": "GitRepository", + "description": "Kind of the referent.", + "enum": [ + "GitRepository" + ], + "type": "string" + }, + "name": { + "description": "Name of the referent.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent, defaults to the namespace of the Kubernetes resource object that contains the reference.", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "suspend": { + "description": "Suspend tells the controller to not run this automation, until it is unset (or set to false). Defaults to false.", + "type": "boolean" + }, + "update": { + "default": { + "strategy": "Setters" + }, + "description": "Update gives the specification for how to update the files in the repository. This can be left empty, to use the default value.", + "properties": { + "path": { + "description": "Path to the directory containing the manifests to be updated. Defaults to 'None', which translates to the root path of the GitRepositoryRef.", + "type": "string" + }, + "strategy": { + "default": "Setters", + "description": "Strategy names the strategy to be used.", + "enum": [ + "Setters" + ], + "type": "string" + } + }, + "required": [ + "strategy" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "interval", + "sourceRef" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "default": { + "observedGeneration": -1 + }, + "description": "ImageUpdateAutomationStatus defines the observed state of ImageUpdateAutomation", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "lastAutomationRunTime": { + "description": "LastAutomationRunTime records the last time the controller ran this automation through to completion (even if no updates were made).", + "format": "date-time", + "type": "string" + }, + "lastHandledReconcileAt": { + "description": "LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "lastPushCommit": { + "description": "LastPushCommit records the SHA1 of the last commit made by the controller, for this automation object", + "type": "string" + }, + "lastPushTime": { + "description": "LastPushTime records the time of the last pushed change.", + "format": "date-time", + "type": "string" + }, + "observedGeneration": { + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/kustomization_v1beta1.json b/fluxcd/kustomization_v1beta1.json new file mode 100644 index 00000000..3a07cd16 --- /dev/null +++ b/fluxcd/kustomization_v1beta1.json @@ -0,0 +1,554 @@ +{ + "description": "Kustomization is the Schema for the kustomizations API.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "KustomizationSpec defines the desired state of a kustomization.", + "properties": { + "decryption": { + "description": "Decrypt Kubernetes secrets before applying them on the cluster.", + "properties": { + "provider": { + "description": "Provider is the name of the decryption engine.", + "enum": [ + "sops" + ], + "type": "string" + }, + "secretRef": { + "description": "The secret name containing the private OpenPGP keys used for decryption.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "provider" + ], + "type": "object", + "additionalProperties": false + }, + "dependsOn": { + "description": "DependsOn may contain a meta.NamespacedObjectReference slice with references to Kustomization resources that must be ready before this Kustomization can be reconciled.", + "items": { + "description": "NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent, when not specified it acts as LocalObjectReference.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "force": { + "default": false, + "description": "Force instructs the controller to recreate resources when patching fails due to an immutable field change.", + "type": "boolean" + }, + "healthChecks": { + "description": "A list of resources to be included in the health assessment.", + "items": { + "description": "NamespacedObjectKindReference contains enough information to locate the typed referenced Kubernetes resource object in any namespace.", + "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": "array" + }, + "images": { + "description": "Images is a list of (image name, new name, new tag or digest) for changing image names, tags or digests. This can also be achieved with a patch, but this operator is simpler to specify.", + "items": { + "description": "Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag.", + "properties": { + "digest": { + "description": "Digest is the value used to replace the original image tag. If digest is present NewTag value is ignored.", + "type": "string" + }, + "name": { + "description": "Name is a tag-less image name.", + "type": "string" + }, + "newName": { + "description": "NewName is the value used to replace the original name.", + "type": "string" + }, + "newTag": { + "description": "NewTag is the value used to replace the original tag.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "interval": { + "description": "The interval at which to reconcile the Kustomization.", + "type": "string" + }, + "kubeConfig": { + "description": "The KubeConfig for reconciling the Kustomization on a remote cluster. When specified, KubeConfig takes precedence over ServiceAccountName.", + "properties": { + "secretRef": { + "description": "SecretRef holds the name to a secret that contains a 'value' key with the kubeconfig file as the value. It must be in the same namespace as the Kustomization. It is recommended that the kubeconfig is self-contained, and the secret is regularly updated if credentials such as a cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without adding binaries and credentials to the Pod that is responsible for reconciling the Kustomization.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "patches": { + "description": "Strategic merge and JSON patches, defined as inline YAML objects, capable of targeting objects based on kind, label and annotation selectors.", + "items": { + "description": "Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should be applied to.", + "properties": { + "patch": { + "description": "Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with an array of operation objects.", + "type": "string" + }, + "target": { + "description": "Target points to the resources that the patch document should be applied to.", + "properties": { + "annotationSelector": { + "description": "AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations.", + "type": "string" + }, + "group": { + "description": "Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "kind": { + "description": "Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "labelSelector": { + "description": "LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels.", + "type": "string" + }, + "name": { + "description": "Name to match resources with.", + "type": "string" + }, + "namespace": { + "description": "Namespace to select resources from.", + "type": "string" + }, + "version": { + "description": "Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "patchesJson6902": { + "description": "JSON 6902 patches, defined as inline YAML objects.", + "items": { + "description": "JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to.", + "properties": { + "patch": { + "description": "Patch contains the JSON6902 patch document with an array of operation objects.", + "items": { + "description": "JSON6902 is a JSON6902 operation object. https://datatracker.ietf.org/doc/html/rfc6902#section-4", + "properties": { + "from": { + "description": "From contains a JSON-pointer value that references a location within the target document where the operation is performed. The meaning of the value depends on the value of Op, and is NOT taken into account by all operations.", + "type": "string" + }, + "op": { + "description": "Op indicates the operation to perform. Its value MUST be one of \"add\", \"remove\", \"replace\", \"move\", \"copy\", or \"test\". https://datatracker.ietf.org/doc/html/rfc6902#section-4", + "enum": [ + "test", + "remove", + "add", + "replace", + "move", + "copy" + ], + "type": "string" + }, + "path": { + "description": "Path contains the JSON-pointer value that references a location within the target document where the operation is performed. The meaning of the value depends on the value of Op.", + "type": "string" + }, + "value": { + "description": "Value contains a valid JSON structure. The meaning of the value depends on the value of Op, and is NOT taken into account by all operations.", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "required": [ + "op", + "path" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "target": { + "description": "Target points to the resources that the patch document should be applied to.", + "properties": { + "annotationSelector": { + "description": "AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations.", + "type": "string" + }, + "group": { + "description": "Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "kind": { + "description": "Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "labelSelector": { + "description": "LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels.", + "type": "string" + }, + "name": { + "description": "Name to match resources with.", + "type": "string" + }, + "namespace": { + "description": "Namespace to select resources from.", + "type": "string" + }, + "version": { + "description": "Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "patch", + "target" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "patchesStrategicMerge": { + "description": "Strategic merge patches, defined as inline YAML objects.", + "items": { + "x-kubernetes-preserve-unknown-fields": true + }, + "type": "array" + }, + "path": { + "description": "Path to the directory containing the kustomization.yaml file, or the set of plain YAMLs a kustomization.yaml should be generated for. Defaults to 'None', which translates to the root path of the SourceRef.", + "type": "string" + }, + "postBuild": { + "description": "PostBuild describes which actions to perform on the YAML manifest generated by building the kustomize overlay.", + "properties": { + "substitute": { + "additionalProperties": { + "type": "string" + }, + "description": "Substitute holds a map of key/value pairs. The variables defined in your YAML manifests that match any of the keys defined in the map will be substituted with the set value. Includes support for bash string replacement functions e.g. ${var:=default}, ${var:position} and ${var/substring/replacement}.", + "type": "object" + }, + "substituteFrom": { + "description": "SubstituteFrom holds references to ConfigMaps and Secrets containing the variables and their values to be substituted in the YAML manifests. The ConfigMap and the Secret data keys represent the var names and they must match the vars declared in the manifests for the substitution to happen.", + "items": { + "description": "SubstituteReference contains a reference to a resource containing the variables name and value.", + "properties": { + "kind": { + "description": "Kind of the values referent, valid values are ('Secret', 'ConfigMap').", + "enum": [ + "Secret", + "ConfigMap" + ], + "type": "string" + }, + "name": { + "description": "Name of the values referent. Should reside in the same namespace as the referring resource.", + "maxLength": 253, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "prune": { + "description": "Prune enables garbage collection.", + "type": "boolean" + }, + "retryInterval": { + "description": "The interval at which to retry a previously failed reconciliation. When not specified, the controller uses the KustomizationSpec.Interval value to retry failures.", + "type": "string" + }, + "serviceAccountName": { + "description": "The name of the Kubernetes service account to impersonate when reconciling this Kustomization.", + "type": "string" + }, + "sourceRef": { + "description": "Reference of the source where the kustomization file is.", + "properties": { + "apiVersion": { + "description": "API version of the referent", + "type": "string" + }, + "kind": { + "description": "Kind of the referent", + "enum": [ + "GitRepository", + "Bucket" + ], + "type": "string" + }, + "name": { + "description": "Name of the referent", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent, defaults to the Kustomization namespace", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "suspend": { + "description": "This flag tells the controller to suspend subsequent kustomize executions, it does not apply to already started executions. Defaults to false.", + "type": "boolean" + }, + "targetNamespace": { + "description": "TargetNamespace sets or overrides the namespace in the kustomization.yaml file.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "timeout": { + "description": "Timeout for validation, apply and health checking operations. Defaults to 'Interval' duration.", + "type": "string" + }, + "validation": { + "description": "Validate the Kubernetes objects before applying them on the cluster. The validation strategy can be 'client' (local dry-run), 'server' (APIServer dry-run) or 'none'. When 'Force' is 'true', validation will fallback to 'client' if set to 'server' because server-side validation is not supported in this scenario.", + "enum": [ + "none", + "client", + "server" + ], + "type": "string" + } + }, + "required": [ + "interval", + "prune", + "sourceRef" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "default": { + "observedGeneration": -1 + }, + "description": "KustomizationStatus defines the observed state of a kustomization.", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "lastAppliedRevision": { + "description": "The last successfully applied revision. The revision format for Git sources is /.", + "type": "string" + }, + "lastAttemptedRevision": { + "description": "LastAttemptedRevision is the revision of the last reconciliation attempt.", + "type": "string" + }, + "lastHandledReconcileAt": { + "description": "LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "observedGeneration": { + "description": "ObservedGeneration is the last reconciled generation.", + "format": "int64", + "type": "integer" + }, + "snapshot": { + "description": "The last successfully applied revision metadata.", + "properties": { + "checksum": { + "description": "The manifests sha1 checksum.", + "type": "string" + }, + "entries": { + "description": "A list of Kubernetes kinds grouped by namespace.", + "items": { + "description": "Snapshot holds the metadata of namespaced Kubernetes objects", + "properties": { + "kinds": { + "additionalProperties": { + "type": "string" + }, + "description": "The list of Kubernetes kinds.", + "type": "object" + }, + "namespace": { + "description": "The namespace of this entry.", + "type": "string" + } + }, + "required": [ + "kinds" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "checksum", + "entries" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/fluxcd/kustomization_v1beta2.json b/fluxcd/kustomization_v1beta2.json new file mode 100644 index 00000000..c30d6132 --- /dev/null +++ b/fluxcd/kustomization_v1beta2.json @@ -0,0 +1,560 @@ +{ + "description": "Kustomization is the Schema for the kustomizations API.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "KustomizationSpec defines the configuration to calculate the desired state from a Source using Kustomize.", + "properties": { + "decryption": { + "description": "Decrypt Kubernetes secrets before applying them on the cluster.", + "properties": { + "provider": { + "description": "Provider is the name of the decryption engine.", + "enum": [ + "sops" + ], + "type": "string" + }, + "secretRef": { + "description": "The secret name containing the private OpenPGP keys used for decryption.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "provider" + ], + "type": "object", + "additionalProperties": false + }, + "dependsOn": { + "description": "DependsOn may contain a meta.NamespacedObjectReference slice with references to Kustomization resources that must be ready before this Kustomization can be reconciled.", + "items": { + "description": "NamespacedObjectReference contains enough information to locate the referenced Kubernetes resource object in any namespace.", + "properties": { + "name": { + "description": "Name of the referent.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent, when not specified it acts as LocalObjectReference.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "force": { + "default": false, + "description": "Force instructs the controller to recreate resources when patching fails due to an immutable field change.", + "type": "boolean" + }, + "healthChecks": { + "description": "A list of resources to be included in the health assessment.", + "items": { + "description": "NamespacedObjectKindReference contains enough information to locate the typed referenced Kubernetes resource object in any namespace.", + "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": "array" + }, + "images": { + "description": "Images is a list of (image name, new name, new tag or digest) for changing image names, tags or digests. This can also be achieved with a patch, but this operator is simpler to specify.", + "items": { + "description": "Image contains an image name, a new name, a new tag or digest, which will replace the original name and tag.", + "properties": { + "digest": { + "description": "Digest is the value used to replace the original image tag. If digest is present NewTag value is ignored.", + "type": "string" + }, + "name": { + "description": "Name is a tag-less image name.", + "type": "string" + }, + "newName": { + "description": "NewName is the value used to replace the original name.", + "type": "string" + }, + "newTag": { + "description": "NewTag is the value used to replace the original tag.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "interval": { + "description": "The interval at which to reconcile the Kustomization.", + "type": "string" + }, + "kubeConfig": { + "description": "The KubeConfig for reconciling the Kustomization on a remote cluster. When used in combination with KustomizationSpec.ServiceAccountName, forces the controller to act on behalf of that Service Account at the target cluster. If the --default-service-account flag is set, its value will be used as a controller level fallback for when KustomizationSpec.ServiceAccountName is empty.", + "properties": { + "secretRef": { + "description": "SecretRef holds the name of a secret that contains a key with the kubeconfig file as the value. If no key is set, the key will default to 'value'. The secret must be in the same namespace as the Kustomization. It is recommended that the kubeconfig is self-contained, and the secret is regularly updated if credentials such as a cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without adding binaries and credentials to the Pod that is responsible for reconciling the Kustomization.", + "properties": { + "key": { + "description": "Key in the Secret, when not specified an implementation-specific default key is used.", + "type": "string" + }, + "name": { + "description": "Name of the Secret.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "patches": { + "description": "Strategic merge and JSON patches, defined as inline YAML objects, capable of targeting objects based on kind, label and annotation selectors.", + "items": { + "description": "Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should be applied to.", + "properties": { + "patch": { + "description": "Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with an array of operation objects.", + "type": "string" + }, + "target": { + "description": "Target points to the resources that the patch document should be applied to.", + "properties": { + "annotationSelector": { + "description": "AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations.", + "type": "string" + }, + "group": { + "description": "Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "kind": { + "description": "Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "labelSelector": { + "description": "LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels.", + "type": "string" + }, + "name": { + "description": "Name to match resources with.", + "type": "string" + }, + "namespace": { + "description": "Namespace to select resources from.", + "type": "string" + }, + "version": { + "description": "Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "patchesJson6902": { + "description": "JSON 6902 patches, defined as inline YAML objects. Deprecated: Use Patches instead.", + "items": { + "description": "JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to.", + "properties": { + "patch": { + "description": "Patch contains the JSON6902 patch document with an array of operation objects.", + "items": { + "description": "JSON6902 is a JSON6902 operation object. https://datatracker.ietf.org/doc/html/rfc6902#section-4", + "properties": { + "from": { + "description": "From contains a JSON-pointer value that references a location within the target document where the operation is performed. The meaning of the value depends on the value of Op, and is NOT taken into account by all operations.", + "type": "string" + }, + "op": { + "description": "Op indicates the operation to perform. Its value MUST be one of \"add\", \"remove\", \"replace\", \"move\", \"copy\", or \"test\". https://datatracker.ietf.org/doc/html/rfc6902#section-4", + "enum": [ + "test", + "remove", + "add", + "replace", + "move", + "copy" + ], + "type": "string" + }, + "path": { + "description": "Path contains the JSON-pointer value that references a location within the target document where the operation is performed. The meaning of the value depends on the value of Op.", + "type": "string" + }, + "value": { + "description": "Value contains a valid JSON structure. The meaning of the value depends on the value of Op, and is NOT taken into account by all operations.", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "required": [ + "op", + "path" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "target": { + "description": "Target points to the resources that the patch document should be applied to.", + "properties": { + "annotationSelector": { + "description": "AnnotationSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource annotations.", + "type": "string" + }, + "group": { + "description": "Group is the API group to select resources from. Together with Version and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "kind": { + "description": "Kind of the API Group to select resources from. Together with Group and Version it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + }, + "labelSelector": { + "description": "LabelSelector is a string that follows the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with the resource labels.", + "type": "string" + }, + "name": { + "description": "Name to match resources with.", + "type": "string" + }, + "namespace": { + "description": "Namespace to select resources from.", + "type": "string" + }, + "version": { + "description": "Version of the API Group to select resources from. Together with Group and Kind it is capable of unambiguously identifying and/or selecting resources. https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "required": [ + "patch", + "target" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "patchesStrategicMerge": { + "description": "Strategic merge patches, defined as inline YAML objects. Deprecated: Use Patches instead.", + "items": { + "x-kubernetes-preserve-unknown-fields": true + }, + "type": "array" + }, + "path": { + "description": "Path to the directory containing the kustomization.yaml file, or the set of plain YAMLs a kustomization.yaml should be generated for. Defaults to 'None', which translates to the root path of the SourceRef.", + "type": "string" + }, + "postBuild": { + "description": "PostBuild describes which actions to perform on the YAML manifest generated by building the kustomize overlay.", + "properties": { + "substitute": { + "additionalProperties": { + "type": "string" + }, + "description": "Substitute holds a map of key/value pairs. The variables defined in your YAML manifests that match any of the keys defined in the map will be substituted with the set value. Includes support for bash string replacement functions e.g. ${var:=default}, ${var:position} and ${var/substring/replacement}.", + "type": "object" + }, + "substituteFrom": { + "description": "SubstituteFrom holds references to ConfigMaps and Secrets containing the variables and their values to be substituted in the YAML manifests. The ConfigMap and the Secret data keys represent the var names and they must match the vars declared in the manifests for the substitution to happen.", + "items": { + "description": "SubstituteReference contains a reference to a resource containing the variables name and value.", + "properties": { + "kind": { + "description": "Kind of the values referent, valid values are ('Secret', 'ConfigMap').", + "enum": [ + "Secret", + "ConfigMap" + ], + "type": "string" + }, + "name": { + "description": "Name of the values referent. Should reside in the same namespace as the referring resource.", + "maxLength": 253, + "minLength": 1, + "type": "string" + }, + "optional": { + "default": false, + "description": "Optional indicates whether the referenced resource must exist, or whether to tolerate its absence. If true and the referenced resource is absent, proceed as if the resource was present but empty, without any variables defined.", + "type": "boolean" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "prune": { + "description": "Prune enables garbage collection.", + "type": "boolean" + }, + "retryInterval": { + "description": "The interval at which to retry a previously failed reconciliation. When not specified, the controller uses the KustomizationSpec.Interval value to retry failures.", + "type": "string" + }, + "serviceAccountName": { + "description": "The name of the Kubernetes service account to impersonate when reconciling this Kustomization.", + "type": "string" + }, + "sourceRef": { + "description": "Reference of the source where the kustomization file is.", + "properties": { + "apiVersion": { + "description": "API version of the referent.", + "type": "string" + }, + "kind": { + "description": "Kind of the referent.", + "enum": [ + "GitRepository", + "Bucket" + ], + "type": "string" + }, + "name": { + "description": "Name of the referent.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referent, defaults to the namespace of the Kubernetes resource object that contains the reference.", + "type": "string" + } + }, + "required": [ + "kind", + "name" + ], + "type": "object", + "additionalProperties": false + }, + "suspend": { + "description": "This flag tells the controller to suspend subsequent kustomize executions, it does not apply to already started executions. Defaults to false.", + "type": "boolean" + }, + "targetNamespace": { + "description": "TargetNamespace sets or overrides the namespace in the kustomization.yaml file.", + "maxLength": 63, + "minLength": 1, + "type": "string" + }, + "timeout": { + "description": "Timeout for validation, apply and health checking operations. Defaults to 'Interval' duration.", + "type": "string" + }, + "validation": { + "description": "Deprecated: Not used in v1beta2.", + "enum": [ + "none", + "client", + "server" + ], + "type": "string" + }, + "wait": { + "description": "Wait instructs the controller to check the health of all the reconciled resources. When enabled, the HealthChecks are ignored. Defaults to false.", + "type": "boolean" + } + }, + "required": [ + "interval", + "prune", + "sourceRef" + ], + "type": "object", + "additionalProperties": false + }, + "status": { + "default": { + "observedGeneration": -1 + }, + "description": "KustomizationStatus defines the observed state of a kustomization.", + "properties": { + "conditions": { + "items": { + "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", + "properties": { + "lastTransitionTime": { + "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This 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. This may be an empty string.", + "maxLength": 32768, + "type": "string" + }, + "observedGeneration": { + "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with 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. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This 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. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The 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" + }, + "inventory": { + "description": "Inventory contains the list of Kubernetes resource object references that have been successfully applied.", + "properties": { + "entries": { + "description": "Entries of Kubernetes resource object references.", + "items": { + "description": "ResourceRef contains the information necessary to locate a resource within a cluster.", + "properties": { + "id": { + "description": "ID is the string representation of the Kubernetes resource object's metadata, in the format '___'.", + "type": "string" + }, + "v": { + "description": "Version is the API version of the Kubernetes resource object's kind.", + "type": "string" + } + }, + "required": [ + "id", + "v" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "required": [ + "entries" + ], + "type": "object", + "additionalProperties": false + }, + "lastAppliedRevision": { + "description": "The last successfully applied revision. The revision format for Git sources is /.", + "type": "string" + }, + "lastAttemptedRevision": { + "description": "LastAttemptedRevision is the revision of the last reconciliation attempt.", + "type": "string" + }, + "lastHandledReconcileAt": { + "description": "LastHandledReconcileAt holds the value of the most recent reconcile request value, so a change of the annotation value can be detected.", + "type": "string" + }, + "observedGeneration": { + "description": "ObservedGeneration is the last reconciled generation.", + "format": "int64", + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" +} diff --git a/index.yaml b/index.yaml index 589aea7d..dbd92c0c 100644 --- a/index.yaml +++ b/index.yaml @@ -42,13 +42,13 @@ argoproj: apiVersion: argoproj.io/v1alpha1 lastUpdated: "2020-05-06T00:00:00Z" repo: argo-workflows - permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io/v1alpha1_clusterworkflowtemplates.yaml + permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io_clusterworkflowtemplates.yaml - cronworkflow_v1alpha1: kind: CronWorkflow apiVersion: argoproj.io/v1alpha1 lastUpdated: "2020-05-06T00:00:00Z" repo: argo-workflows - permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io/v1alpha1_cronworkflows.yaml + permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io_cronworkflows.yaml - experiment_v1alpha1: kind: Experiment apiVersion: argoproj.io/v1alpha1 @@ -66,31 +66,31 @@ argoproj: apiVersion: argoproj.io/v1alpha1 lastUpdated: "2020-05-06T00:00:00Z" repo: argo-workflows - permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io/v1alpha1_workflows.yaml + permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io_workflows.yaml - workfloweventbindings_v1alpha1: kind: WorkflowEventBinding apiVersion: argoproj.io/v1alpha1 lastUpdated: "2020-05-06T00:00:00Z" repo: argo-workflows - permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io/v1alpha1_workfloweventbindings.yaml + permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io_workfloweventbindings.yaml - workflowtasksets_v1alpha1: kind: WorkflowTaskSet apiVersion: argoproj.io/v1alpha1 lastUpdated: "2020-05-06T00:00:00Z" repo: argo-workflows - permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io/v1alpha1_workflowtasksets.yaml - # - workflowtaskresults_v1alpha1: - # kind: WorkflowTaskResult - # apiVersion: argoproj.io/v1alpha1 - # lastUpdated: "2020-05-06T00:00:00Z" - # repo: argo-workflows - # permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io/v1alpha1_workflowtaskresults.yaml + permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io_workflowtasksets.yaml + - workflowtaskresults_v1alpha1: + kind: WorkflowTaskResult + apiVersion: argoproj.io/v1alpha1 + lastUpdated: "2020-05-06T00:00:00Z" + repo: argo-workflows + permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io_workflowtaskresults.yaml - workflowtemplate_v1alpha1: kind: WorkflowTemplate apiVersion: argoproj.io/v1alpha1 lastUpdated: "2020-05-06T00:00:00Z" repo: argo-workflows - permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io/v1alpha1_workflowtemplates.yaml + permitLink: 37a3eb375410dd778d44f9965d9ec4465f1011d9/manifests/base/crds/full/argoproj.io_workflowtemplates.yaml bitnami-labs: org: bitnami kinds: @@ -181,11 +181,195 @@ elastic: lastUpdated: "2020-05-06T00:00:00Z" repo: cloud-on-k8s permitLink: 34c69748021ccb9a369e51d31019717a97175a9d/config/crds/v1/all-crds.yaml -# fluxcd: -# org: fluxcd -prometheus: +fluxcd: + org: fluxcd + kinds: + - alert_v1beta1: + kind: Alert + apiVersion: notification.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: notification-controller + permitLink: f946ddda0becc43746b83798afc2195d241cfee8/config/crd/bases/notification.toolkit.fluxcd.io_alerts.yaml + - bucket_v1beta1: + kind: Bucket + apiVersion: source.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_buckets.yaml + - buckcket_v1beta2: + kind: Bucket + apiVersion: source.toolkit.fluxcd.io/v1beta2 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_buckets.yaml + - gitrepository_v1beta1: + kind: GitRepository + apiVersion: source.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_gitrepositories.yaml + - gitrepository_v1beta2: + kind: GitRepository + apiVersion: source.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_gitrepositories.yaml + - helmchart_v1beta1: + kind: HelmChart + apiVersion: source.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_helmcharts.yaml + - helmchart_v1beta2: + kind: HelmChart + apiVersion: source.toolkit.fluxcd.io/v1beta2 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_helmcharts.yaml + - helmrepository_v1beta1: + kind: HelmRepository + apiVersion: source.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_helmrepositories.yaml + - helmrepository_v1beta2: + kind: HelmRepository + apiVersion: source.toolkit.fluxcd.io/v1beta2 + lastUpdated: "2020-06-23T00:00:00Z" + repo: source-controller + permitLink: 7c07b7a03fdafba280e11c90e36cc4e53f431da6/config/crd/bases/source.toolkit.fluxcd.io_helmrepositories.yaml + - provider_v1beta1: + kind: Provider + apiVersion: notification.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: notification-controller + permitLink: f946ddda0becc43746b83798afc2195d241cfee8/config/crd/bases/notification.toolkit.fluxcd.io_providers.yaml + - receiver_v1beta1: + kind: Receiver + apiVersion: notification.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: notification-controller + permitLink: f946ddda0becc43746b83798afc2195d241cfee8/config/crd/bases/notification.toolkit.fluxcd.io_receivers.yaml + - imageupdateautomation_v1alpha1: + kind: ImageUpdateAutomation + apiVersion: image.toolkit.fluxcd.io/v1alpha1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-automation-controller + permitLink: dd2a32350e96191cf7488e8c502cb5b89a858a92/config/crd/bases/image.toolkit.fluxcd.io_imageupdateautomations.yaml + - imageupdateautomation_v1alpha2: + kind: ImageUpdateAutomation + apiVersion: image.toolkit.fluxcd.io/v1alpha2 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-automation-controller + permitLink: dd2a32350e96191cf7488e8c502cb5b89a858a92/config/crd/bases/image.toolkit.fluxcd.io_imageupdateautomations.yaml + - imageupdateautomation_v1beta1: + kind: ImageUpdateAutomation + apiVersion: image.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-automation-controller + permitLink: dd2a32350e96191cf7488e8c502cb5b89a858a92/config/crd/bases/image.toolkit.fluxcd.io_imageupdateautomations.yaml + - imagepolicy_v1alpha1: + kind: ImagePolicy + apiVersion: image.toolkit.fluxcd.io/v1alpha1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-reflector-controller + permitLink: 5ab6137d06168c45e29f805737ce2215e811cbe9/config/crd/bases/image.toolkit.fluxcd.io_imagepolicies.yaml + - imagepolicy_v1alpha2: + kind: ImagePolicy + apiVersion: image.toolkit.fluxcd.io/v1alpha2 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-reflector-controller + permitLink: 5ab6137d06168c45e29f805737ce2215e811cbe9/config/crd/bases/image.toolkit.fluxcd.io_imagepolicies.yaml + - imagepolicy_v1beta1: + kind: ImagePolicy + apiVersion: image.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-reflector-controller + permitLink: 5ab6137d06168c45e29f805737ce2215e811cbe9/config/crd/bases/image.toolkit.fluxcd.io_imagepolicies.yaml + - imagerepository_v1alpha1: + kind: ImageRepository + apiVersion: image.toolkit.fluxcd.io/v1alpha1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-reflector-controller + permitLink: 5ab6137d06168c45e29f805737ce2215e811cbe9/config/crd/bases/image.toolkit.fluxcd.io_imagerepositories.yaml + - imagerepository_v1alpha2: + kind: ImageRepository + apiVersion: image.toolkit.fluxcd.io/v1alpha2 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-reflector-controller + permitLink: 5ab6137d06168c45e29f805737ce2215e811cbe9/config/crd/bases/image.toolkit.fluxcd.io_imagerepositories.yaml + - imagerepository_v1beta1: + kind: ImageRepository + apiVersion: image.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: image-reflector-controller + permitLink: 5ab6137d06168c45e29f805737ce2215e811cbe9/config/crd/bases/image.toolkit.fluxcd.io_imagerepositories.yaml + - helmrelease_v1: + kind: HelmRelease + apiVersion: helm.toolkit.fluxcd.io/v1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: helm-operator + permitLink: a2872bd27b1db16a58f8bc2f8707d4ce1f16e7ae/chart/helm-operator/crds/helmrelease.yaml + - kustomization_v1beta1: + kind: Kustomization + apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 + lastUpdated: "2020-06-23T00:00:00Z" + repo: kustomize-controller + permitLink: 57a0a1f2387287f9a0e03ed69a0ff599162eb0a9/config/crd/bases/kustomize.toolkit.fluxcd.io_kustomizations.yaml + - kustomization_v1beta2: + kind: Kustomization + apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 + lastUpdated: "2020-06-23T00:00:00Z" + repo: kustomize-controller + permitLink: 57a0a1f2387287f9a0e03ed69a0ff599162eb0a9/config/crd/bases/kustomize.toolkit.fluxcd.io_kustomizations.yaml +prometheus-community: org: prometheus kinds: - alertmanager_v1: kind: Alertmanager - apiVersion: monitoring.coreos.com/v1 \ No newline at end of file + apiVersion: monitoring.coreos.com/v1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-alertmanagers.yaml + - alertmanagerconfig_v1alpha1: + kind: AlertmanagerConfig + apiVersion: monitoring.coreos.com/v1alpha1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-alertmanagerconfigs.yaml + - podmonitor_v1: + kind: PodMonitor + apiVersion: monitoring.coreos.com/v1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-podmonitors.yaml + - probe_v1: + kind: Probe + apiVersion: monitoring.coreos.com/v1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-probes.yaml + - prometheus_v1: + kind: Prometheus + apiVersion: monitoring.coreos.com/v1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-prometheuses.yaml + - prometheusrule_v1: + kind: PrometheusRule + apiVersion: monitoring.coreos.com/v1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-prometheusrules.yaml + - servicemonitor_v1: + kind: ServiceMonitor + apiVersion: monitoring.coreos.com/v1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-servicemonitors.yaml + - thanosruler_v1: + kind: ThanosRuler + apiVersion: monitoring.coreos.com/v1 + lastUpdated: "2020-06-16T00:00:00Z" + repo: helm-charts + permitLink: 60ea1c210a9c7678dbaab825271079e0562c98fd/charts/kube-prometheus-stack/crds/crd-thanosrulers.yaml diff --git a/prometheus/alertmanager_v1.json b/prometheus-community/alertmanager_v1.json similarity index 100% rename from prometheus/alertmanager_v1.json rename to prometheus-community/alertmanager_v1.json diff --git a/prometheus/alertmanagerconfig_v1alpha1.json b/prometheus-community/alertmanagerconfig_v1alpha1.json similarity index 100% rename from prometheus/alertmanagerconfig_v1alpha1.json rename to prometheus-community/alertmanagerconfig_v1alpha1.json diff --git a/prometheus/podmonitor_v1.json b/prometheus-community/podmonitor_v1.json similarity index 100% rename from prometheus/podmonitor_v1.json rename to prometheus-community/podmonitor_v1.json diff --git a/prometheus/probe_v1.json b/prometheus-community/probe_v1.json similarity index 100% rename from prometheus/probe_v1.json rename to prometheus-community/probe_v1.json diff --git a/prometheus/prometheus_v1.json b/prometheus-community/prometheus_v1.json similarity index 100% rename from prometheus/prometheus_v1.json rename to prometheus-community/prometheus_v1.json diff --git a/prometheus/prometheusrule_v1.json b/prometheus-community/prometheusrule_v1.json similarity index 100% rename from prometheus/prometheusrule_v1.json rename to prometheus-community/prometheusrule_v1.json diff --git a/prometheus/servicemonitor_v1.json b/prometheus-community/servicemonitor_v1.json similarity index 100% rename from prometheus/servicemonitor_v1.json rename to prometheus-community/servicemonitor_v1.json diff --git a/prometheus/thanosruler_v1.json b/prometheus-community/thanosruler_v1.json similarity index 100% rename from prometheus/thanosruler_v1.json rename to prometheus-community/thanosruler_v1.json