apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: kubecontrollersconfigurations.crd.projectcalico.org
spec:
  group: crd.projectcalico.org
  names:
    kind: KubeControllersConfiguration
    listKind: KubeControllersConfigurationList
    plural: kubecontrollersconfigurations
    singular: kubecontrollersconfiguration
  scope: Cluster
  versions:
    - name: v1
      schema:
        openAPIV3Schema:
          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:
                KubeControllersConfigurationSpec contains the values of the
                Kubernetes controllers configuration.
              properties:
                controllers:
                  description:
                    Controllers enables and configures individual Kubernetes
                    controllers
                  properties:
                    namespace:
                      description:
                        Namespace enables and configures the namespace controller.
                        Enabled by default, set to nil to disable.
                      properties:
                        reconcilerPeriod:
                          description:
                            "ReconcilerPeriod is the period to perform reconciliation
                            with the Calico datastore. [Default: 5m]"
                          type: string
                      type: object
                    node:
                      description:
                        Node enables and configures the node controller.
                        Enabled by default, set to nil to disable.
                      properties:
                        hostEndpoint:
                          description:
                            HostEndpoint controls syncing nodes to host endpoints.
                            Disabled by default, set to nil to disable.
                          properties:
                            autoCreate:
                              description:
                                "AutoCreate enables automatic creation of
                                host endpoints for every node. [Default: Disabled]"
                              type: string
                          type: object
                        leakGracePeriod:
                          description:
                            "LeakGracePeriod is the period used by the controller
                            to determine if an IP address has been leaked. Set to 0
                            to disable IP garbage collection. [Default: 15m]"
                          type: string
                        reconcilerPeriod:
                          description:
                            "ReconcilerPeriod is the period to perform reconciliation
                            with the Calico datastore. [Default: 5m]"
                          type: string
                        syncLabels:
                          description:
                            "SyncLabels controls whether to copy Kubernetes
                            node labels to Calico nodes. [Default: Enabled]"
                          type: string
                      type: object
                    policy:
                      description:
                        Policy enables and configures the policy controller.
                        Enabled by default, set to nil to disable.
                      properties:
                        reconcilerPeriod:
                          description:
                            "ReconcilerPeriod is the period to perform reconciliation
                            with the Calico datastore. [Default: 5m]"
                          type: string
                      type: object
                    serviceAccount:
                      description:
                        ServiceAccount enables and configures the service
                        account controller. Enabled by default, set to nil to disable.
                      properties:
                        reconcilerPeriod:
                          description:
                            "ReconcilerPeriod is the period to perform reconciliation
                            with the Calico datastore. [Default: 5m]"
                          type: string
                      type: object
                    workloadEndpoint:
                      description:
                        WorkloadEndpoint enables and configures the workload
                        endpoint controller. Enabled by default, set to nil to disable.
                      properties:
                        reconcilerPeriod:
                          description:
                            "ReconcilerPeriod is the period to perform reconciliation
                            with the Calico datastore. [Default: 5m]"
                          type: string
                      type: object
                  type: object
                etcdV3CompactionPeriod:
                  description:
                    "EtcdV3CompactionPeriod is the period between etcdv3
                    compaction requests. Set to 0 to disable. [Default: 10m]"
                  type: string
                healthChecks:
                  description:
                    "HealthChecks enables or disables support for health
                    checks [Default: Enabled]"
                  type: string
                logSeverityScreen:
                  description:
                    "LogSeverityScreen is the log severity above which logs
                    are sent to the stdout. [Default: Info]"
                  type: string
                prometheusMetricsPort:
                  description:
                    "PrometheusMetricsPort is the TCP port that the Prometheus
                    metrics server should bind to. Set to 0 to disable. [Default: 9094]"
                  type: integer
              required:
                - controllers
              type: object
            status:
              description:
                KubeControllersConfigurationStatus represents the status
                of the configuration. It's useful for admins to be able to see the actual
                config that was applied, which can be modified by environment variables
                on the kube-controllers process.
              properties:
                environmentVars:
                  additionalProperties:
                    type: string
                  description:
                    EnvironmentVars contains the environment variables on
                    the kube-controllers that influenced the RunningConfig.
                  type: object
                runningConfig:
                  description:
                    RunningConfig contains the effective config that is running
                    in the kube-controllers pod, after merging the API resource with
                    any environment variables.
                  properties:
                    controllers:
                      description:
                        Controllers enables and configures individual Kubernetes
                        controllers
                      properties:
                        namespace:
                          description:
                            Namespace enables and configures the namespace
                            controller. Enabled by default, set to nil to disable.
                          properties:
                            reconcilerPeriod:
                              description:
                                "ReconcilerPeriod is the period to perform
                                reconciliation with the Calico datastore. [Default:
                                5m]"
                              type: string
                          type: object
                        node:
                          description:
                            Node enables and configures the node controller.
                            Enabled by default, set to nil to disable.
                          properties:
                            hostEndpoint:
                              description:
                                HostEndpoint controls syncing nodes to host
                                endpoints. Disabled by default, set to nil to disable.
                              properties:
                                autoCreate:
                                  description:
                                    "AutoCreate enables automatic creation
                                    of host endpoints for every node. [Default: Disabled]"
                                  type: string
                              type: object
                            leakGracePeriod:
                              description:
                                "LeakGracePeriod is the period used by the
                                controller to determine if an IP address has been leaked.
                                Set to 0 to disable IP garbage collection. [Default:
                                15m]"
                              type: string
                            reconcilerPeriod:
                              description:
                                "ReconcilerPeriod is the period to perform
                                reconciliation with the Calico datastore. [Default:
                                5m]"
                              type: string
                            syncLabels:
                              description:
                                "SyncLabels controls whether to copy Kubernetes
                                node labels to Calico nodes. [Default: Enabled]"
                              type: string
                          type: object
                        policy:
                          description:
                            Policy enables and configures the policy controller.
                            Enabled by default, set to nil to disable.
                          properties:
                            reconcilerPeriod:
                              description:
                                "ReconcilerPeriod is the period to perform
                                reconciliation with the Calico datastore. [Default:
                                5m]"
                              type: string
                          type: object
                        serviceAccount:
                          description:
                            ServiceAccount enables and configures the service
                            account controller. Enabled by default, set to nil to disable.
                          properties:
                            reconcilerPeriod:
                              description:
                                "ReconcilerPeriod is the period to perform
                                reconciliation with the Calico datastore. [Default:
                                5m]"
                              type: string
                          type: object
                        workloadEndpoint:
                          description:
                            WorkloadEndpoint enables and configures the workload
                            endpoint controller. Enabled by default, set to nil to disable.
                          properties:
                            reconcilerPeriod:
                              description:
                                "ReconcilerPeriod is the period to perform
                                reconciliation with the Calico datastore. [Default:
                                5m]"
                              type: string
                          type: object
                      type: object
                    etcdV3CompactionPeriod:
                      description:
                        "EtcdV3CompactionPeriod is the period between etcdv3
                        compaction requests. Set to 0 to disable. [Default: 10m]"
                      type: string
                    healthChecks:
                      description:
                        "HealthChecks enables or disables support for health
                        checks [Default: Enabled]"
                      type: string
                    logSeverityScreen:
                      description:
                        "LogSeverityScreen is the log severity above which
                        logs are sent to the stdout. [Default: Info]"
                      type: string
                    prometheusMetricsPort:
                      description:
                        "PrometheusMetricsPort is the TCP port that the Prometheus
                        metrics server should bind to. Set to 0 to disable. [Default:
                        9094]"
                      type: integer
                  required:
                    - controllers
                  type: object
              type: object
          type: object
      served: true
      storage: true
