def controller(ctx, provisioner_name, namespace, config, container_image, node_name, parent_dataset, dataset_mount_dir, set_kopf_log_level): log = ctx.obj['log'] log.debug('controller: provisioner_name: %s', provisioner_name) log.debug('controller: namespace: %s', namespace) log.debug('controller: config: %s', config) log.debug('controller: container_image: %s', container_image) log.debug('controller: node_name: %s', node_name) log.debug('controller: parent_dataset: %s', parent_dataset) log.debug('controller: dataset_mount_dir: %s', dataset_mount_dir) if set_kopf_log_level: logging.getLogger('kopf').setLevel(log.getEffectiveLevel()) # Import handlers module so they are registered with kopf. from . import handlers # Pass cli options to handlers. handlers.configure( provisioner_name=provisioner_name, namespace=namespace, parent_dataset=parent_dataset, config=config, container_image=container_image, node_name=node_name, dataset_mount_dir=dataset_mount_dir, ) log.info('Starting controller ...') from kopf.reactor import running running.run()
def run( __controls: CLIControls, paths: List[str], modules: List[str], peering_name: Optional[str], priority: int, standalone: bool, namespace: Optional[str], liveness_endpoint: Optional[str], ) -> None: """ Start an operator process and handle all the requests. """ if __controls.registry is not None: registries.set_default_registry(__controls.registry) loaders.preload( paths=paths, modules=modules, ) return running.run( standalone=standalone, namespace=namespace, priority=priority, peering_name=peering_name, liveness_endpoint=liveness_endpoint, registry=__controls.registry, settings=__controls.settings, stop_flag=__controls.stop_flag, ready_flag=__controls.ready_flag, vault=__controls.vault, )
def freeze( id: Optional[str], message: Optional[str], lifetime: int, namespaces: Collection[references.NamespacePattern], clusterwide: bool, peering_name: str, priority: int, ) -> None: """ Freeze the resource handling in the cluster. """ identity = peering.Identity(id) if id else peering.detect_own_id( manual=True) insights = references.Insights() settings = configuration.OperatorSettings() settings.peering.name = peering_name settings.peering.priority = priority return running.run(clusterwide=clusterwide, namespaces=namespaces, insights=insights, identity=identity, settings=settings, _command=peering.touch_command(insights=insights, identity=identity, settings=settings, lifetime=lifetime))
def run(paths, modules, peering_name, priority, standalone, namespace): """ Start an operator process and handle all the requests. """ cli_login() loaders.preload( paths=paths, modules=modules, ) return running.run( standalone=standalone, namespace=namespace, priority=priority, peering_name=peering_name, )
def run( paths: List[str], modules: List[str], peering_name: Optional[str], priority: int, standalone: bool, namespace: Optional[str], ) -> None: """ Start an operator process and handle all the requests. """ cli_login() loaders.preload( paths=paths, modules=modules, ) return running.run( standalone=standalone, namespace=namespace, priority=priority, peering_name=peering_name, )
def run( __controls: CLIControls, paths: List[str], modules: List[str], peering_name: Optional[str], priority: Optional[int], standalone: Optional[bool], namespaces: Collection[references.NamespacePattern], clusterwide: bool, liveness_endpoint: Optional[str], ) -> None: """ Start an operator process and handle all the requests. """ if os.environ.get( 'KOPF_RUN_NAMESPACE'): # legacy for single-namespace mode namespaces = tuple(namespaces) + ( os.environ.get('KOPF_RUN_NAMESPACE'), ) if namespaces and clusterwide: raise click.UsageError( "Either --namespace or --all-namespaces can be used, not both.") if __controls.registry is not None: registries.set_default_registry(__controls.registry) loaders.preload( paths=paths, modules=modules, ) return running.run( standalone=standalone, namespaces=namespaces, clusterwide=clusterwide, priority=priority, peering_name=peering_name, liveness_endpoint=liveness_endpoint, registry=__controls.registry, settings=__controls.settings, stop_flag=__controls.stop_flag, ready_flag=__controls.ready_flag, vault=__controls.vault, )