apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: logcollectors.operator.tigera.io
spec:
  group: operator.tigera.io
  names:
    kind: LogCollector
    listKind: LogCollectorList
    plural: logcollectors
    singular: logcollector
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          description:
            LogCollector installs the components required for Tigera flow
            and DNS log collection. At most one instance of this resource is supported.
            It must be named "tigera-secure". When created, this installs fluentd on
            all nodes configured to collect Tigera log data and export it to Tigera's
            Elasticsearch cluster as well as any additionally configured destinations.
          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: Specification of the desired state for Tigera log collection.
              properties:
                additionalSources:
                  description:
                    Configuration for importing audit logs from managed kubernetes
                    cluster log sources.
                  properties:
                    eksCloudwatchLog:
                      description:
                        If specified with EKS Provider in Installation, enables
                        fetching EKS audit logs.
                      properties:
                        fetchInterval:
                          description:
                            "Cloudwatch audit logs fetching interval in seconds.
                            Default: 60"
                          format: int32
                          type: integer
                        groupName:
                          description:
                            Cloudwatch log-group name containing EKS audit
                            logs.
                          type: string
                        region:
                          description: AWS Region EKS cluster is hosted in.
                          type: string
                        streamPrefix:
                          description:
                            "Prefix of Cloudwatch log stream containing EKS
                            audit logs in the log-group. Default: kube-apiserver-audit-"
                          type: string
                      required:
                        - groupName
                        - region
                      type: object
                  type: object
                additionalStores:
                  description:
                    Configuration for exporting flow, audit, and DNS logs
                    to external storage.
                  properties:
                    s3:
                      description:
                        If specified, enables exporting of flow, audit, and
                        DNS logs to Amazon S3 storage.
                      properties:
                        bucketName:
                          description: Name of the S3 bucket to send logs
                          type: string
                        bucketPath:
                          description: Path in the S3 bucket where to send logs
                          type: string
                        region:
                          description: AWS Region of the S3 bucket
                          type: string
                      required:
                        - bucketName
                        - bucketPath
                        - region
                      type: object
                    splunk:
                      description:
                        If specified, enables exporting of flow, audit, and
                        DNS logs to splunk.
                      properties:
                        endpoint:
                          description:
                            Location for splunk's http event collector end
                            point. example `https://1.2.3.4:8088`
                          type: string
                      required:
                        - endpoint
                      type: object
                    syslog:
                      description:
                        If specified, enables exporting of flow, audit, and
                        DNS logs to syslog.
                      properties:
                        endpoint:
                          description: "Location of the syslog server. example: tcp://1.2.3.4:601"
                          type: string
                        logTypes:
                          description:
                            LogTypes contains a list of types of logs to
                            export to syslog. By default, if this field is omitted,
                            it will be set to include all possible values.
                          items:
                            description:
                              SyslogLogType represents the allowable log
                              types for syslog. Allowable values are Audit, DNS, Flows
                              and IDSEvents. * Audit corresponds to audit logs for both
                              Kubernetes resources and Enterprise custom resources.
                              * DNS corresponds to DNS logs generated by Calico node.
                              * Flows corresponds to flow logs generated by Calico node.
                              * IDSEvents corresponds to event logs for the intrusion
                              detection system (anomaly detection, suspicious IPs, suspicious
                              domains and global alerts).
                            enum:
                              - Audit
                              - DNS
                              - Flows
                              - IDSEvents
                            type: string
                          type: array
                        packetSize:
                          description:
                            "PacketSize defines the maximum size of packets
                            to send to syslog. In general this is only needed if you
                            notice long logs being truncated. Default: 1024"
                          format: int32
                          type: integer
                      required:
                        - endpoint
                        - logTypes
                      type: object
                  type: object
                collectProcessPath:
                  description:
                    "Configuration for enabling/disabling process path collection
                    in flowlogs. If Enabled, this feature sets hostPID to true in order
                    to read process cmdline. Default: Enabled"
                  enum:
                    - Enabled
                    - Disabled
                  type: string
              type: object
            status:
              description: Most recently observed state for Tigera log collection.
              properties:
                state:
                  description: State provides user-readable status.
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
