All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkiverse.operatorsdk.runtime.RunTimeControllerConfiguration Maven / Gradle / Ivy

The newest version!
package io.quarkiverse.operatorsdk.runtime;

import static io.quarkiverse.operatorsdk.runtime.Constants.QOSDK_USE_BUILDTIME_NAMESPACES;

import java.time.Duration;
import java.util.List;
import java.util.Optional;

import io.javaoperatorsdk.operator.api.reconciler.MaxReconciliationInterval;
import io.quarkus.runtime.annotations.ConfigGroup;
import io.smallrye.config.WithDefault;

@ConfigGroup
public interface RunTimeControllerConfiguration {

    /**
     * An optional list of comma-separated namespace names the controller should watch. If this
     * property is left empty then the controller will watch all namespaces.
     * The value can be set to "JOSDK_WATCH_CURRENT" to watch the current (default) namespace from kube config.
     * Constant(s) can be found in at {@link io.javaoperatorsdk.operator.api.reconciler.Constants}".
     */
    @WithDefault(QOSDK_USE_BUILDTIME_NAMESPACES)
    Optional> namespaces();

    /**
     * The optional name of the finalizer for the controller. If none is provided, one will be
     * automatically generated.
     */
    Optional finalizer();

    /**
     * The optional controller retry configuration
     */
    ExternalRetryConfiguration retry();

    /**
     * An optional list of comma-separated label selectors that Custom Resources must match to trigger the controller.
     * See ... for more details on
     * selectors.
     */
    Optional selector();

    /**
     * An optional {@link Duration} to specify the maximum time that is allowed to elapse before a reconciliation will happen
     * regardless of the presence of events. See {@link MaxReconciliationInterval#interval()} for more details.
     * Value is specified according to the rules defined at {@link Duration#parse(CharSequence)}.
     */
    Optional maxReconciliationInterval();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy