Interface BuildTimeControllerConfiguration


public interface BuildTimeControllerConfiguration
  • Method Summary

    Modifier and Type
    Method
    Description
    An optional list of comma-separated watched namespace names that will be used to generate manifests at build time.
    Whether the controller should only process events if the associated resource generation has increased since last reconciliation, otherwise will process all events.
    boolean
    Indicates whether the primary resource for the associated controller is unowned, meaning that another controller is the principal controller handling resources of this type.
  • Method Details

    • generationAware

      Optional<Boolean> generationAware()
      Whether the controller should only process events if the associated resource generation has increased since last reconciliation, otherwise will process all events.
    • generateWithWatchedNamespaces

      Optional<List<String>> generateWithWatchedNamespaces()
      An optional list of comma-separated watched namespace names that will be used to generate manifests at build time.

      Note that this is provided as a means to quickly deploy a specific controller to test it by applying the generated manifests to the target cluster. If empty, no manifests will be generated. The namespace in which the controller will be deployed will be the currently configured namespace as specified by your .kube/config file, unless you specify the target deployment namespace using the quarkus.kubernetes.namespace property.

      As this functionality cannot handle namespaces that are not know until runtime (because the generation happens during build time), we recommend that you use a different mechanism such as OLM or Helm charts to deploy your operator in production.

      This replaces the previous namespaces property which was confusing and against Quarkus best practices since it existed both at build time and runtime. That property wasn't also adequately capturing the fact that namespaces that wouldn't be known until runtime would render whatever got generated at build time invalid as far as generated manifests were concerned.

    • unownedPrimary

      @WithDefault("false") boolean unownedPrimary()
      Indicates whether the primary resource for the associated controller is unowned, meaning that another controller is the principal controller handling resources of this type. By default, controllers are assumed to own their primary resource but there are cases where this might not be the case, for example, when extra processing of a given resource type is required even though another controller already handles reconciliations of resources of that type. Set this property to true if you want to indicate that the controller doesn't own its primary resource