apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.6.2
  name: vmsingles.operator.victoriametrics.com
spec:
  group: operator.victoriametrics.com
  names:
    kind: VMSingle
    listKind: VMSingleList
    plural: vmsingles
    singular: vmsingle
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: VMSingle  is fast, cost-effective and scalable time-series database.
        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: VMSingleSpec defines the desired state of VMSingle
            properties:
              affinity:
                description: Affinity If specified, the pod's scheduling constraints.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              configMaps:
                description: ConfigMaps is a list of ConfigMaps in the same namespace
                  as the VMSingle object, which shall be mounted into the VMSingle
                  Pods.
                items:
                  type: string
                type: array
              containers:
                description: Containers property allows to inject additions sidecars
                  or to patch existing containers. It can be useful for proxies, backup,
                  etc.
                items:
                  description: A single application container that you want to run
                    within a pod.
                  required:
                  - name
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              dnsConfig:
                description: Specifies the DNS parameters of a pod. Parameters specified
                  here will be merged to the generated DNS configuration based on
                  DNSPolicy.
                properties:
                  nameservers:
                    description: A list of DNS name server IP addresses. This will
                      be appended to the base nameservers generated from DNSPolicy.
                      Duplicated nameservers will be removed.
                    items:
                      type: string
                    type: array
                  options:
                    description: A list of DNS resolver options. This will be merged
                      with the base options generated from DNSPolicy. Duplicated entries
                      will be removed. Resolution options given in Options will override
                      those that appear in the base DNSPolicy.
                    items:
                      description: PodDNSConfigOption defines DNS resolver options
                        of a pod.
                      properties:
                        name:
                          description: Required.
                          type: string
                        value:
                          type: string
                      type: object
                    type: array
                  searches:
                    description: A list of DNS search domains for host-name lookup.
                      This will be appended to the base search paths generated from
                      DNSPolicy. Duplicated search paths will be removed.
                    items:
                      type: string
                    type: array
                type: object
                items:
                  x-kubernetes-preserve-unknown-fields: true
              dnsPolicy:
                description: DNSPolicy sets DNS policy for the pod
                type: string
              extraArgs:
                additionalProperties:
                  type: string
                description: 'ExtraArgs that will be passed to  VMSingle pod for example
                  remoteWrite.tmpDataPath: /tmp'
                type: object
              extraEnvs:
                description: ExtraEnvs that will be added to VMSingle pod
                items:
                  description: EnvVar represents an environment variable present in
                    a Container.
                  properties:
                    name:
                      description: Name of the environment variable. Must be a C_IDENTIFIER.
                      type: string
                    value:
                      description: 'Variable references $(VAR_NAME) are expanded using
                        the previously defined environment variables in the container
                        and any service environment variables. If a variable cannot
                        be resolved, the reference in the input string will be unchanged.
                        Double $$ are reduced to a single $, which allows for escaping
                        the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the
                        string literal "$(VAR_NAME)". Escaped references will never
                        be expanded, regardless of whether the variable exists or
                        not. Defaults to "".'
                      type: string
                  required:
                  - name
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              hostAliases:
                description: HostAliases provides mapping for ip and hostname, that
                  would be propagated to pod, cannot be used with HostNetwork.
                items:
                  description: HostAlias holds the mapping between IP and hostnames
                    that will be injected as an entry in the pod's hosts file.
                  properties:
                    hostnames:
                      description: Hostnames for the above IP address.
                      items:
                        type: string
                      type: array
                    ip:
                      description: IP address of the host file entry.
                      type: string
                  type: object
                type: array
              hostNetwork:
                description: HostNetwork controls whether the pod may use the node
                  network namespace
                type: boolean
              image:
                description: Image - docker image settings for VMSingle if no specified
                  operator uses default config version
                properties:
                  pullPolicy:
                    description: PullPolicy describes how to pull docker image
                    type: string
                  repository:
                    description: Repository contains name of docker image + it's repository
                      if needed
                    type: string
                  tag:
                    description: Tag contains desired docker image version
                    type: string
                type: object
              imagePullSecrets:
                description: ImagePullSecrets An optional list of references to secrets
                  in the same namespace to use for pulling images from registries
                  see http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod
                items:
                  description: LocalObjectReference contains enough information to
                    let you locate the referenced object inside the same namespace.
                  properties:
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                        TODO: Add other useful fields. apiVersion, kind, uid?'
                      type: string
                  type: object
                type: array
              initContainers:
                description: 'InitContainers allows adding initContainers to the pod
                  definition. Those can be used to e.g. fetch secrets for injection
                  into the vmSingle configuration from external sources. Any errors
                  during the execution of an initContainer will lead to a restart
                  of the Pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
                  Using initContainers for any use case other then secret fetching
                  is entirely outside the scope of what the maintainers will support
                  and by doing so, you accept that this behaviour may break at any
                  time without notice.'
                items:
                  description: A single application container that you want to run
                    within a pod.
                  required:
                  - name
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              insertPorts:
                description: InsertPorts - additional listen ports for data ingestion.
                properties:
                  graphitePort:
                    description: GraphitePort listen port
                    type: string
                  influxPort:
                    description: InfluxPort listen port
                    type: string
                  openTSDBHTTPPort:
                    description: OpenTSDBHTTPPort for http connections.
                    type: string
                  openTSDBPort:
                    description: OpenTSDBPort for tcp and udp listen
                    type: string
                type: object
              livenessProbe:
                description: LivenessProbe that will be added CRD pod
                type: object
                x-kubernetes-preserve-unknown-fields: true
              logFormat:
                description: LogFormat for VMSingle to be configured with.
                enum:
                - default
                - json
                type: string
              logLevel:
                description: LogLevel for victoria metrics single to be configured
                  with.
                enum:
                - INFO
                - WARN
                - ERROR
                - FATAL
                - PANIC
                type: string
              nodeSelector:
                additionalProperties:
                  type: string
                description: NodeSelector Define which Nodes the Pods are scheduled
                  on.
                type: object
              podMetadata:
                description: PodMetadata configures Labels and Annotations which are
                  propagated to the VMSingle pods.
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    description: 'Annotations is an unstructured key value map stored
                      with a resource that may be set by external tools to store and
                      retrieve arbitrary metadata. They are not queryable and should
                      be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    description: 'Labels Map of string keys and values that can be
                      used to organize and categorize (scope and select) objects.
                      May match selectors of replication controllers and services.
                      More info: http://kubernetes.io/docs/user-guide/labels'
                    type: object
                  name:
                    description: 'Name must be unique within a namespace. Is required
                      when creating resources, although some resources may allow a
                      client to request the generation of an appropriate name automatically.
                      Name is primarily intended for creation idempotence and configuration
                      definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                    type: string
                type: object
              podSecurityPolicyName:
                description: PodSecurityPolicyName - defines name for podSecurityPolicy
                  in case of empty value, prefixedName will be used.
                type: string
              port:
                description: Port listen port
                type: string
              priorityClassName:
                description: PriorityClassName assigned to the Pods
                type: string
              readinessProbe:
                description: ReadinessProbe that will be added CRD pod
                type: object
                x-kubernetes-preserve-unknown-fields: true
              removePvcAfterDelete:
                description: RemovePvcAfterDelete - if true, controller adds ownership
                  to pvc and after VMSingle objest deletion - pvc will be garbage
                  collected by controller manager
                type: boolean
              replicaCount:
                description: ReplicaCount is the expected size of the VMSingle it
                  can be 0 or 1 if you need more - use vm cluster
                format: int32
                type: integer
              resources:
                description: Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                  if not defined default resources from operator config will be used
                properties:
                  limits:
                    additionalProperties:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    description: 'Limits describes the maximum amount of compute resources
                      allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                    type: object
                  requests:
                    additionalProperties:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    description: 'Requests describes the minimum amount of compute
                      resources required. If Requests is omitted for a container,
                      it defaults to Limits if that is explicitly specified, otherwise
                      to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                    type: object
                type: object
              retentionPeriod:
                description: RetentionPeriod for the stored metrics Note VictoriaMetrics
                  has data/ and indexdb/ folders metrics from data/ removed eventually
                  as soon as partition leaves retention period reverse index data
                  at indexdb rotates once at the half of configured retention period
                  https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#retention
                type: string
              runtimeClassName:
                description: RuntimeClassName - defines runtime class for kubernetes
                  pod. https://kubernetes.io/docs/concepts/containers/runtime-class/
                type: string
              schedulerName:
                description: SchedulerName - defines kubernetes scheduler name
                type: string
              secrets:
                description: Secrets is a list of Secrets in the same namespace as
                  the VMSingle object, which shall be mounted into the VMSingle Pods.
                items:
                  type: string
                type: array
              securityContext:
                description: SecurityContext holds pod-level security attributes and
                  common container settings. This defaults to the default PodSecurityContext.
                type: object
                x-kubernetes-preserve-unknown-fields: true
              serviceAccountName:
                description: ServiceAccountName is the name of the ServiceAccount
                  to use to run the VMSingle Pods.
                type: string
              serviceScrapeSpec:
                description: ServiceScrapeSpec that will be added to vmselect VMServiceScrape
                  spec
                required:
                - endpoints
                type: object
                x-kubernetes-preserve-unknown-fields: true
              serviceSpec:
                description: ServiceSpec that will be added to vmsingle service spec
                properties:
                  metadata:
                    description: EmbeddedObjectMetadata defines objectMeta for additional
                      service.
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: 'Annotations is an unstructured key value map
                          stored with a resource that may be set by external tools
                          to store and retrieve arbitrary metadata. They are not queryable
                          and should be preserved when modifying objects. More info:
                          http://kubernetes.io/docs/user-guide/annotations'
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: 'Labels Map of string keys and values that can
                          be used to organize and categorize (scope and select) objects.
                          May match selectors of replication controllers and services.
                          More info: http://kubernetes.io/docs/user-guide/labels'
                        type: object
                      name:
                        description: 'Name must be unique within a namespace. Is required
                          when creating resources, although some resources may allow
                          a client to request the generation of an appropriate name
                          automatically. Name is primarily intended for creation idempotence
                          and configuration definition. Cannot be updated. More info:
                          http://kubernetes.io/docs/user-guide/identifiers#names'
                        type: string
                    type: object
                  spec:
                    description: 'ServiceSpec describes the attributes that a user
                      creates on a service. More info: https://kubernetes.io/docs/concepts/services-networking/service/'
                    type: object
                    x-kubernetes-preserve-unknown-fields: true
                required:
                - spec
                type: object
              startupProbe:
                description: StartupProbe that will be added to CRD pod
                type: object
                x-kubernetes-preserve-unknown-fields: true
              storage:
                description: Storage is the definition of how storage will be used
                  by the VMSingle by default it`s empty dir
                properties:
                  accessModes:
                    description: 'AccessModes contains the desired access modes the
                      volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
                    items:
                      type: string
                    type: array
                  dataSource:
                    description: 'This field can be used to specify either: * An existing
                      VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
                      * An existing PVC (PersistentVolumeClaim) If the provisioner
                      or an external controller can support the specified data source,
                      it will create a new volume based on the contents of the specified
                      data source. If the AnyVolumeDataSource feature gate is enabled,
                      this field will always have the same contents as the DataSourceRef
                      field.'
                    properties:
                      apiGroup:
                        description: APIGroup is the group for the resource being
                          referenced. If APIGroup is not specified, the specified
                          Kind must be in the core API group. For any other third-party
                          types, APIGroup is required.
                        type: string
                      kind:
                        description: Kind is the type of resource being referenced
                        type: string
                      name:
                        description: Name is the name of resource being referenced
                        type: string
                    required:
                    - kind
                    - name
                    type: object
                  dataSourceRef:
                    description: 'Specifies the object from which to populate the
                      volume with data, if a non-empty volume is desired. This may
                      be any local object from a non-empty API group (non core object)
                      or a PersistentVolumeClaim object. When this field is specified,
                      volume binding will only succeed if the type of the specified
                      object matches some installed volume populator or dynamic provisioner.
                      This field will replace the functionality of the DataSource
                      field and as such if both fields are non-empty, they must have
                      the same value. For backwards compatibility, both fields (DataSource
                      and DataSourceRef) will be set to the same value automatically
                      if one of them is empty and the other is non-empty. There are
                      two important differences between DataSource and DataSourceRef:
                      * While DataSource only allows two specific types of objects,
                      DataSourceRef   allows any non-core object, as well as PersistentVolumeClaim
                      objects. * While DataSource ignores disallowed values (dropping
                      them), DataSourceRef   preserves all values, and generates an
                      error if a disallowed value is   specified. (Alpha) Using this
                      field requires the AnyVolumeDataSource feature gate to be enabled.'
                    properties:
                      apiGroup:
                        description: APIGroup is the group for the resource being
                          referenced. If APIGroup is not specified, the specified
                          Kind must be in the core API group. For any other third-party
                          types, APIGroup is required.
                        type: string
                      kind:
                        description: Kind is the type of resource being referenced
                        type: string
                      name:
                        description: Name is the name of resource being referenced
                        type: string
                    required:
                    - kind
                    - name
                    type: object
                  resources:
                    description: 'Resources represents the minimum resources the volume
                      should have. If RecoverVolumeExpansionFailure feature is enabled
                      users are allowed to specify resource requirements that are
                      lower than previous value but must still be higher than capacity
                      recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
                    properties:
                      limits:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Limits describes the maximum amount of compute
                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                      requests:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Requests describes the minimum amount of compute
                          resources required. If Requests is omitted for a container,
                          it defaults to Limits if that is explicitly specified, otherwise
                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                    type: object
                  selector:
                    description: A label query over volumes to consider for binding.
                    properties:
                      matchExpressions:
                        description: matchExpressions is a list of label selector
                          requirements. The requirements are ANDed.
                        items:
                          description: A label selector requirement is a selector
                            that contains values, a key, and an operator that relates
                            the key and values.
                          properties:
                            key:
                              description: key is the label key that the selector
                                applies to.
                              type: string
                            operator:
                              description: operator represents a key's relationship
                                to a set of values. Valid operators are In, NotIn,
                                Exists and DoesNotExist.
                              type: string
                            values:
                              description: values is an array of string values. If
                                the operator is In or NotIn, the values array must
                                be non-empty. If the operator is Exists or DoesNotExist,
                                the values array must be empty. This array is replaced
                                during a strategic merge patch.
                              items:
                                type: string
                              type: array
                          required:
                          - key
                          - operator
                          type: object
                        type: array
                      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
                  storageClassName:
                    description: 'Name of the StorageClass required by the claim.
                      More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1'
                    type: string
                  volumeMode:
                    description: volumeMode defines what type of volume is required
                      by the claim. Value of Filesystem is implied when not included
                      in claim spec.
                    type: string
                  volumeName:
                    description: VolumeName is the binding reference to the PersistentVolume
                      backing this claim.
                    type: string
                type: object
              storageDataPath:
                description: StorageDataPath disables spec.storage option and overrides
                  arg for victoria-metrics binary --storageDataPath, its users responsibility
                  to mount proper device into given path.
                type: string
              storageMetadata:
                description: StorageMeta defines annotations and labels attached to
                  PVC for given vmsingle CR
                properties:
                  annotations:
                    additionalProperties:
                      type: string
                    description: 'Annotations is an unstructured key value map stored
                      with a resource that may be set by external tools to store and
                      retrieve arbitrary metadata. They are not queryable and should
                      be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                    type: object
                  labels:
                    additionalProperties:
                      type: string
                    description: 'Labels Map of string keys and values that can be
                      used to organize and categorize (scope and select) objects.
                      May match selectors of replication controllers and services.
                      More info: http://kubernetes.io/docs/user-guide/labels'
                    type: object
                  name:
                    description: 'Name must be unique within a namespace. Is required
                      when creating resources, although some resources may allow a
                      client to request the generation of an appropriate name automatically.
                      Name is primarily intended for creation idempotence and configuration
                      definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                    type: string
                type: object
              terminationGracePeriodSeconds:
                description: TerminationGracePeriodSeconds period for container graceful
                  termination
                format: int64
                type: integer
              tolerations:
                description: Tolerations If specified, the pod's tolerations.
                items:
                  description: The pod this Toleration is attached to tolerates any
                    taint that matches the triple <key,value,effect> using the matching
                    operator <operator>.
                  properties:
                    effect:
                      description: Effect indicates the taint effect to match. Empty
                        means match all taint effects. When specified, allowed values
                        are NoSchedule, PreferNoSchedule and NoExecute.
                      type: string
                    key:
                      description: Key is the taint key that the toleration applies
                        to. Empty means match all taint keys. If the key is empty,
                        operator must be Exists; this combination means to match all
                        values and all keys.
                      type: string
                    operator:
                      description: Operator represents a key's relationship to the
                        value. Valid operators are Exists and Equal. Defaults to Equal.
                        Exists is equivalent to wildcard for value, so that a pod
                        can tolerate all taints of a particular category.
                      type: string
                    tolerationSeconds:
                      description: TolerationSeconds represents the period of time
                        the toleration (which must be of effect NoExecute, otherwise
                        this field is ignored) tolerates the taint. By default, it
                        is not set, which means tolerate the taint forever (do not
                        evict). Zero and negative values will be treated as 0 (evict
                        immediately) by the system.
                      format: int64
                      type: integer
                    value:
                      description: Value is the taint value the toleration matches
                        to. If the operator is Exists, the value should be empty,
                        otherwise just a regular string.
                      type: string
                  type: object
                type: array
              topologySpreadConstraints:
                description: TopologySpreadConstraints embedded kubernetes pod configuration
                  option, controls how pods are spread across your cluster among failure-domains
                  such as regions, zones, nodes, and other user-defined topology domains
                  https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
                items:
                  description: TopologySpreadConstraint specifies how to spread matching
                    pods among the given topology.
                  required:
                  - maxSkew
                  - topologyKey
                  - whenUnsatisfiable
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              vmBackup:
                description: VMBackup configuration for backup
                properties:
                  acceptEULA:
                    description: AcceptEULA accepts enterprise feature usage, must
                      be set to true. otherwise backupmanager cannot be added to single/cluster
                      version. https://victoriametrics.com/legal/eula/
                    type: boolean
                  concurrency:
                    description: Defines number of concurrent workers. Higher concurrency
                      may reduce backup duration (default 10)
                    format: int32
                    type: integer
                  credentialsSecret:
                    description: CredentialsSecret is secret in the same namespace
                      for access to remote storage The secret is mounted into /etc/vm/creds.
                    properties:
                      key:
                        description: The key of the secret to select from.  Must be
                          a valid secret key.
                        type: string
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                      optional:
                        description: Specify whether the Secret or its key must be
                          defined
                        type: boolean
                    required:
                    - key
                    type: object
                  customS3Endpoint:
                    description: Custom S3 endpoint for use with S3-compatible storages
                      (e.g. MinIO). S3 is used if not set
                    type: string
                  destination:
                    description: Defines destination for backup
                    type: string
                  destinationDisableSuffixAdd:
                    description: DestinationDisableSuffixAdd - disables suffix adding
                      for cluster version backups each vmstorage backup must have
                      unique backup folder so operator adds POD_NAME as suffix for
                      backup destination folder.
                    type: boolean
                  disableDaily:
                    description: Defines if daily backups disabled (default false)
                    type: boolean
                  disableHourly:
                    description: Defines if hourly backups disabled (default false)
                    type: boolean
                  disableMonthly:
                    description: Defines if monthly backups disabled (default false)
                    type: boolean
                  disableWeekly:
                    description: Defines if weekly backups disabled (default false)
                    type: boolean
                  extraArgs:
                    additionalProperties:
                      type: string
                    description: extra args like maxBytesPerSecond default 0
                    type: object
                  extraEnvs:
                    items:
                      description: EnvVar represents an environment variable present
                        in a Container.
                      properties:
                        name:
                          description: Name of the environment variable. Must be a
                            C_IDENTIFIER.
                          type: string
                        value:
                          description: 'Variable references $(VAR_NAME) are expanded
                            using the previously defined environment variables in
                            the container and any service environment variables. If
                            a variable cannot be resolved, the reference in the input
                            string will be unchanged. Double $$ are reduced to a single
                            $, which allows for escaping the $(VAR_NAME) syntax: i.e.
                            "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
                            Escaped references will never be expanded, regardless
                            of whether the variable exists or not. Defaults to "".'
                          type: string
                        valueFrom:
                          description: Source for the environment variable's value.
                            Cannot be used if value is not empty.
                          properties:
                            configMapKeyRef:
                              description: Selects a key of a ConfigMap.
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its
                                    key must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                            fieldRef:
                              description: 'Selects a field of the pod: supports metadata.name,
                                metadata.namespace, `metadata.labels[''<KEY>'']`,
                                `metadata.annotations[''<KEY>'']`, spec.nodeName,
                                spec.serviceAccountName, status.hostIP, status.podIP,
                                status.podIPs.'
                              properties:
                                apiVersion:
                                  description: Version of the schema the FieldPath
                                    is written in terms of, defaults to "v1".
                                  type: string
                                fieldPath:
                                  description: Path of the field to select in the
                                    specified API version.
                                  type: string
                              required:
                              - fieldPath
                              type: object
                            resourceFieldRef:
                              description: 'Selects a resource of the container: only
                                resources limits and requests (limits.cpu, limits.memory,
                                limits.ephemeral-storage, requests.cpu, requests.memory
                                and requests.ephemeral-storage) are currently supported.'
                              properties:
                                containerName:
                                  description: 'Container name: required for volumes,
                                    optional for env vars'
                                  type: string
                                divisor:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Specifies the output format of the
                                    exposed resources, defaults to "1"
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  x-kubernetes-int-or-string: true
                                resource:
                                  description: 'Required: resource to select'
                                  type: string
                              required:
                              - resource
                              type: object
                            secretKeyRef:
                              description: Selects a key of a secret in the pod's
                                namespace
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must
                                    be a valid secret key.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key
                                    must be defined
                                  type: boolean
                              required:
                              - key
                              type: object
                          type: object
                      required:
                      - name
                      type: object
                    type: array
                  image:
                    description: Image - docker image settings for VMBackuper
                    properties:
                      pullPolicy:
                        description: PullPolicy describes how to pull docker image
                        type: string
                      repository:
                        description: Repository contains name of docker image + it's
                          repository if needed
                        type: string
                      tag:
                        description: Tag contains desired docker image version
                        type: string
                    type: object
                  logFormat:
                    description: LogFormat for VMSelect to be configured with. default
                      or json
                    enum:
                    - default
                    - json
                    type: string
                  logLevel:
                    description: LogLevel for VMSelect to be configured with.
                    enum:
                    - INFO
                    - WARN
                    - ERROR
                    - FATAL
                    - PANIC
                    type: string
                  port:
                    description: Port for health check connections
                    type: string
                  resources:
                    description: Resources container resource request and limits,
                      https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
                      if not defined default resources from operator config will be
                      used
                    properties:
                      limits:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Limits describes the maximum amount of compute
                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                      requests:
                        additionalProperties:
                          anyOf:
                          - type: integer
                          - type: string
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          x-kubernetes-int-or-string: true
                        description: 'Requests describes the minimum amount of compute
                          resources required. If Requests is omitted for a container,
                          it defaults to Limits if that is explicitly specified, otherwise
                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                    type: object
                  snapshotCreateURL:
                    description: SnapshotCreateURL overwrites url for snapshot create
                    type: string
                  snapshotDeleteURL:
                    description: SnapShotDeleteURL overwrites url for snapshot delete
                    type: string
                  volumeMounts:
                    description: VolumeMounts allows configuration of additional VolumeMounts
                      on the output Deployment definition. VolumeMounts specified
                      will be appended to other VolumeMounts in the vmbackupmanager
                      container, that are generated as a result of StorageSpec objects.
                    items:
                      description: VolumeMount describes a mounting of a Volume within
                        a container.
                      properties:
                        mountPath:
                          description: Path within the container at which the volume
                            should be mounted.  Must not contain ':'.
                          type: string
                        mountPropagation:
                          description: mountPropagation determines how mounts are
                            propagated from the host to container and the other way
                            around. When not set, MountPropagationNone is used. This
                            field is beta in 1.10.
                          type: string
                        name:
                          description: This must match the Name of a Volume.
                          type: string
                        readOnly:
                          description: Mounted read-only if true, read-write otherwise
                            (false or unspecified). Defaults to false.
                          type: boolean
                        subPath:
                          description: Path within the volume from which the container's
                            volume should be mounted. Defaults to "" (volume's root).
                          type: string
                        subPathExpr:
                          description: Expanded path within the volume from which
                            the container's volume should be mounted. Behaves similarly
                            to SubPath but environment variable references $(VAR_NAME)
                            are expanded using the container's environment. Defaults
                            to "" (volume's root). SubPathExpr and SubPath are mutually
                            exclusive.
                          type: string
                      required:
                      - mountPath
                      - name
                      type: object
                    type: array
                required:
                - acceptEULA
                type: object
              volumeMounts:
                description: VolumeMounts allows configuration of additional VolumeMounts
                  on the output Deployment definition. VolumeMounts specified will
                  be appended to other VolumeMounts in the VMSingle container, that
                  are generated as a result of StorageSpec objects.
                items:
                  description: VolumeMount describes a mounting of a Volume within
                    a container.
                  properties:
                    mountPath:
                      description: Path within the container at which the volume should
                        be mounted.  Must not contain ':'.
                      type: string
                    mountPropagation:
                      description: mountPropagation determines how mounts are propagated
                        from the host to container and the other way around. When
                        not set, MountPropagationNone is used. This field is beta
                        in 1.10.
                      type: string
                    name:
                      description: This must match the Name of a Volume.
                      type: string
                    readOnly:
                      description: Mounted read-only if true, read-write otherwise
                        (false or unspecified). Defaults to false.
                      type: boolean
                    subPath:
                      description: Path within the volume from which the container's
                        volume should be mounted. Defaults to "" (volume's root).
                      type: string
                    subPathExpr:
                      description: Expanded path within the volume from which the
                        container's volume should be mounted. Behaves similarly to
                        SubPath but environment variable references $(VAR_NAME) are
                        expanded using the container's environment. Defaults to ""
                        (volume's root). SubPathExpr and SubPath are mutually exclusive.
                      type: string
                  required:
                  - mountPath
                  - name
                  type: object
                type: array
              volumes:
                description: Volumes allows configuration of additional volumes on
                  the output deploy definition. Volumes specified will be appended
                  to other volumes that are generated as a result of StorageSpec objects.
                items:
                  description: Volume represents a named volume in a pod that may
                    be accessed by any container in the pod.
                  required:
                  - name
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
            required:
            - retentionPeriod
            type: object
          status:
            description: VMSingleStatus defines the observed state of VMSingle
            properties:
              availableReplicas:
                description: AvailableReplicas Total number of available pods (ready
                  for at least minReadySeconds) targeted by this VMAlert cluster.
                format: int32
                type: integer
              replicas:
                description: ReplicaCount Total number of non-terminated pods targeted
                  by this VMAlert cluster (their labels match the selector).
                format: int32
                type: integer
              unavailableReplicas:
                description: UnavailableReplicas Total number of unavailable pods
                  targeted by this VMAlert cluster.
                format: int32
                type: integer
              updatedReplicas:
                description: UpdatedReplicas Total number of non-terminated pods targeted
                  by this VMAlert cluster that have the desired version spec.
                format: int32
                type: integer
            required:
            - availableReplicas
            - replicas
            - unavailableReplicas
            - updatedReplicas
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
