paasta-tools 1.4.23__tar.gz → 1.4.25__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {paasta-tools-1.4.23/paasta_tools.egg-info → paasta-tools-1.4.25}/PKG-INFO +1 -1
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/local_run.py +4 -1
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/spark_run.py +4 -1
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/status.py +12 -4
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/tron_schema.json +2 -1
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/utils.py +17 -3
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/instance/kubernetes.py +6 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/setup_kubernetes_cr.py +8 -2
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/utils.py +4 -0
- paasta-tools-1.4.25/paasta_tools/vitesscell_tools.py +289 -0
- paasta-tools-1.4.25/paasta_tools/vitesscluster_tools.py +499 -0
- paasta-tools-1.4.25/paasta_tools/vitesskeyspace_tools.py +539 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools.egg-info/SOURCES.txt +2 -0
- paasta-tools-1.4.23/paasta_tools/vitesscluster_tools.py +0 -904
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/MANIFEST.in +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/README.md +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/api.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/client.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cli.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/logs.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/instance/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/log_task_lifecycle_events.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/mesos_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/metrics/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/oom_logger.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paasta_remote_run.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_status_vitesscluster.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/smartstack_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/spark_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools/tron_tools.py +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/pyproject.toml +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/requirements-minimal.txt +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/setup.cfg +0 -0
- {paasta-tools-1.4.23 → paasta-tools-1.4.25}/setup.py +0 -0
|
@@ -1209,7 +1209,10 @@ def configure_and_run_docker_container(
|
|
|
1209
1209
|
if pull_image:
|
|
1210
1210
|
docker_pull_image(docker_url)
|
|
1211
1211
|
|
|
1212
|
-
for volume in instance_config.get_volumes(
|
|
1212
|
+
for volume in instance_config.get_volumes(
|
|
1213
|
+
system_paasta_config.get_volumes(),
|
|
1214
|
+
system_paasta_config.get_uses_bulkdata_default(),
|
|
1215
|
+
):
|
|
1213
1216
|
if os.path.exists(volume["hostPath"]):
|
|
1214
1217
|
volumes.append(
|
|
1215
1218
|
"{}:{}:{}".format(
|
|
@@ -1189,7 +1189,10 @@ def paasta_spark_run(args: argparse.Namespace) -> int:
|
|
|
1189
1189
|
if docker_image_digest is None:
|
|
1190
1190
|
return 1
|
|
1191
1191
|
|
|
1192
|
-
volumes = instance_config.get_volumes(
|
|
1192
|
+
volumes = instance_config.get_volumes(
|
|
1193
|
+
system_paasta_config.get_volumes(),
|
|
1194
|
+
system_paasta_config.get_uses_bulkdata_default(),
|
|
1195
|
+
)
|
|
1193
1196
|
app_base_name = get_spark_app_name(args.cmd or instance_config.get_cmd())
|
|
1194
1197
|
|
|
1195
1198
|
user_spark_opts = _parse_user_spark_args(args.spark_args)
|
|
@@ -95,14 +95,18 @@ from paasta_tools.utils import load_system_paasta_config
|
|
|
95
95
|
from paasta_tools.utils import PaastaColors
|
|
96
96
|
from paasta_tools.utils import remove_ansi_escape_sequences
|
|
97
97
|
from paasta_tools.utils import SystemPaastaConfig
|
|
98
|
-
from paasta_tools.
|
|
98
|
+
from paasta_tools.vitesscell_tools import VitessCellConfig
|
|
99
|
+
from paasta_tools.vitesscluster_tools import VitessClusterConfig
|
|
100
|
+
from paasta_tools.vitesskeyspace_tools import VitessKeyspaceConfig
|
|
99
101
|
|
|
100
102
|
FLINK_STATUS_MAX_THREAD_POOL_WORKERS = 50
|
|
101
103
|
ALLOWED_INSTANCE_CONFIG: Sequence[Type[InstanceConfig]] = [
|
|
102
104
|
FlinkDeploymentConfig,
|
|
103
105
|
FlinkEksDeploymentConfig,
|
|
104
106
|
CassandraClusterDeploymentConfig,
|
|
105
|
-
|
|
107
|
+
VitessClusterConfig,
|
|
108
|
+
VitessCellConfig,
|
|
109
|
+
VitessKeyspaceConfig,
|
|
106
110
|
KafkaClusterDeploymentConfig,
|
|
107
111
|
KubernetesDeploymentConfig,
|
|
108
112
|
EksDeploymentConfig,
|
|
@@ -115,7 +119,9 @@ DEPLOYMENT_INSTANCE_CONFIG: Sequence[Type[InstanceConfig]] = [
|
|
|
115
119
|
FlinkDeploymentConfig,
|
|
116
120
|
FlinkEksDeploymentConfig,
|
|
117
121
|
CassandraClusterDeploymentConfig,
|
|
118
|
-
|
|
122
|
+
VitessClusterConfig,
|
|
123
|
+
VitessCellConfig,
|
|
124
|
+
VitessKeyspaceConfig,
|
|
119
125
|
KafkaClusterDeploymentConfig,
|
|
120
126
|
KubernetesDeploymentConfig,
|
|
121
127
|
EksDeploymentConfig,
|
|
@@ -137,7 +143,9 @@ InstanceStatusWriter = Callable[
|
|
|
137
143
|
EKS_DEPLOYMENT_CONFIGS = [
|
|
138
144
|
EksDeploymentConfig,
|
|
139
145
|
FlinkEksDeploymentConfig,
|
|
140
|
-
|
|
146
|
+
VitessClusterConfig,
|
|
147
|
+
VitessCellConfig,
|
|
148
|
+
VitessKeyspaceConfig,
|
|
141
149
|
]
|
|
142
150
|
FLINK_DEPLOYMENT_CONFIGS = [FlinkDeploymentConfig, FlinkEksDeploymentConfig]
|
|
143
151
|
|
|
@@ -424,9 +424,10 @@
|
|
|
424
424
|
"pattern": "^[1-9]+[0-9]*[kmgt]$"
|
|
425
425
|
},
|
|
426
426
|
{
|
|
427
|
+
"$comment": "The value 0 can be used to specify unlimited max result size.",
|
|
427
428
|
"type": "number",
|
|
428
429
|
"minimum": 0,
|
|
429
|
-
"exclusiveMinimum":
|
|
430
|
+
"exclusiveMinimum": false
|
|
430
431
|
}
|
|
431
432
|
]
|
|
432
433
|
},
|
|
@@ -76,7 +76,9 @@ from paasta_tools.utils import PAASTA_K8S_INSTANCE_TYPES
|
|
|
76
76
|
from paasta_tools.utils import PaastaColors
|
|
77
77
|
from paasta_tools.utils import SystemPaastaConfig
|
|
78
78
|
from paasta_tools.utils import validate_service_instance
|
|
79
|
-
from paasta_tools.
|
|
79
|
+
from paasta_tools.vitesscell_tools import load_vitess_cell_instance_config
|
|
80
|
+
from paasta_tools.vitesscluster_tools import load_vitess_cluster_instance_config
|
|
81
|
+
from paasta_tools.vitesskeyspace_tools import load_vitess_keyspace_instance_config
|
|
80
82
|
|
|
81
83
|
try:
|
|
82
84
|
from vault_tools.paasta_secret import get_client as get_vault_client
|
|
@@ -680,7 +682,13 @@ INSTANCE_TYPE_HANDLERS: Mapping[str, InstanceTypeHandler] = defaultdict(
|
|
|
680
682
|
get_service_instance_list, load_kafkacluster_instance_config
|
|
681
683
|
),
|
|
682
684
|
vitesscluster=InstanceTypeHandler(
|
|
683
|
-
get_service_instance_list,
|
|
685
|
+
get_service_instance_list, load_vitess_cluster_instance_config
|
|
686
|
+
),
|
|
687
|
+
vitesscell=InstanceTypeHandler(
|
|
688
|
+
get_service_instance_list, load_vitess_cell_instance_config
|
|
689
|
+
),
|
|
690
|
+
vitesskeyspace=InstanceTypeHandler(
|
|
691
|
+
get_service_instance_list, load_vitess_keyspace_instance_config
|
|
684
692
|
),
|
|
685
693
|
nrtsearchservice=InstanceTypeHandler(
|
|
686
694
|
get_service_instance_list, load_nrtsearchservice_instance_config
|
|
@@ -713,7 +721,13 @@ LONG_RUNNING_INSTANCE_TYPE_HANDLERS: Mapping[
|
|
|
713
721
|
get_service_instance_list, load_kafkacluster_instance_config
|
|
714
722
|
),
|
|
715
723
|
vitesscluster=LongRunningInstanceTypeHandler(
|
|
716
|
-
get_service_instance_list,
|
|
724
|
+
get_service_instance_list, load_vitess_cluster_instance_config
|
|
725
|
+
),
|
|
726
|
+
vitesscell=LongRunningInstanceTypeHandler(
|
|
727
|
+
get_service_instance_list, load_vitess_cell_instance_config
|
|
728
|
+
),
|
|
729
|
+
vitesskeyspace=LongRunningInstanceTypeHandler(
|
|
730
|
+
get_service_instance_list, load_vitess_keyspace_instance_config
|
|
717
731
|
),
|
|
718
732
|
nrtsearchservice=LongRunningInstanceTypeHandler(
|
|
719
733
|
get_service_instance_list, load_nrtsearchservice_instance_config
|
|
@@ -33,7 +33,9 @@ from paasta_tools import kubernetes_tools
|
|
|
33
33
|
from paasta_tools import monkrelaycluster_tools
|
|
34
34
|
from paasta_tools import nrtsearchservice_tools
|
|
35
35
|
from paasta_tools import smartstack_tools
|
|
36
|
+
from paasta_tools import vitesscell_tools
|
|
36
37
|
from paasta_tools import vitesscluster_tools
|
|
38
|
+
from paasta_tools import vitesskeyspace_tools
|
|
37
39
|
from paasta_tools.cli.utils import LONG_RUNNING_INSTANCE_TYPE_HANDLERS
|
|
38
40
|
from paasta_tools.instance.hpa_metrics_parser import HPAMetricsDict
|
|
39
41
|
from paasta_tools.instance.hpa_metrics_parser import HPAMetricsParser
|
|
@@ -57,6 +59,8 @@ INSTANCE_TYPES_CR = {
|
|
|
57
59
|
"cassandracluster",
|
|
58
60
|
"kafkacluster",
|
|
59
61
|
"vitesscluster",
|
|
62
|
+
"vitesscell",
|
|
63
|
+
"vitesskeyspace",
|
|
60
64
|
}
|
|
61
65
|
INSTANCE_TYPES_K8S = {
|
|
62
66
|
"cassandracluster",
|
|
@@ -72,6 +76,8 @@ INSTANCE_TYPE_CR_ID = dict(
|
|
|
72
76
|
cassandracluster=cassandracluster_tools.cr_id,
|
|
73
77
|
kafkacluster=kafkacluster_tools.cr_id,
|
|
74
78
|
vitesscluster=vitesscluster_tools.cr_id,
|
|
79
|
+
vitesscell=vitesscell_tools.cr_id,
|
|
80
|
+
vitesskeyspace=vitesskeyspace_tools.cr_id,
|
|
75
81
|
nrtsearchservice=nrtsearchservice_tools.cr_id,
|
|
76
82
|
nrtsearchserviceeks=nrtsearchservice_tools.cr_id,
|
|
77
83
|
monkrelaycluster=monkrelaycluster_tools.cr_id,
|
|
@@ -49,13 +49,19 @@ from paasta_tools.utils import get_config_hash
|
|
|
49
49
|
from paasta_tools.utils import get_git_sha_from_dockerurl
|
|
50
50
|
from paasta_tools.utils import load_all_configs
|
|
51
51
|
from paasta_tools.utils import load_system_paasta_config
|
|
52
|
-
from paasta_tools.
|
|
52
|
+
from paasta_tools.vitesscell_tools import load_vitess_cell_instance_configs
|
|
53
|
+
from paasta_tools.vitesscluster_tools import load_vitess_cluster_instance_configs
|
|
54
|
+
from paasta_tools.vitesskeyspace_tools import load_vitess_keyspace_instance_configs
|
|
53
55
|
|
|
54
56
|
|
|
55
57
|
log = logging.getLogger(__name__)
|
|
56
58
|
|
|
57
59
|
|
|
58
|
-
INSTANCE_TYPE_TO_CONFIG_LOADER = {
|
|
60
|
+
INSTANCE_TYPE_TO_CONFIG_LOADER = {
|
|
61
|
+
"vitesscluster": load_vitess_cluster_instance_configs,
|
|
62
|
+
"vitesscell": load_vitess_cell_instance_configs,
|
|
63
|
+
"vitesskeyspace": load_vitess_keyspace_instance_configs,
|
|
64
|
+
}
|
|
59
65
|
|
|
60
66
|
|
|
61
67
|
class StdoutKubeClient:
|
|
@@ -137,6 +137,8 @@ INSTANCE_TYPES = (
|
|
|
137
137
|
"cassandracluster",
|
|
138
138
|
"kafkacluster",
|
|
139
139
|
"vitesscluster",
|
|
140
|
+
"vitesscell",
|
|
141
|
+
"vitesskeyspace",
|
|
140
142
|
"monkrelays",
|
|
141
143
|
"nrtsearchservice",
|
|
142
144
|
"nrtsearchserviceeks",
|
|
@@ -156,6 +158,8 @@ INSTANCE_TYPE_TO_K8S_NAMESPACE = {
|
|
|
156
158
|
"cassandracluster": "paasta-cassandraclusters",
|
|
157
159
|
"kafkacluster": "paasta-kafkaclusters",
|
|
158
160
|
"vitesscluster": "paasta-vitessclusters",
|
|
161
|
+
"vitesscell": "paasta-vitessclusters",
|
|
162
|
+
"vitesskeyspace": "paasta-vitessclusters",
|
|
159
163
|
"nrtsearchservice": "paasta-nrtsearchservices",
|
|
160
164
|
"nrtsearchserviceeks": "paasta-nrtsearchservices",
|
|
161
165
|
}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import Any
|
|
3
|
+
from typing import Dict
|
|
4
|
+
from typing import List
|
|
5
|
+
from typing import Mapping
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from typing import TypedDict
|
|
8
|
+
from typing import Union
|
|
9
|
+
|
|
10
|
+
import service_configuration_lib
|
|
11
|
+
|
|
12
|
+
from paasta_tools.kubernetes_tools import KubernetesDeploymentConfigDict
|
|
13
|
+
from paasta_tools.kubernetes_tools import sanitised_cr_name
|
|
14
|
+
from paasta_tools.utils import BranchDictV2
|
|
15
|
+
from paasta_tools.utils import deep_merge_dictionaries
|
|
16
|
+
from paasta_tools.utils import DEFAULT_SOA_DIR
|
|
17
|
+
from paasta_tools.utils import load_service_instance_config
|
|
18
|
+
from paasta_tools.utils import load_system_paasta_config
|
|
19
|
+
from paasta_tools.utils import load_v2_deployments_json
|
|
20
|
+
from paasta_tools.vitesscluster_tools import get_formatted_environment_variables
|
|
21
|
+
from paasta_tools.vitesscluster_tools import KVEnvVar
|
|
22
|
+
from paasta_tools.vitesscluster_tools import KVEnvVarValueFrom
|
|
23
|
+
from paasta_tools.vitesscluster_tools import RequestsDict
|
|
24
|
+
from paasta_tools.vitesscluster_tools import ResourceConfigDict
|
|
25
|
+
from paasta_tools.vitesscluster_tools import VitessDeploymentConfig
|
|
26
|
+
from paasta_tools.vitesscluster_tools import VitessDeploymentConfigDict
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
log = logging.getLogger(__name__)
|
|
30
|
+
log.addHandler(logging.NullHandler())
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
KUBERNETES_NAMESPACE = "paasta-vitessclusters"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# Global variables
|
|
37
|
+
TOPO_IMPLEMENTATION = "zk2"
|
|
38
|
+
TOPO_GLOBAL_ROOT = "/vitess-paasta/global"
|
|
39
|
+
|
|
40
|
+
VTGATE_EXTRA_ENV = {
|
|
41
|
+
"VAULT_ROLEID": {
|
|
42
|
+
"secretKeyRef": {
|
|
43
|
+
"name": "paasta-vitessclusters-secret-vitess-k8s-vault-vtgate-approle-roleid",
|
|
44
|
+
"key": "vault-vtgate-approle-roleid",
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"VAULT_SECRETID": {
|
|
48
|
+
"secretKeyRef": {
|
|
49
|
+
"name": "paasta-vitessclusters-secret-vitess-k8s-vault-vtgate-approle-secretid",
|
|
50
|
+
"key": "vault-vtgate-approle-secretid",
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class GatewayConfigDict(TypedDict, total=False):
|
|
57
|
+
affinity: Dict[str, Any]
|
|
58
|
+
extraEnv: List[Union[KVEnvVar, KVEnvVarValueFrom]]
|
|
59
|
+
extraFlags: Dict[str, str]
|
|
60
|
+
extraLabels: Dict[str, str]
|
|
61
|
+
replicas: int
|
|
62
|
+
resources: Dict[str, Any]
|
|
63
|
+
annotations: Mapping[str, Any]
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class VitessCellConfigDict(VitessDeploymentConfigDict, total=False):
|
|
67
|
+
name: str
|
|
68
|
+
allCells: List[str]
|
|
69
|
+
globalLockserver: Dict[str, str]
|
|
70
|
+
gateway: GatewayConfigDict
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def get_cell_config(
|
|
74
|
+
cell: str,
|
|
75
|
+
images: Dict[str, str],
|
|
76
|
+
allCells: List[str],
|
|
77
|
+
global_lock_server: Dict[str, str],
|
|
78
|
+
region: str,
|
|
79
|
+
vtgate_resources: ResourceConfigDict,
|
|
80
|
+
env: List[Union[KVEnvVar, KVEnvVarValueFrom]],
|
|
81
|
+
labels: Dict[str, str],
|
|
82
|
+
node_affinity: dict,
|
|
83
|
+
annotations: Mapping[str, Any],
|
|
84
|
+
) -> VitessCellConfigDict:
|
|
85
|
+
"""
|
|
86
|
+
get vtgate config
|
|
87
|
+
"""
|
|
88
|
+
replicas = vtgate_resources.get("replicas")
|
|
89
|
+
requests = vtgate_resources.get(
|
|
90
|
+
"requests", RequestsDict(cpu="100m", memory="256Mi")
|
|
91
|
+
)
|
|
92
|
+
environment_overrides: Dict[str, Any] = {
|
|
93
|
+
"VAULT_ADDR": f"https://vault-dre.{region}.yelpcorp.com:8200",
|
|
94
|
+
"VAULT_CACERT": f"/etc/vault/all_cas/acm-privateca-{region}.crt",
|
|
95
|
+
}
|
|
96
|
+
environment_overrides.update(VTGATE_EXTRA_ENV)
|
|
97
|
+
updated_vtgate_extra_env = (
|
|
98
|
+
get_formatted_environment_variables(environment_overrides) + env
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
config = VitessCellConfigDict(
|
|
102
|
+
name=cell,
|
|
103
|
+
images=images,
|
|
104
|
+
allCells=allCells,
|
|
105
|
+
globalLockserver=global_lock_server,
|
|
106
|
+
gateway=GatewayConfigDict(
|
|
107
|
+
affinity={"nodeAffinity": node_affinity},
|
|
108
|
+
extraEnv=updated_vtgate_extra_env,
|
|
109
|
+
extraFlags={
|
|
110
|
+
"mysql_auth_server_impl": "vault",
|
|
111
|
+
"mysql_auth_vault_addr": f"https://vault-dre.{region}.yelpcorp.com:8200",
|
|
112
|
+
"mysql_auth_vault_path": "secrets/vitess/vt-gate/vttablet_credentials.json",
|
|
113
|
+
"mysql_auth_vault_tls_ca": f"/etc/vault/all_cas/acm-privateca-{region}.crt",
|
|
114
|
+
"mysql_auth_vault_ttl": "60s",
|
|
115
|
+
},
|
|
116
|
+
extraLabels=labels,
|
|
117
|
+
replicas=replicas,
|
|
118
|
+
resources={
|
|
119
|
+
"requests": requests,
|
|
120
|
+
"limits": requests,
|
|
121
|
+
},
|
|
122
|
+
annotations=annotations,
|
|
123
|
+
),
|
|
124
|
+
)
|
|
125
|
+
return config
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class VitessCellInstanceConfigDict(KubernetesDeploymentConfigDict, total=False):
|
|
129
|
+
cell: str
|
|
130
|
+
cells: List[str]
|
|
131
|
+
zk_address: str
|
|
132
|
+
vtgate_resources: ResourceConfigDict
|
|
133
|
+
images: Dict[str, str]
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class VitessCellConfig(VitessDeploymentConfig):
|
|
137
|
+
config_dict: VitessCellInstanceConfigDict
|
|
138
|
+
|
|
139
|
+
config_filename_prefix = "vitesscell"
|
|
140
|
+
|
|
141
|
+
def __init__(
|
|
142
|
+
self,
|
|
143
|
+
service: str,
|
|
144
|
+
cluster: str,
|
|
145
|
+
instance: str,
|
|
146
|
+
config_dict: VitessCellConfigDict,
|
|
147
|
+
branch_dict: Optional[BranchDictV2],
|
|
148
|
+
soa_dir: str = DEFAULT_SOA_DIR,
|
|
149
|
+
) -> None:
|
|
150
|
+
super().__init__(
|
|
151
|
+
cluster=cluster, # superregion
|
|
152
|
+
instance=instance, # host-1
|
|
153
|
+
service=service, # vitess
|
|
154
|
+
soa_dir=soa_dir,
|
|
155
|
+
config_dict=config_dict,
|
|
156
|
+
branch_dict=branch_dict,
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
def get_images(self) -> Dict[str, str]:
|
|
160
|
+
vitess_images = self.config_dict.get(
|
|
161
|
+
"images", load_system_paasta_config().get_vitess_images()
|
|
162
|
+
)
|
|
163
|
+
return {
|
|
164
|
+
"vtctld": vitess_images["vtctld_image"],
|
|
165
|
+
"vtadmin": vitess_images["vtadmin_image"],
|
|
166
|
+
"vtgate": vitess_images["vtgate_image"],
|
|
167
|
+
"vttablet": vitess_images["vttablet_image"],
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
def get_global_lock_server(self) -> Dict[str, str]:
|
|
171
|
+
zk_address = self.config_dict.get("zk_address")
|
|
172
|
+
return {
|
|
173
|
+
"implementation": TOPO_IMPLEMENTATION,
|
|
174
|
+
"address": zk_address,
|
|
175
|
+
"rootPath": TOPO_GLOBAL_ROOT,
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
def get_vitess_cell_config(self) -> VitessCellConfigDict:
|
|
179
|
+
cell = self.config_dict.get("cell")
|
|
180
|
+
all_cells = self.config_dict.get("cells")
|
|
181
|
+
images = self.get_images()
|
|
182
|
+
global_lock_server = self.get_global_lock_server()
|
|
183
|
+
region = self.get_region()
|
|
184
|
+
vtgate_resources = self.config_dict.get("vtgate_resources")
|
|
185
|
+
|
|
186
|
+
formatted_env = self.get_env_variables()
|
|
187
|
+
labels = self.get_labels()
|
|
188
|
+
node_affinity = self.get_vitess_node_affinity()
|
|
189
|
+
annotations = self.get_annotations()
|
|
190
|
+
|
|
191
|
+
return get_cell_config(
|
|
192
|
+
cell,
|
|
193
|
+
images,
|
|
194
|
+
all_cells,
|
|
195
|
+
global_lock_server,
|
|
196
|
+
region,
|
|
197
|
+
vtgate_resources,
|
|
198
|
+
formatted_env,
|
|
199
|
+
labels,
|
|
200
|
+
node_affinity,
|
|
201
|
+
annotations,
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
def validate(
|
|
205
|
+
self,
|
|
206
|
+
params: List[str] = [
|
|
207
|
+
"cpus",
|
|
208
|
+
"security",
|
|
209
|
+
"dependencies_reference",
|
|
210
|
+
"deploy_group",
|
|
211
|
+
],
|
|
212
|
+
) -> List[str]:
|
|
213
|
+
# Use InstanceConfig to validate shared config keys like cpus and mem
|
|
214
|
+
# TODO: add mem back to this list once we fix PAASTA-15582 and
|
|
215
|
+
# move to using the same units as flink/marathon etc.
|
|
216
|
+
error_msgs = super().validate(params=params)
|
|
217
|
+
|
|
218
|
+
if error_msgs:
|
|
219
|
+
name = self.get_instance()
|
|
220
|
+
return [f"{name}: {msg}" for msg in error_msgs]
|
|
221
|
+
else:
|
|
222
|
+
return []
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def load_vitess_cell_instance_config(
|
|
226
|
+
service: str,
|
|
227
|
+
instance: str,
|
|
228
|
+
cluster: str,
|
|
229
|
+
load_deployments: bool = True,
|
|
230
|
+
soa_dir: str = DEFAULT_SOA_DIR,
|
|
231
|
+
) -> VitessCellConfig:
|
|
232
|
+
general_config = service_configuration_lib.read_service_configuration(
|
|
233
|
+
service, soa_dir=soa_dir
|
|
234
|
+
)
|
|
235
|
+
instance_config = load_service_instance_config(
|
|
236
|
+
service, instance, "vitesscell", cluster, soa_dir=soa_dir
|
|
237
|
+
)
|
|
238
|
+
general_config = deep_merge_dictionaries(
|
|
239
|
+
overrides=instance_config, defaults=general_config
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
branch_dict: Optional[BranchDictV2] = None
|
|
243
|
+
if load_deployments:
|
|
244
|
+
deployments_json = load_v2_deployments_json(service, soa_dir=soa_dir)
|
|
245
|
+
temp_instance_config = VitessCellConfig(
|
|
246
|
+
service=service,
|
|
247
|
+
cluster=cluster,
|
|
248
|
+
instance=instance,
|
|
249
|
+
config_dict=general_config,
|
|
250
|
+
branch_dict=None,
|
|
251
|
+
soa_dir=soa_dir,
|
|
252
|
+
)
|
|
253
|
+
branch = temp_instance_config.get_branch()
|
|
254
|
+
deploy_group = temp_instance_config.get_deploy_group()
|
|
255
|
+
branch_dict = deployments_json.get_branch_dict(service, branch, deploy_group)
|
|
256
|
+
|
|
257
|
+
vitess_cell_config = VitessCellConfig(
|
|
258
|
+
service=service,
|
|
259
|
+
cluster=cluster,
|
|
260
|
+
instance=instance,
|
|
261
|
+
config_dict=general_config,
|
|
262
|
+
branch_dict=branch_dict,
|
|
263
|
+
soa_dir=soa_dir,
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
return vitess_cell_config
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
def load_vitess_cell_instance_configs(
|
|
270
|
+
service: str,
|
|
271
|
+
instance: str,
|
|
272
|
+
cluster: str,
|
|
273
|
+
soa_dir: str = DEFAULT_SOA_DIR,
|
|
274
|
+
) -> VitessCellConfigDict:
|
|
275
|
+
vitess_cell_instance_configs = load_vitess_cell_instance_config(
|
|
276
|
+
service, instance, cluster, soa_dir=soa_dir
|
|
277
|
+
).get_vitess_cell_config()
|
|
278
|
+
return vitess_cell_instance_configs
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
# TODO: read this from CRD in service configs
|
|
282
|
+
def cr_id(service: str, instance: str) -> Mapping[str, str]:
|
|
283
|
+
return dict(
|
|
284
|
+
group="planetscale.com",
|
|
285
|
+
version="v2",
|
|
286
|
+
namespace=KUBERNETES_NAMESPACE,
|
|
287
|
+
plural="vitesscells",
|
|
288
|
+
name=sanitised_cr_name(service, instance),
|
|
289
|
+
)
|