def kopf_thread( ready_flag: threading.Event, stop_flag: threading.Event, ): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) kopf.configure(verbose=True) # log formatting loop.run_until_complete( kopf.operator( ready_flag=ready_flag, stop_flag=stop_flag, ))
def TriadControllerLoop( ready_flag: threading.Event, stop_flag: threading.Event, ): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) with contextlib.closing(loop): kopf.configure(verbose=False) # log formatting loop.set_exception_handler(HandleExceptions) loop.run_until_complete(kopf.operator( ready_flag=ready_flag, stop_flag=stop_flag, ))
def kopf_thread( ready_flag: threading.Event, stop_flag: threading.Event, ): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) with contextlib.closing(loop): kopf.configure(verbose=True) # log formatting loop.run_until_complete( kopf.operator( ready_flag=ready_flag, stop_flag=stop_flag, memo=kopf.Memo( create_tpl="Hello, {name}!", delete_tpl="Good bye, {name}!", ), ))
def default_main(program_argparsers): argparser = argparse.ArgumentParser(parents=program_argparsers, add_help=False) argparser.add_argument("--verbose", "-v", default=False, action="store_true") argparser.add_argument("namespace", help="Namespace to watch for changes") args = argparser.parse_args() kopf.configure(verbose=args.verbose) print(f"globalconf: {globalconf.current_values()}") kopf.login_via_pykube(logger=logger) state.api = pykube.HTTPClient(_get_pykube_config()) run_kopf(args.namespace)
import kopf import logging import os from env_vars import get_required_env_var, get_env_var_bool, get_env_var_int # Here we use Kopf's logging macro to setup the logging format and level for all modules DEBUG = get_env_var_bool("DEBUG") kopf.configure(debug=DEBUG) logger = logging.getLogger(__name__) if DEBUG: logger.info("DEBUG mode is activated!") LABEL = get_required_env_var('LABEL') LABEL_VALUE = os.getenv('LABEL_VALUE') if LABEL_VALUE: logger.info("Looking for resources with LABEL '%s' and LABEL_VALUE '%s'", LABEL, LABEL_VALUE) else: logger.info("Looking for resources with LABEL '%s'", LABEL) FOLDER = get_required_env_var('FOLDER') logger.info("The default FOLDER to write files to is %s", FOLDER) FOLDER_ANNOTATION = os.getenv('FOLDER_ANNOTATION', 'k8s-sidecar-target-directory') logger.info("FOLDER_ANNOTATION for the destination folder is '%s'", FOLDER_ANNOTATION) NAMESPACE = os.getenv('NAMESPACE', 'ALL')