From 12d64a2f75437d7d1b904c39e9b1010a74a3a91e Mon Sep 17 00:00:00 2001 From: Tejal Desai Date: Wed, 21 Oct 2020 15:40:54 -0700 Subject: [PATCH] Add an init phase to detect skaffold errors even before skaffold runner is created. (#4926) * Introduce a new Phase skaffold "Init" which indicates, skaffold failed in the initial phase. If, Minikube is not running, and skaffold deploy context is set to "minikube", skaffold fails when creating a runner. This failure has no phase attached to it. Adding a Init Phase, will help reduce errors where "UNKNOWN_ERROR" is seen to "INIT_KNOWNN" * add tests for init phase problem * minor style changes * code review comments * code review comments * code review comments: SessionEndEvent -> TerminationEvent --- cmd/skaffold/app/cmd/runner.go | 2 + docs/content/en/api/skaffold.swagger.json | 268 ++++++++- docs/content/en/docs/references/api/grpc.md | 46 +- .../{buildProblems.go => build_problems.go} | 0 ...roblems_test.go => build_problems_test.go} | 0 pkg/skaffold/errors/err_map.go | 2 +- pkg/skaffold/errors/errors.go | 73 ++- pkg/skaffold/errors/errors_test.go | 192 +++++- pkg/skaffold/errors/init_problems.go | 71 +++ pkg/skaffold/errors/init_problems_test.go | 112 ++++ pkg/skaffold/event/event.go | 11 + pkg/skaffold/runner/new.go | 5 +- proto/skaffold.pb.go | 548 +++++++++++------- proto/skaffold.proto | 59 +- 14 files changed, 1099 insertions(+), 290 deletions(-) rename pkg/skaffold/errors/{buildProblems.go => build_problems.go} (100%) rename pkg/skaffold/errors/{buildProblems_test.go => build_problems_test.go} (100%) create mode 100644 pkg/skaffold/errors/init_problems.go create mode 100644 pkg/skaffold/errors/init_problems_test.go diff --git a/cmd/skaffold/app/cmd/runner.go b/cmd/skaffold/app/cmd/runner.go index 86ddc9cbac5..7552d8d9e35 100644 --- a/cmd/skaffold/app/cmd/runner.go +++ b/cmd/skaffold/app/cmd/runner.go @@ -26,6 +26,7 @@ import ( "github.com/GoogleContainerTools/skaffold/pkg/skaffold/config" sErrors "github.com/GoogleContainerTools/skaffold/pkg/skaffold/errors" + "github.com/GoogleContainerTools/skaffold/pkg/skaffold/event" kubectx "github.com/GoogleContainerTools/skaffold/pkg/skaffold/kubernetes/context" "github.com/GoogleContainerTools/skaffold/pkg/skaffold/runner" "github.com/GoogleContainerTools/skaffold/pkg/skaffold/runner/runcontext" @@ -60,6 +61,7 @@ func createNewRunner(opts config.SkaffoldOptions) (runner.Runner, *latest.Skaffo runner, err := runner.NewForConfig(runCtx) if err != nil { + event.InititializationFailed(err) return nil, nil, fmt.Errorf("creating runner: %w", err) } diff --git a/docs/content/en/api/skaffold.swagger.json b/docs/content/en/api/skaffold.swagger.json index f894e87ba6b..c3da36636b6 100644 --- a/docs/content/en/api/skaffold.swagger.json +++ b/docs/content/en/api/skaffold.swagger.json @@ -151,7 +151,7 @@ }, { "name": "event.buildEvent.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -193,6 +193,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -201,13 +202,22 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, { "name": "event.buildEvent.actionableErr.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -249,6 +259,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -257,7 +268,16 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, @@ -281,7 +301,7 @@ }, { "name": "event.deployEvent.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -323,6 +343,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -331,13 +352,22 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, { "name": "event.deployEvent.actionableErr.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -379,6 +409,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -387,7 +418,16 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, @@ -473,7 +513,7 @@ }, { "name": "event.statusCheckEvent.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -515,6 +555,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -523,13 +564,22 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, { "name": "event.statusCheckEvent.actionableErr.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -571,6 +621,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -579,7 +630,16 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, @@ -615,7 +675,7 @@ }, { "name": "event.resourceStatusCheckEvent.statusCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -657,6 +717,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -665,13 +726,22 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, { "name": "event.resourceStatusCheckEvent.actionableErr.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -713,6 +783,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -721,7 +792,16 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, @@ -758,7 +838,7 @@ }, { "name": "event.fileSyncEvent.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -800,6 +880,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -808,13 +889,22 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, { "name": "event.fileSyncEvent.actionableErr.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -856,6 +946,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -864,7 +955,16 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, @@ -931,7 +1031,7 @@ }, { "name": "event.devLoopEvent.err.errCode", - "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", "in": "query", "required": false, "type": "string", @@ -973,6 +1073,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -981,7 +1082,16 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK" }, @@ -991,6 +1101,84 @@ "required": false, "type": "string" }, + { + "name": "event.terminationEvent.status", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "event.terminationEvent.err.errCode", + "description": " - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "OK", + "STATUSCHECK_SUCCESS", + "BUILD_SUCCESS", + "DEPLOY_SUCCESS", + "BUILD_PUSH_ACCESS_DENIED", + "BUILD_PROJECT_NOT_FOUND", + "BUILD_DOCKER_DAEMON_NOT_RUNNING", + "STATUSCHECK_IMAGE_PULL_ERR", + "STATUSCHECK_CONTAINER_CREATING", + "STATUSCHECK_RUN_CONTAINER_ERR", + "STATUSCHECK_CONTAINER_TERMINATED", + "STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING", + "STATUSCHECK_CONTAINER_RESTARTING", + "STATUSCHECK_UNHEALTHY", + "STATUSCHECK_NODE_MEMORY_PRESSURE", + "STATUSCHECK_NODE_DISK_PRESSURE", + "STATUSCHECK_NODE_NETWORK_UNAVAILABLE", + "STATUSCHECK_NODE_PID_PRESSURE", + "STATUSCHECK_NODE_UNSCHEDULABLE", + "STATUSCHECK_NODE_UNREACHABLE", + "STATUSCHECK_NODE_NOT_READY", + "STATUSCHECK_FAILED_SCHEDULING", + "STATUSCHECK_KUBECTL_CONNECTION_ERR", + "STATUSCHECK_KUBECTL_PID_KILLED", + "STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR", + "STATUSCHECK_DEPLOYMENT_FETCH_ERR", + "STATUSCHECK_POD_INITIALIZING", + "UNKNOWN_ERROR", + "STATUSCHECK_UNKNOWN", + "STATUSCHECK_UNKNOWN_UNSCHEDULABLE", + "STATUSCHECK_CONTAINER_WAITING_UNKNOWN", + "STATUSCHECK_UNKNOWN_EVENT", + "DEPLOY_UNKNOWN", + "SYNC_UNKNOWN", + "BUILD_UNKNOWN", + "DEVINIT_UNKNOWN", + "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", + "SYNC_INIT_ERROR", + "DEVINIT_REGISTER_BUILD_DEPS", + "DEVINIT_REGISTER_TEST_DEPS", + "DEVINIT_REGISTER_DEPLOY_DEPS", + "DEVINIT_REGISTER_CONFIG_DEP", + "STATUSCHECK_USER_CANCELLED", + "STATUSCHECK_DEADLINE_EXCEEDED", + "BUILD_CANCELLED", + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" + ], + "default": "OK" + }, + { + "name": "event.terminationEvent.err.message", + "in": "query", + "required": false, + "type": "string" + }, { "name": "entry", "in": "query", @@ -1402,6 +1590,9 @@ }, "devLoopEvent": { "$ref": "#/definitions/protoDevLoopEvent" + }, + "terminationEvent": { + "$ref": "#/definitions/protoTerminationEvent" } }, "description": "`Event` describes an event in the Skaffold process.\nIt is one of MetaEvent, BuildEvent, DeployEvent, PortEvent, StatusCheckEvent, ResourceStatusCheckEvent, FileSyncEvent, or DebuggingContainerEvent." @@ -1683,6 +1874,7 @@ "BUILD_UNKNOWN", "DEVINIT_UNKNOWN", "CLEANUP_UNKNOWN", + "INIT_UNKNOWN", "SYNC_INIT_ERROR", "DEVINIT_REGISTER_BUILD_DEPS", "DEVINIT_REGISTER_TEST_DEPS", @@ -1691,10 +1883,19 @@ "STATUSCHECK_USER_CANCELLED", "STATUSCHECK_DEADLINE_EXCEEDED", "BUILD_CANCELLED", - "DEPLOY_CANCELLED" + "DEPLOY_CANCELLED", + "INIT_CREATE_TAGGER_ERROR", + "INIT_MINIKUBE_PAUSED_ERROR", + "INIT_MINIKUBE_NOT_RUNNING_ERROR", + "INIT_CREATE_BUILDER_ERROR", + "INIT_CREATE_DEPLOYER_ERROR", + "INIT_CREATE_TEST_DEP_ERROR", + "INIT_CACHE_ERROR", + "INIT_CREATE_WATCH_TRIGGER_ERROR", + "INIT_CREATE_ARTIFACT_DEP_ERROR" ], "default": "OK", - "description": "Enum for Status codes\nThese error codes are prepended by Phase Name e.g.\nBUILD, DEPLOY, STATUSCHECK, DEVINIT\nFor Success Error codes, use range 200 to 250.\nFor Unknown error codes, use range 500 to 600.\nFor Cancelled Error code, use range 800 to 850.\n\n - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build cancelled due to user cancellation or one or more build failed.\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed." + "description": "Enum for Status codes\nThese error codes are prepended by Phase Name e.g.\nBUILD, DEPLOY, STATUSCHECK, DEVINIT\nFor Success Error codes, use range 200 to 250.\nFor Unknown error codes, use range 500 to 600.\nFor Cancelled Error code, use range 800 to 850.\n\n - OK: A default status code for events that do not have an associated phase.\nTypically seen with the DevEndEvent event on success.\n - STATUSCHECK_SUCCESS: Status Check Success\n - BUILD_SUCCESS: Build Success\n - DEPLOY_SUCCESS: Deploy Success\n - BUILD_PUSH_ACCESS_DENIED: Build error due to push access denied\n - BUILD_PROJECT_NOT_FOUND: Build error due to GCP project not found.\n - STATUSCHECK_IMAGE_PULL_ERR: Container image pull error\n - STATUSCHECK_CONTAINER_CREATING: Container creating error\n - STATUSCHECK_RUN_CONTAINER_ERR: Container run error\n - STATUSCHECK_CONTAINER_TERMINATED: Container is already terminated\n - STATUSCHECK_DEPLOYMENT_ROLLOUT_PENDING: Deployment waiting for rollout\n - STATUSCHECK_CONTAINER_RESTARTING: Container restarting error\n - STATUSCHECK_UNHEALTHY: Readiness probe failed\n - STATUSCHECK_NODE_MEMORY_PRESSURE: Node memory pressure error\n - STATUSCHECK_NODE_DISK_PRESSURE: Node disk pressure error\n - STATUSCHECK_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - STATUSCHECK_NODE_PID_PRESSURE: Node PID pressure error\n - STATUSCHECK_NODE_UNSCHEDULABLE: Node unschedulable error\n - STATUSCHECK_NODE_UNREACHABLE: Node unreachable error\n - STATUSCHECK_NODE_NOT_READY: Node not ready error\n - STATUSCHECK_FAILED_SCHEDULING: Scheduler failure error\n - STATUSCHECK_KUBECTL_CONNECTION_ERR: Kubectl connection error\n - STATUSCHECK_KUBECTL_PID_KILLED: Kubectl process killed error\n - STATUSCHECK_KUBECTL_CLIENT_FETCH_ERR: Kubectl client fetch err\n - STATUSCHECK_POD_INITIALIZING: Pod Initializing\n - UNKNOWN_ERROR: Could not determine error and phase\n - STATUSCHECK_UNKNOWN: Status Check error unknown\n - STATUSCHECK_UNKNOWN_UNSCHEDULABLE: Container is unschedulable due to unknown reasons\n - STATUSCHECK_CONTAINER_WAITING_UNKNOWN: Container is waiting due to unknown reason\n - STATUSCHECK_UNKNOWN_EVENT: Container event reason unknown\n - DEPLOY_UNKNOWN: Deploy failed due to unknown reason\n - SYNC_UNKNOWN: SYNC failed due to known reason\n - BUILD_UNKNOWN: Build failed due to unknown reason\n - DEVINIT_UNKNOWN: Dev Init failed due to unknown reason\n - CLEANUP_UNKNOWN: Cleanup failed due to unknown reason\n - INIT_UNKNOWN: Initialization of the Skaffold session failed due to unknown reason(s)\n - SYNC_INIT_ERROR: File Sync Initialize failure\n - DEVINIT_REGISTER_BUILD_DEPS: Failed to configure watcher for build dependencies in dev loop\n - DEVINIT_REGISTER_TEST_DEPS: Failed to configure watcher for test dependencies in dev loop\n - DEVINIT_REGISTER_DEPLOY_DEPS: Failed to configure watcher for deploy dependencies in dev loop\n - DEVINIT_REGISTER_CONFIG_DEP: Failed to configure watcher for Skaffold configuration file.\n - STATUSCHECK_USER_CANCELLED: User cancelled the skaffold dev run\n - STATUSCHECK_DEADLINE_EXCEEDED: Deadline for status check exceeded\n - BUILD_CANCELLED: Build Cancelled\n - DEPLOY_CANCELLED: Deploy cancelled due to user cancellation or one or more deployers failed.\n - INIT_CREATE_TAGGER_ERROR: Skaffold was unable to create the configured tagger\n - INIT_MINIKUBE_PAUSED_ERROR: Skaffold was unable to start as Minikube appears to be paused\n - INIT_MINIKUBE_NOT_RUNNING_ERROR: Skaffold was unable to start as Minikube appears to be stopped\n - INIT_CREATE_BUILDER_ERROR: Skaffold was unable to create a configured image builder\n - INIT_CREATE_DEPLOYER_ERROR: Skaffold was unable to create a configured deployer\n - INIT_CREATE_TEST_DEP_ERROR: Skaffold was unable to create a configured test\n - INIT_CACHE_ERROR: Skaffold encountered an error validating the artifact cache\n - INIT_CREATE_WATCH_TRIGGER_ERROR: Skaffold encountered an error when configuring file watching\n - INIT_CREATE_ARTIFACT_DEP_ERROR: Skaffold encountered an error when evaluating artifact dependencies" }, "protoSuggestion": { "type": "object", @@ -1730,10 +1931,25 @@ "ADDRESS_NODE_UNREACHABLE", "ADDRESS_NODE_NOT_READY", "ADDRESS_FAILED_SCHEDULING", - "CHECK_HOST_CONNECTION" + "CHECK_HOST_CONNECTION", + "START_MINIKUBE", + "UNPAUSE_MINIKUBE", + "OPEN_ISSUE" ], "default": "NIL", - "description": "Enum for Suggestion codes\n- NIL: default nil suggestion.\nThis is usually set when no error happens.\n - ADD_DEFAULT_REPO: Build error suggestion codes\n - CHECK_CONTAINER_LOGS: Container run error\n - CHECK_READINESS_PROBE: Pod Health check error\n - CHECK_CONTAINER_IMAGE: Check Container image\n - ADDRESS_NODE_MEMORY_PRESSURE: Node pressure error\n - ADDRESS_NODE_DISK_PRESSURE: Node disk pressure error\n - ADDRESS_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - ADDRESS_NODE_PID_PRESSURE: Node PID pressure error\n - ADDRESS_NODE_UNSCHEDULABLE: Node unschedulable error\n - ADDRESS_NODE_UNREACHABLE: Node unreachable error\n - ADDRESS_NODE_NOT_READY: Node not ready error\n - ADDRESS_FAILED_SCHEDULING: Scheduler failure error\n - CHECK_HOST_CONNECTION: Cluster Connectivity error" + "description": "Enum for Suggestion codes\n- NIL: default nil suggestion.\nThis is usually set when no error happens.\n - ADD_DEFAULT_REPO: Add Default Repo\n - CHECK_DEFAULT_REPO: Verify Default Repo\n - CHECK_DEFAULT_REPO_GLOBAL_CONFIG: Verify default repo in the global config\n - GCLOUD_DOCKER_AUTH_CONFIGURE: run gcloud docker auth configure\n - DOCKER_AUTH_CONFIGURE: Run docker auth configure\n - CHECK_GCLOUD_PROJECT: Verify Gcloud Project\n - CHECK_DOCKER_RUNNING: Check if docker is running\n - CHECK_CONTAINER_LOGS: Container run error\n - CHECK_READINESS_PROBE: Pod Health check error\n - CHECK_CONTAINER_IMAGE: Check Container image\n - ADDRESS_NODE_MEMORY_PRESSURE: Node pressure error\n - ADDRESS_NODE_DISK_PRESSURE: Node disk pressure error\n - ADDRESS_NODE_NETWORK_UNAVAILABLE: Node network unavailable error\n - ADDRESS_NODE_PID_PRESSURE: Node PID pressure error\n - ADDRESS_NODE_UNSCHEDULABLE: Node unschedulable error\n - ADDRESS_NODE_UNREACHABLE: Node unreachable error\n - ADDRESS_NODE_NOT_READY: Node not ready error\n - ADDRESS_FAILED_SCHEDULING: Scheduler failure error\n - CHECK_HOST_CONNECTION: Cluster Connectivity error\n - START_MINIKUBE: Minikube is stopped: use `minikube start`\n - UNPAUSE_MINIKUBE: Minikube is paused: use `minikube unpause`\n - OPEN_ISSUE: Open an issue so this situation can be diagnosed" + }, + "protoTerminationEvent": { + "type": "object", + "properties": { + "status": { + "type": "string" + }, + "err": { + "$ref": "#/definitions/protoActionableErr" + } + }, + "description": "`TerminationEvent` marks the end of the skaffold session" }, "protoTriggerState": { "type": "object", diff --git a/docs/content/en/docs/references/api/grpc.md b/docs/content/en/docs/references/api/grpc.md index a887c96ee26..1b978bd0118 100644 --- a/docs/content/en/docs/references/api/grpc.md +++ b/docs/content/en/docs/references/api/grpc.md @@ -312,6 +312,7 @@ It is one of MetaEvent, BuildEvent, DeployEvent, PortEvent, StatusCheckEvent, Re | fileSyncEvent | [FileSyncEvent](#proto.FileSyncEvent) | | describes the sync status. | | debuggingContainerEvent | [DebuggingContainerEvent](#proto.DebuggingContainerEvent) | | describes the appearance or disappearance of a debugging container | | devLoopEvent | [DevLoopEvent](#proto.DevLoopEvent) | | describes a start and end of a dev loop. | +| terminationEvent | [TerminationEvent](#proto.TerminationEvent) | | describes a skaffold termination event | @@ -635,6 +636,22 @@ Suggestion defines the action a user needs to recover from an error. + +#### TerminationEvent +`TerminationEvent` marks the end of the skaffold session + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| status | [string](#string) | | status oneof: Completed or Failed | +| err | [ActionableErr](#proto.ActionableErr) | | actionable error message | + + + + + + + #### TriggerRequest @@ -789,6 +806,7 @@ For Cancelled Error code, use range 800 to 850. | BUILD_UNKNOWN | 506 | Build failed due to unknown reason | | DEVINIT_UNKNOWN | 507 | Dev Init failed due to unknown reason | | CLEANUP_UNKNOWN | 508 | Cleanup failed due to unknown reason | +| INIT_UNKNOWN | 510 | Initialization of the Skaffold session failed due to unknown reason(s) | | SYNC_INIT_ERROR | 601 | File Sync Initialize failure | | DEVINIT_REGISTER_BUILD_DEPS | 701 | Failed to configure watcher for build dependencies in dev loop | | DEVINIT_REGISTER_TEST_DEPS | 702 | Failed to configure watcher for test dependencies in dev loop | @@ -796,8 +814,17 @@ For Cancelled Error code, use range 800 to 850. | DEVINIT_REGISTER_CONFIG_DEP | 704 | Failed to configure watcher for Skaffold configuration file. | | STATUSCHECK_USER_CANCELLED | 800 | User cancelled the skaffold dev run | | STATUSCHECK_DEADLINE_EXCEEDED | 801 | Deadline for status check exceeded | -| BUILD_CANCELLED | 802 | Build cancelled due to user cancellation or one or more build failed. | +| BUILD_CANCELLED | 802 | Build Cancelled | | DEPLOY_CANCELLED | 803 | Deploy cancelled due to user cancellation or one or more deployers failed. | +| INIT_CREATE_TAGGER_ERROR | 901 | Skaffold was unable to create the configured tagger | +| INIT_MINIKUBE_PAUSED_ERROR | 902 | Skaffold was unable to start as Minikube appears to be paused | +| INIT_MINIKUBE_NOT_RUNNING_ERROR | 903 | Skaffold was unable to start as Minikube appears to be stopped | +| INIT_CREATE_BUILDER_ERROR | 904 | Skaffold was unable to create a configured image builder | +| INIT_CREATE_DEPLOYER_ERROR | 905 | Skaffold was unable to create a configured deployer | +| INIT_CREATE_TEST_DEP_ERROR | 906 | Skaffold was unable to create a configured test | +| INIT_CACHE_ERROR | 907 | Skaffold encountered an error validating the artifact cache | +| INIT_CREATE_WATCH_TRIGGER_ERROR | 908 | Skaffold encountered an error when configuring file watching | +| INIT_CREATE_ARTIFACT_DEP_ERROR | 909 | Skaffold encountered an error when evaluating artifact dependencies | @@ -809,13 +836,13 @@ Enum for Suggestion codes | Name | Number | Description | | ---- |:------:| ----------- | | NIL | 0 | default nil suggestion. This is usually set when no error happens. | -| ADD_DEFAULT_REPO | 100 | Build error suggestion codes | -| CHECK_DEFAULT_REPO | 101 | | -| CHECK_DEFAULT_REPO_GLOBAL_CONFIG | 102 | | -| GCLOUD_DOCKER_AUTH_CONFIGURE | 103 | | -| DOCKER_AUTH_CONFIGURE | 104 | | -| CHECK_GCLOUD_PROJECT | 105 | | -| CHECK_DOCKER_RUNNING | 106 | | +| ADD_DEFAULT_REPO | 100 | Add Default Repo | +| CHECK_DEFAULT_REPO | 101 | Verify Default Repo | +| CHECK_DEFAULT_REPO_GLOBAL_CONFIG | 102 | Verify default repo in the global config | +| GCLOUD_DOCKER_AUTH_CONFIGURE | 103 | run gcloud docker auth configure | +| DOCKER_AUTH_CONFIGURE | 104 | Run docker auth configure | +| CHECK_GCLOUD_PROJECT | 105 | Verify Gcloud Project | +| CHECK_DOCKER_RUNNING | 106 | Check if docker is running | | CHECK_CONTAINER_LOGS | 301 | Container run error | | CHECK_READINESS_PROBE | 302 | Pod Health check error | | CHECK_CONTAINER_IMAGE | 303 | Check Container image | @@ -828,6 +855,9 @@ Enum for Suggestion codes | ADDRESS_NODE_NOT_READY | 406 | Node not ready error | | ADDRESS_FAILED_SCHEDULING | 407 | Scheduler failure error | | CHECK_HOST_CONNECTION | 408 | Cluster Connectivity error | +| START_MINIKUBE | 501 | Minikube is stopped: use `minikube start` | +| UNPAUSE_MINIKUBE | 502 | Minikube is paused: use `minikube unpause` | +| OPEN_ISSUE | 900 | Open an issue so this situation can be diagnosed | diff --git a/pkg/skaffold/errors/buildProblems.go b/pkg/skaffold/errors/build_problems.go similarity index 100% rename from pkg/skaffold/errors/buildProblems.go rename to pkg/skaffold/errors/build_problems.go diff --git a/pkg/skaffold/errors/buildProblems_test.go b/pkg/skaffold/errors/build_problems_test.go similarity index 100% rename from pkg/skaffold/errors/buildProblems_test.go rename to pkg/skaffold/errors/build_problems_test.go diff --git a/pkg/skaffold/errors/err_map.go b/pkg/skaffold/errors/err_map.go index c54234cc2d3..ea52ea1320d 100644 --- a/pkg/skaffold/errors/err_map.go +++ b/pkg/skaffold/errors/err_map.go @@ -82,7 +82,7 @@ var knownBuildProblems = []problem{ suggestion: func(config.SkaffoldOptions) []*proto.Suggestion { return []*proto.Suggestion{{ SuggestionCode: proto.SuggestionCode_CHECK_DOCKER_RUNNING, - Action: "Please check if docker is running", + Action: "Check if docker is running", }} }, }, diff --git a/pkg/skaffold/errors/errors.go b/pkg/skaffold/errors/errors.go index cbd5bbd5fdd..274947de9cb 100644 --- a/pkg/skaffold/errors/errors.go +++ b/pkg/skaffold/errors/errors.go @@ -27,17 +27,28 @@ import ( // These are phases in a DevLoop const ( + Init = Phase("Init") Build = Phase("Build") Deploy = Phase("Deploy") StatusCheck = Phase("StatusCheck") FileSync = Phase("FileSync") DevInit = Phase("DevInit") Cleanup = Phase("Cleanup") + + // Report issue text + reportIssueText = "If above error is unexpected, please open an issue https://github.com/GoogleContainerTools/skaffold/issues/new to report this error" ) var ( setOptionsOnce sync.Once skaffoldOpts config.SkaffoldOptions + + reportIssueSuggestion = func(config.SkaffoldOptions) []*proto.Suggestion { + return []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_OPEN_ISSUE, + Action: reportIssueText, + }} + } ) type Phase string @@ -61,10 +72,14 @@ func ActionableErr(phase Phase, err error) *proto.ActionableErr { } func ShowAIError(err error) error { - for _, v := range knownBuildProblems { + for _, v := range append(knownBuildProblems, knownInitProblems...) { if v.regexp.MatchString(err.Error()) { if suggestions := v.suggestion(skaffoldOpts); suggestions != nil { - return fmt.Errorf("%s. %s", strings.Trim(v.description(err), "."), concatSuggestions(suggestions)) + description := fmt.Sprintf("%s\n", err) + if v.description != nil { + description = strings.Trim(v.description(err), ".") + } + return fmt.Errorf("%s. %s", description, concatSuggestions(suggestions)) } return fmt.Errorf(v.description(err)) } @@ -73,24 +88,12 @@ func ShowAIError(err error) error { } func getErrorCodeFromError(phase Phase, err error) (proto.StatusCode, []*proto.Suggestion) { - switch phase { - case Build: - for _, v := range knownBuildProblems { + if problems, ok := allErrors[phase]; ok { + for _, v := range problems { if v.regexp.MatchString(err.Error()) { return v.errCode, v.suggestion(skaffoldOpts) } } - return proto.StatusCode_BUILD_UNKNOWN, nil - case Deploy: - return proto.StatusCode_DEPLOY_UNKNOWN, nil - case StatusCheck: - return proto.StatusCode_STATUSCHECK_UNKNOWN, nil - case FileSync: - return proto.StatusCode_SYNC_UNKNOWN, nil - case DevInit: - return proto.StatusCode_DEVINIT_UNKNOWN, nil - case Cleanup: - return proto.StatusCode_CLEANUP_UNKNOWN, nil } return proto.StatusCode_UNKNOWN_ERROR, nil } @@ -106,3 +109,41 @@ func concatSuggestions(suggestions []*proto.Suggestion) string { s.WriteString(".") return s.String() } + +var allErrors = map[Phase][]problem{ + Build: append(knownBuildProblems, problem{ + regexp: re(".*"), + errCode: proto.StatusCode_BUILD_UNKNOWN, + suggestion: reportIssueSuggestion, + }), + Init: append(knownInitProblems, problem{ + regexp: re(".*"), + errCode: proto.StatusCode_INIT_UNKNOWN, + suggestion: reportIssueSuggestion, + }), + Deploy: {{ + regexp: re(".*"), + errCode: proto.StatusCode_DEPLOY_UNKNOWN, + suggestion: reportIssueSuggestion, + }}, + StatusCheck: {{ + regexp: re(".*"), + errCode: proto.StatusCode_STATUSCHECK_UNKNOWN, + suggestion: reportIssueSuggestion, + }}, + FileSync: {{ + regexp: re(".*"), + errCode: proto.StatusCode_SYNC_UNKNOWN, + suggestion: reportIssueSuggestion, + }}, + DevInit: {{ + regexp: re(".*"), + errCode: proto.StatusCode_DEVINIT_UNKNOWN, + suggestion: reportIssueSuggestion, + }}, + Cleanup: {{ + regexp: re(".*"), + errCode: proto.StatusCode_CLEANUP_UNKNOWN, + suggestion: reportIssueSuggestion, + }}, +} diff --git a/pkg/skaffold/errors/errors_test.go b/pkg/skaffold/errors/errors_test.go index b960a5f0c7c..475acd61d02 100644 --- a/pkg/skaffold/errors/errors_test.go +++ b/pkg/skaffold/errors/errors_test.go @@ -21,6 +21,7 @@ import ( "testing" "github.com/GoogleContainerTools/skaffold/pkg/skaffold/config" + "github.com/GoogleContainerTools/skaffold/proto" "github.com/GoogleContainerTools/skaffold/testutil" ) @@ -28,81 +29,222 @@ func TestShowAIError(t *testing.T) { tests := []struct { description string opts config.SkaffoldOptions + phase Phase context *config.ContextConfig err error expected string + expectedAE *proto.ActionableErr }{ { description: "Push access denied when neither default repo or global config is defined", - opts: config.SkaffoldOptions{}, context: &config.ContextConfig{}, + phase: Build, err: fmt.Errorf("skaffold build failed: could not push image: denied: push access to resource"), expected: "Build Failed. No push access to specified image repository. Trying running with `--default-repo` flag.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_PUSH_ACCESS_DENIED, + Message: "skaffold build failed: could not push image: denied: push access to resource", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_ADD_DEFAULT_REPO, + Action: "Trying running with `--default-repo` flag", + }, + }}, }, { description: "Push access denied when default repo is defined", opts: config.SkaffoldOptions{DefaultRepo: stringOrUndefined("gcr.io/test")}, - context: &config.ContextConfig{}, + phase: Build, err: fmt.Errorf("skaffold build failed: could not push image image1 : denied: push access to resource"), expected: "Build Failed. No push access to specified image repository. Check your `--default-repo` value or try `gcloud auth configure-docker`.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_PUSH_ACCESS_DENIED, + Message: "skaffold build failed: could not push image image1 : denied: push access to resource", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_CHECK_DEFAULT_REPO, + Action: "Check your `--default-repo` value", + }, { + SuggestionCode: proto.SuggestionCode_GCLOUD_DOCKER_AUTH_CONFIGURE, + Action: "try `gcloud auth configure-docker`", + }, + }, + }, }, { description: "Push access denied when global repo is defined", - opts: config.SkaffoldOptions{}, context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, + phase: Build, err: fmt.Errorf("skaffold build failed: could not push image: denied: push access to resource"), expected: "Build Failed. No push access to specified image repository. Check your default-repo setting in skaffold config or try `docker login`.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_PUSH_ACCESS_DENIED, + Message: "skaffold build failed: could not push image: denied: push access to resource", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_CHECK_DEFAULT_REPO_GLOBAL_CONFIG, + Action: "Check your default-repo setting in skaffold config", + }, { + SuggestionCode: proto.SuggestionCode_DOCKER_AUTH_CONFIGURE, + Action: "try `docker login`", + }, + }, + }, }, { description: "unknown project error", - opts: config.SkaffoldOptions{}, - context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, + phase: Build, err: fmt.Errorf("build failed: could not push image: unknown: Project"), expected: "Build Failed. Check your GCR project.", - }, - { - description: "unknown error", - opts: config.SkaffoldOptions{}, - context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, - err: fmt.Errorf("build failed: something went wrong"), - expected: "build failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_PROJECT_NOT_FOUND, + Message: "build failed: could not push image: unknown: Project", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_CHECK_GCLOUD_PROJECT, + Action: "Check your GCR project", + }, + }, + }, }, { description: "build error when docker is not running with minikube local cluster", - opts: config.SkaffoldOptions{}, - context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, err: fmt.Errorf(`creating runner: creating builder: getting docker client: getting minikube env: running [/Users/tejaldesai/Downloads/google-cloud-sdk2/bin/minikube docker-env --shell none -p minikube] - stdout: "\n\n" - stderr: "! Executing \"docker container inspect minikube --format={{.State.Status}}\" took an unusually long time: 7.36540945s\n* Restarting the docker service may improve performance.\nX Exiting due to GUEST_STATUS: state: unknown state \"minikube\": docker container inspect minikube --format=: exit status 1\nstdout:\n\n\nstderr:\nCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?\n\n* \n* If the above advice does not help, please let us know: \n - https://github.com/kubernetes/minikube/issues/new/choose\n" - cause: exit status 80`), - expected: "Build Failed. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Please check if docker is running.", + phase: Build, + expected: "Build Failed. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Check if docker is running.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_DOCKER_DAEMON_NOT_RUNNING, + Message: "creating runner: creating builder: getting docker client: getting minikube env: running [/Users/tejaldesai/Downloads/google-cloud-sdk2/bin/minikube docker-env --shell none -p minikube]\n - stdout: \"\\n\\n\"\n - stderr: \"! Executing \\\"docker container inspect minikube --format={{.State.Status}}\\\" took an unusually long time: 7.36540945s\\n* Restarting the docker service may improve performance.\\nX Exiting due to GUEST_STATUS: state: unknown state \\\"minikube\\\": docker container inspect minikube --format=: exit status 1\\nstdout:\\n\\n\\nstderr:\\nCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?\\n\\n* \\n* If the above advice does not help, please let us know: \\n - https://github.com/kubernetes/minikube/issues/new/choose\\n\"\n - cause: exit status 80", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_CHECK_DOCKER_RUNNING, + Action: "Check if docker is running", + }, + }, + }, }, { description: "build error when docker is not running and deploying to GKE", - opts: config.SkaffoldOptions{}, - context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, err: fmt.Errorf(`exiting dev mode because first build failed: docker build: Cannot connect to the Docker daemon at tcp://127.0.0.1:32770. Is the docker daemon running?`), - expected: "Build Failed. Cannot connect to the Docker daemon at tcp://127.0.0.1:32770. Please check if docker is running.", + expected: "Build Failed. Cannot connect to the Docker daemon at tcp://127.0.0.1:32770. Check if docker is running.", + phase: Build, + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_DOCKER_DAEMON_NOT_RUNNING, + Message: "exiting dev mode because first build failed: docker build: Cannot connect to the Docker daemon at tcp://127.0.0.1:32770. Is the docker daemon running?", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_CHECK_DOCKER_RUNNING, + Action: "Check if docker is running", + }, + }, + }, }, { description: "build error when docker is not and no host information", - opts: config.SkaffoldOptions{}, - context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, // See https://github.com/moby/moby/blob/master/client/errors.go#L20 err: fmt.Errorf(`exiting dev mode because first build failed: docker build: Cannot connect to the Docker daemon. Is the docker daemon running on this host?`), - expected: "Build Failed. Cannot connect to the Docker daemon. Please check if docker is running.", + expected: "Build Failed. Cannot connect to the Docker daemon. Check if docker is running.", + phase: Build, + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_DOCKER_DAEMON_NOT_RUNNING, + Message: "exiting dev mode because first build failed: docker build: Cannot connect to the Docker daemon. Is the docker daemon running on this host?", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_CHECK_DOCKER_RUNNING, + Action: "Check if docker is running", + }, + }, + }, }, { description: "build cancelled", - opts: config.SkaffoldOptions{}, - context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, // See https://github.com/moby/moby/blob/master/client/errors.go#L20 err: fmt.Errorf(`docker build: error during connect: Post \"https://127.0.0.1:32770/v1.24/build?buildargs=: context canceled`), + phase: Build, expected: "Build Cancelled.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_CANCELLED, + Message: `docker build: error during connect: Post \"https://127.0.0.1:32770/v1.24/build?buildargs=: context canceled`, + }, + }, + // unknown errors case + { + description: "build unknown error", + context: &config.ContextConfig{DefaultRepo: "docker.io/global"}, + phase: Build, + err: fmt.Errorf("build failed: something went wrong"), + expected: "build failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_BUILD_UNKNOWN, + Message: "build failed: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "deploy unknown error", + phase: Deploy, + err: fmt.Errorf("deploy failed: something went wrong"), + expected: "deploy failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_DEPLOY_UNKNOWN, + Message: "deploy failed: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "file sync unknown error", + phase: FileSync, + err: fmt.Errorf("sync failed: something went wrong"), + expected: "sync failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_SYNC_UNKNOWN, + Message: "sync failed: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "init unknown error", + phase: Init, + err: fmt.Errorf("init failed: something went wrong"), + expected: "init failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_INIT_UNKNOWN, + Message: "init failed: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "cleanup unknown error", + phase: Cleanup, + err: fmt.Errorf("failed: something went wrong"), + expected: "failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_CLEANUP_UNKNOWN, + Message: "failed: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "status check unknown error", + phase: StatusCheck, + err: fmt.Errorf("failed: something went wrong"), + expected: "failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_STATUSCHECK_UNKNOWN, + Message: "failed: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "dev init unknown error", + phase: DevInit, + err: fmt.Errorf("failed: something went wrong"), + expected: "failed: something went wrong", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_DEVINIT_UNKNOWN, + Message: "failed: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, }, } - for _, test := range tests { + for _, test := range append(tests, initTestCases...) { testutil.Run(t, test.description, func(t *testutil.T) { t.Override(&getConfigForCurrentContext, func(string) (*config.ContextConfig, error) { return test.context, nil @@ -110,6 +252,8 @@ func TestShowAIError(t *testing.T) { skaffoldOpts = test.opts actual := ShowAIError(test.err) t.CheckDeepEqual(test.expected, actual.Error()) + actualAE := ActionableErr(test.phase, test.err) + t.CheckDeepEqual(test.expectedAE, actualAE) }) } } diff --git a/pkg/skaffold/errors/init_problems.go b/pkg/skaffold/errors/init_problems.go new file mode 100644 index 00000000000..6da32f2cf16 --- /dev/null +++ b/pkg/skaffold/errors/init_problems.go @@ -0,0 +1,71 @@ +/* +Copyright 2020 The Skaffold Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package errors + +import ( + "github.com/GoogleContainerTools/skaffold/pkg/skaffold/config" + "github.com/GoogleContainerTools/skaffold/proto" +) + +var knownInitProblems = []problem{ + { + regexp: re(".*creating tagger.*"), + errCode: proto.StatusCode_INIT_CREATE_TAGGER_ERROR, + suggestion: reportIssueSuggestion, + }, + { + regexp: re(".*The control plane node must be running for this command.*"), + errCode: proto.StatusCode_INIT_MINIKUBE_NOT_RUNNING_ERROR, + description: func(error) string { return "minikube is probably not running" }, + suggestion: func(config.SkaffoldOptions) []*proto.Suggestion { + return []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_START_MINIKUBE, + Action: `Try running "minikube start"`, + }} + }, + }, + { + regexp: re(".*creating builder.*"), + errCode: proto.StatusCode_INIT_CREATE_BUILDER_ERROR, + suggestion: reportIssueSuggestion, + }, + { + regexp: re(".*unexpected artifact type.*"), + errCode: proto.StatusCode_INIT_CREATE_ARTIFACT_DEP_ERROR, + suggestion: reportIssueSuggestion, + }, + { + regexp: re(".*expanding test file paths.*"), + errCode: proto.StatusCode_INIT_CREATE_TEST_DEP_ERROR, + suggestion: reportIssueSuggestion, + }, + { + regexp: re(".*creating deployer: something went wrong"), + errCode: proto.StatusCode_INIT_CREATE_DEPLOYER_ERROR, + suggestion: reportIssueSuggestion, + }, + { + regexp: re(".*creating watch trigger.*"), + errCode: proto.StatusCode_INIT_CREATE_WATCH_TRIGGER_ERROR, + suggestion: reportIssueSuggestion, + }, + { + regexp: re(".* initializing cache.*"), + errCode: proto.StatusCode_INIT_CACHE_ERROR, + suggestion: reportIssueSuggestion, + }, +} diff --git a/pkg/skaffold/errors/init_problems_test.go b/pkg/skaffold/errors/init_problems_test.go new file mode 100644 index 00000000000..24bf6490aef --- /dev/null +++ b/pkg/skaffold/errors/init_problems_test.go @@ -0,0 +1,112 @@ +/* +Copyright 2020 The Skaffold Authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package errors + +import ( + "fmt" + + "github.com/GoogleContainerTools/skaffold/pkg/skaffold/config" + "github.com/GoogleContainerTools/skaffold/proto" +) + +var ( + initTestCases = []struct { + description string + opts config.SkaffoldOptions + phase Phase + context *config.ContextConfig + err error + expected string + expectedAE *proto.ActionableErr + }{ + { + description: "creating tagger error", + context: &config.ContextConfig{}, + phase: Init, + err: fmt.Errorf("creating tagger: something went wrong"), + expected: "creating tagger: something went wrong\n. If above error is unexpected, please open an issue https://github.com/GoogleContainerTools/skaffold/issues/new to report this error.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_INIT_CREATE_TAGGER_ERROR, + Message: "creating tagger: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "minikube not started error", + context: &config.ContextConfig{}, + phase: Init, + err: fmt.Errorf("creating runner: creating builder: getting docker client: getting minikube env: running [/Users/tejaldesai/Downloads/google-cloud-sdk2/bin/minikube docker-env --shell none -p minikube]\n - stdout: \"* The control plane node must be running for this command\\n - To fix this, run: \\\"minikube start\\\"\\n\"\n - stderr: \"\"\n - cause: exit status 89"), + expected: "minikube is probably not running. Try running \"minikube start\".", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_INIT_MINIKUBE_NOT_RUNNING_ERROR, + Message: "creating runner: creating builder: getting docker client: getting minikube env: running [/Users/tejaldesai/Downloads/google-cloud-sdk2/bin/minikube docker-env --shell none -p minikube]\n - stdout: \"* The control plane node must be running for this command\\n - To fix this, run: \\\"minikube start\\\"\\n\"\n - stderr: \"\"\n - cause: exit status 89", + Suggestions: []*proto.Suggestion{{ + SuggestionCode: proto.SuggestionCode_START_MINIKUBE, + Action: "Try running \"minikube start\"", + }}, + }, + }, + { + description: "create builder error", + context: &config.ContextConfig{}, + phase: Init, + err: fmt.Errorf("creating runner: creating builder: something went wrong"), + expected: "creating runner: creating builder: something went wrong\n. If above error is unexpected, please open an issue https://github.com/GoogleContainerTools/skaffold/issues/new to report this error.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_INIT_CREATE_BUILDER_ERROR, + Message: "creating runner: creating builder: something went wrong", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "build dependency error", + context: &config.ContextConfig{}, + phase: Init, + err: fmt.Errorf("creating runner: unexpected artifact type `DockerrArtifact`"), + expected: "creating runner: unexpected artifact type `DockerrArtifact`\n. If above error is unexpected, please open an issue https://github.com/GoogleContainerTools/skaffold/issues/new to report this error.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_INIT_CREATE_ARTIFACT_DEP_ERROR, + Message: "creating runner: unexpected artifact type `DockerrArtifact`", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "test dependency error", + context: &config.ContextConfig{}, + phase: Init, + err: fmt.Errorf("creating runner: expanding test file paths: .src/test"), + expected: "creating runner: expanding test file paths: .src/test\n. If above error is unexpected, please open an issue https://github.com/GoogleContainerTools/skaffold/issues/new to report this error.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_INIT_CREATE_TEST_DEP_ERROR, + Message: "creating runner: expanding test file paths: .src/test", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + { + description: "init cache error", + context: &config.ContextConfig{}, + phase: Init, + err: fmt.Errorf("creating runner: initializing cache at some error"), + expected: "creating runner: initializing cache at some error\n. If above error is unexpected, please open an issue https://github.com/GoogleContainerTools/skaffold/issues/new to report this error.", + expectedAE: &proto.ActionableErr{ + ErrCode: proto.StatusCode_INIT_CACHE_ERROR, + Message: "creating runner: initializing cache at some error", + Suggestions: reportIssueSuggestion(config.SkaffoldOptions{}), + }, + }, + } +) diff --git a/pkg/skaffold/event/event.go b/pkg/skaffold/event/event.go index 5cf048884ee..b969d1a22ea 100644 --- a/pkg/skaffold/event/event.go +++ b/pkg/skaffold/event/event.go @@ -712,3 +712,14 @@ func BuildSequenceFailed(err error) { handler.state.BuildState.StatusCode = aiErr.ErrCode handler.stateLock.Unlock() } + +func InititializationFailed(err error) { + handler.handle(&proto.Event{ + EventType: &proto.Event_TerminationEvent{ + TerminationEvent: &proto.TerminationEvent{ + Status: Failed, + Err: sErrors.ActionableErr(sErrors.Init, err), + }, + }, + }) +} diff --git a/pkg/skaffold/runner/new.go b/pkg/skaffold/runner/new.go index 4e494f30d4e..cf21f2a6c56 100644 --- a/pkg/skaffold/runner/new.go +++ b/pkg/skaffold/runner/new.go @@ -48,6 +48,8 @@ import ( // NewForConfig returns a new SkaffoldRunner for a SkaffoldConfig func NewForConfig(runCtx *runcontext.RunContext) (*SkaffoldRunner, error) { + event.InitializeState(runCtx.Pipeline(), runCtx.GetKubeContext(), runCtx.AutoBuild(), runCtx.AutoDeploy(), runCtx.AutoSync()) + event.LogMetaEvent() kubectlCLI := pkgkubectl.NewCLI(runCtx, "") tagger, err := getTagger(runCtx) @@ -99,9 +101,6 @@ func NewForConfig(runCtx *runcontext.RunContext) (*SkaffoldRunner, error) { deployer = WithNotification(deployer) } - event.InitializeState(runCtx.Pipeline(), runCtx.GetKubeContext(), runCtx.AutoBuild(), runCtx.AutoDeploy(), runCtx.AutoSync()) - event.LogMetaEvent() - monitor := filemon.NewMonitor() intents, intentChan := setupIntents(runCtx) trigger, err := trigger.NewTrigger(runCtx, intents.IsAnyAutoEnabled) diff --git a/proto/skaffold.pb.go b/proto/skaffold.pb.go index b900c0ef472..cb916ad6f87 100644 --- a/proto/skaffold.pb.go +++ b/proto/skaffold.pb.go @@ -265,6 +265,8 @@ const ( StatusCode_DEVINIT_UNKNOWN StatusCode = 507 // Cleanup failed due to unknown reason StatusCode_CLEANUP_UNKNOWN StatusCode = 508 + // Initialization of the Skaffold session failed due to unknown reason(s) + StatusCode_INIT_UNKNOWN StatusCode = 510 // File Sync Initialize failure StatusCode_SYNC_INIT_ERROR StatusCode = 601 // Failed to configure watcher for build dependencies in dev loop @@ -279,10 +281,28 @@ const ( StatusCode_STATUSCHECK_USER_CANCELLED StatusCode = 800 // Deadline for status check exceeded StatusCode_STATUSCHECK_DEADLINE_EXCEEDED StatusCode = 801 - // Build cancelled due to user cancellation or one or more build failed. + // Build Cancelled StatusCode_BUILD_CANCELLED StatusCode = 802 // Deploy cancelled due to user cancellation or one or more deployers failed. StatusCode_DEPLOY_CANCELLED StatusCode = 803 + // Skaffold was unable to create the configured tagger + StatusCode_INIT_CREATE_TAGGER_ERROR StatusCode = 901 + // Skaffold was unable to start as Minikube appears to be paused + StatusCode_INIT_MINIKUBE_PAUSED_ERROR StatusCode = 902 + // Skaffold was unable to start as Minikube appears to be stopped + StatusCode_INIT_MINIKUBE_NOT_RUNNING_ERROR StatusCode = 903 + // Skaffold was unable to create a configured image builder + StatusCode_INIT_CREATE_BUILDER_ERROR StatusCode = 904 + // Skaffold was unable to create a configured deployer + StatusCode_INIT_CREATE_DEPLOYER_ERROR StatusCode = 905 + // Skaffold was unable to create a configured test + StatusCode_INIT_CREATE_TEST_DEP_ERROR StatusCode = 906 + // Skaffold encountered an error validating the artifact cache + StatusCode_INIT_CACHE_ERROR StatusCode = 907 + // Skaffold encountered an error when configuring file watching + StatusCode_INIT_CREATE_WATCH_TRIGGER_ERROR StatusCode = 908 + // Skaffold encountered an error when evaluating artifact dependencies + StatusCode_INIT_CREATE_ARTIFACT_DEP_ERROR StatusCode = 909 ) var StatusCode_name = map[int32]string{ @@ -323,6 +343,7 @@ var StatusCode_name = map[int32]string{ 506: "BUILD_UNKNOWN", 507: "DEVINIT_UNKNOWN", 508: "CLEANUP_UNKNOWN", + 510: "INIT_UNKNOWN", 601: "SYNC_INIT_ERROR", 701: "DEVINIT_REGISTER_BUILD_DEPS", 702: "DEVINIT_REGISTER_TEST_DEPS", @@ -332,6 +353,15 @@ var StatusCode_name = map[int32]string{ 801: "STATUSCHECK_DEADLINE_EXCEEDED", 802: "BUILD_CANCELLED", 803: "DEPLOY_CANCELLED", + 901: "INIT_CREATE_TAGGER_ERROR", + 902: "INIT_MINIKUBE_PAUSED_ERROR", + 903: "INIT_MINIKUBE_NOT_RUNNING_ERROR", + 904: "INIT_CREATE_BUILDER_ERROR", + 905: "INIT_CREATE_DEPLOYER_ERROR", + 906: "INIT_CREATE_TEST_DEP_ERROR", + 907: "INIT_CACHE_ERROR", + 908: "INIT_CREATE_WATCH_TRIGGER_ERROR", + 909: "INIT_CREATE_ARTIFACT_DEP_ERROR", } var StatusCode_value = map[string]int32{ @@ -372,6 +402,7 @@ var StatusCode_value = map[string]int32{ "BUILD_UNKNOWN": 506, "DEVINIT_UNKNOWN": 507, "CLEANUP_UNKNOWN": 508, + "INIT_UNKNOWN": 510, "SYNC_INIT_ERROR": 601, "DEVINIT_REGISTER_BUILD_DEPS": 701, "DEVINIT_REGISTER_TEST_DEPS": 702, @@ -381,6 +412,15 @@ var StatusCode_value = map[string]int32{ "STATUSCHECK_DEADLINE_EXCEEDED": 801, "BUILD_CANCELLED": 802, "DEPLOY_CANCELLED": 803, + "INIT_CREATE_TAGGER_ERROR": 901, + "INIT_MINIKUBE_PAUSED_ERROR": 902, + "INIT_MINIKUBE_NOT_RUNNING_ERROR": 903, + "INIT_CREATE_BUILDER_ERROR": 904, + "INIT_CREATE_DEPLOYER_ERROR": 905, + "INIT_CREATE_TEST_DEP_ERROR": 906, + "INIT_CACHE_ERROR": 907, + "INIT_CREATE_WATCH_TRIGGER_ERROR": 908, + "INIT_CREATE_ARTIFACT_DEP_ERROR": 909, } func (x StatusCode) String() string { @@ -398,14 +438,20 @@ const ( // default nil suggestion. // This is usually set when no error happens. SuggestionCode_NIL SuggestionCode = 0 - // Build error suggestion codes - SuggestionCode_ADD_DEFAULT_REPO SuggestionCode = 100 - SuggestionCode_CHECK_DEFAULT_REPO SuggestionCode = 101 + // Add Default Repo + SuggestionCode_ADD_DEFAULT_REPO SuggestionCode = 100 + // Verify Default Repo + SuggestionCode_CHECK_DEFAULT_REPO SuggestionCode = 101 + // Verify default repo in the global config SuggestionCode_CHECK_DEFAULT_REPO_GLOBAL_CONFIG SuggestionCode = 102 - SuggestionCode_GCLOUD_DOCKER_AUTH_CONFIGURE SuggestionCode = 103 - SuggestionCode_DOCKER_AUTH_CONFIGURE SuggestionCode = 104 - SuggestionCode_CHECK_GCLOUD_PROJECT SuggestionCode = 105 - SuggestionCode_CHECK_DOCKER_RUNNING SuggestionCode = 106 + // run gcloud docker auth configure + SuggestionCode_GCLOUD_DOCKER_AUTH_CONFIGURE SuggestionCode = 103 + // Run docker auth configure + SuggestionCode_DOCKER_AUTH_CONFIGURE SuggestionCode = 104 + //Verify Gcloud Project + SuggestionCode_CHECK_GCLOUD_PROJECT SuggestionCode = 105 + // Check if docker is running + SuggestionCode_CHECK_DOCKER_RUNNING SuggestionCode = 106 // Container run error SuggestionCode_CHECK_CONTAINER_LOGS SuggestionCode = 301 // Pod Health check error @@ -430,6 +476,12 @@ const ( SuggestionCode_ADDRESS_FAILED_SCHEDULING SuggestionCode = 407 // Cluster Connectivity error SuggestionCode_CHECK_HOST_CONNECTION SuggestionCode = 408 + // Minikube is stopped: use `minikube start` + SuggestionCode_START_MINIKUBE SuggestionCode = 501 + // Minikube is paused: use `minikube unpause` + SuggestionCode_UNPAUSE_MINIKUBE SuggestionCode = 502 + // Open an issue so this situation can be diagnosed + SuggestionCode_OPEN_ISSUE SuggestionCode = 900 ) var SuggestionCode_name = map[int32]string{ @@ -453,6 +505,9 @@ var SuggestionCode_name = map[int32]string{ 406: "ADDRESS_NODE_NOT_READY", 407: "ADDRESS_FAILED_SCHEDULING", 408: "CHECK_HOST_CONNECTION", + 501: "START_MINIKUBE", + 502: "UNPAUSE_MINIKUBE", + 900: "OPEN_ISSUE", } var SuggestionCode_value = map[string]int32{ @@ -476,6 +531,9 @@ var SuggestionCode_value = map[string]int32{ "ADDRESS_NODE_NOT_READY": 406, "ADDRESS_FAILED_SCHEDULING": 407, "CHECK_HOST_CONNECTION": 408, + "START_MINIKUBE": 501, + "UNPAUSE_MINIKUBE": 502, + "OPEN_ISSUE": 900, } func (x SuggestionCode) String() string { @@ -1195,6 +1253,7 @@ type Event struct { // *Event_FileSyncEvent // *Event_DebuggingContainerEvent // *Event_DevLoopEvent + // *Event_TerminationEvent EventType isEvent_EventType `protobuf_oneof:"event_type"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1266,6 +1325,10 @@ type Event_DevLoopEvent struct { DevLoopEvent *DevLoopEvent `protobuf:"bytes,9,opt,name=devLoopEvent,proto3,oneof"` } +type Event_TerminationEvent struct { + TerminationEvent *TerminationEvent `protobuf:"bytes,10,opt,name=terminationEvent,proto3,oneof"` +} + func (*Event_MetaEvent) isEvent_EventType() {} func (*Event_BuildEvent) isEvent_EventType() {} @@ -1284,6 +1347,8 @@ func (*Event_DebuggingContainerEvent) isEvent_EventType() {} func (*Event_DevLoopEvent) isEvent_EventType() {} +func (*Event_TerminationEvent) isEvent_EventType() {} + func (m *Event) GetEventType() isEvent_EventType { if m != nil { return m.EventType @@ -1354,6 +1419,13 @@ func (m *Event) GetDevLoopEvent() *DevLoopEvent { return nil } +func (m *Event) GetTerminationEvent() *TerminationEvent { + if x, ok := m.GetEventType().(*Event_TerminationEvent); ok { + return x.TerminationEvent + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*Event) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -1366,7 +1438,56 @@ func (*Event) XXX_OneofWrappers() []interface{} { (*Event_FileSyncEvent)(nil), (*Event_DebuggingContainerEvent)(nil), (*Event_DevLoopEvent)(nil), + (*Event_TerminationEvent)(nil), + } +} + +// `TerminationEvent` marks the end of the skaffold session +type TerminationEvent struct { + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Err *ActionableErr `protobuf:"bytes,2,opt,name=err,proto3" json:"err,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TerminationEvent) Reset() { *m = TerminationEvent{} } +func (m *TerminationEvent) String() string { return proto.CompactTextString(m) } +func (*TerminationEvent) ProtoMessage() {} +func (*TerminationEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_4f2d38e344f9dbf5, []int{12} +} + +func (m *TerminationEvent) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TerminationEvent.Unmarshal(m, b) +} +func (m *TerminationEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TerminationEvent.Marshal(b, m, deterministic) +} +func (m *TerminationEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_TerminationEvent.Merge(m, src) +} +func (m *TerminationEvent) XXX_Size() int { + return xxx_messageInfo_TerminationEvent.Size(m) +} +func (m *TerminationEvent) XXX_DiscardUnknown() { + xxx_messageInfo_TerminationEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_TerminationEvent proto.InternalMessageInfo + +func (m *TerminationEvent) GetStatus() string { + if m != nil { + return m.Status + } + return "" +} + +func (m *TerminationEvent) GetErr() *ActionableErr { + if m != nil { + return m.Err } + return nil } // `DevLoopEvent` marks the start and end of a dev loop. @@ -1383,7 +1504,7 @@ func (m *DevLoopEvent) Reset() { *m = DevLoopEvent{} } func (m *DevLoopEvent) String() string { return proto.CompactTextString(m) } func (*DevLoopEvent) ProtoMessage() {} func (*DevLoopEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{12} + return fileDescriptor_4f2d38e344f9dbf5, []int{13} } func (m *DevLoopEvent) XXX_Unmarshal(b []byte) error { @@ -1439,7 +1560,7 @@ func (m *ActionableErr) Reset() { *m = ActionableErr{} } func (m *ActionableErr) String() string { return proto.CompactTextString(m) } func (*ActionableErr) ProtoMessage() {} func (*ActionableErr) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{13} + return fileDescriptor_4f2d38e344f9dbf5, []int{14} } func (m *ActionableErr) XXX_Unmarshal(b []byte) error { @@ -1496,7 +1617,7 @@ func (m *MetaEvent) Reset() { *m = MetaEvent{} } func (m *MetaEvent) String() string { return proto.CompactTextString(m) } func (*MetaEvent) ProtoMessage() {} func (*MetaEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{14} + return fileDescriptor_4f2d38e344f9dbf5, []int{15} } func (m *MetaEvent) XXX_Unmarshal(b []byte) error { @@ -1548,7 +1669,7 @@ func (m *BuildEvent) Reset() { *m = BuildEvent{} } func (m *BuildEvent) String() string { return proto.CompactTextString(m) } func (*BuildEvent) ProtoMessage() {} func (*BuildEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{15} + return fileDescriptor_4f2d38e344f9dbf5, []int{16} } func (m *BuildEvent) XXX_Unmarshal(b []byte) error { @@ -1620,7 +1741,7 @@ func (m *DeployEvent) Reset() { *m = DeployEvent{} } func (m *DeployEvent) String() string { return proto.CompactTextString(m) } func (*DeployEvent) ProtoMessage() {} func (*DeployEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{16} + return fileDescriptor_4f2d38e344f9dbf5, []int{17} } func (m *DeployEvent) XXX_Unmarshal(b []byte) error { @@ -1685,7 +1806,7 @@ func (m *StatusCheckEvent) Reset() { *m = StatusCheckEvent{} } func (m *StatusCheckEvent) String() string { return proto.CompactTextString(m) } func (*StatusCheckEvent) ProtoMessage() {} func (*StatusCheckEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{17} + return fileDescriptor_4f2d38e344f9dbf5, []int{18} } func (m *StatusCheckEvent) XXX_Unmarshal(b []byte) error { @@ -1762,7 +1883,7 @@ func (m *ResourceStatusCheckEvent) Reset() { *m = ResourceStatusCheckEve func (m *ResourceStatusCheckEvent) String() string { return proto.CompactTextString(m) } func (*ResourceStatusCheckEvent) ProtoMessage() {} func (*ResourceStatusCheckEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{18} + return fileDescriptor_4f2d38e344f9dbf5, []int{19} } func (m *ResourceStatusCheckEvent) XXX_Unmarshal(b []byte) error { @@ -1845,7 +1966,7 @@ func (m *PortEvent) Reset() { *m = PortEvent{} } func (m *PortEvent) String() string { return proto.CompactTextString(m) } func (*PortEvent) ProtoMessage() {} func (*PortEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{19} + return fileDescriptor_4f2d38e344f9dbf5, []int{20} } func (m *PortEvent) XXX_Unmarshal(b []byte) error { @@ -1946,7 +2067,7 @@ func (m *FileSyncEvent) Reset() { *m = FileSyncEvent{} } func (m *FileSyncEvent) String() string { return proto.CompactTextString(m) } func (*FileSyncEvent) ProtoMessage() {} func (*FileSyncEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{20} + return fileDescriptor_4f2d38e344f9dbf5, []int{21} } func (m *FileSyncEvent) XXX_Unmarshal(b []byte) error { @@ -2028,7 +2149,7 @@ func (m *DebuggingContainerEvent) Reset() { *m = DebuggingContainerEvent func (m *DebuggingContainerEvent) String() string { return proto.CompactTextString(m) } func (*DebuggingContainerEvent) ProtoMessage() {} func (*DebuggingContainerEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{21} + return fileDescriptor_4f2d38e344f9dbf5, []int{22} } func (m *DebuggingContainerEvent) XXX_Unmarshal(b []byte) error { @@ -2119,7 +2240,7 @@ func (m *LogEntry) Reset() { *m = LogEntry{} } func (m *LogEntry) String() string { return proto.CompactTextString(m) } func (*LogEntry) ProtoMessage() {} func (*LogEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{22} + return fileDescriptor_4f2d38e344f9dbf5, []int{23} } func (m *LogEntry) XXX_Unmarshal(b []byte) error { @@ -2172,7 +2293,7 @@ func (m *UserIntentRequest) Reset() { *m = UserIntentRequest{} } func (m *UserIntentRequest) String() string { return proto.CompactTextString(m) } func (*UserIntentRequest) ProtoMessage() {} func (*UserIntentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{23} + return fileDescriptor_4f2d38e344f9dbf5, []int{24} } func (m *UserIntentRequest) XXX_Unmarshal(b []byte) error { @@ -2211,7 +2332,7 @@ func (m *TriggerRequest) Reset() { *m = TriggerRequest{} } func (m *TriggerRequest) String() string { return proto.CompactTextString(m) } func (*TriggerRequest) ProtoMessage() {} func (*TriggerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{24} + return fileDescriptor_4f2d38e344f9dbf5, []int{25} } func (m *TriggerRequest) XXX_Unmarshal(b []byte) error { @@ -2253,7 +2374,7 @@ func (m *TriggerState) Reset() { *m = TriggerState{} } func (m *TriggerState) String() string { return proto.CompactTextString(m) } func (*TriggerState) ProtoMessage() {} func (*TriggerState) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{25} + return fileDescriptor_4f2d38e344f9dbf5, []int{26} } func (m *TriggerState) XXX_Unmarshal(b []byte) error { @@ -2319,7 +2440,7 @@ func (m *Intent) Reset() { *m = Intent{} } func (m *Intent) String() string { return proto.CompactTextString(m) } func (*Intent) ProtoMessage() {} func (*Intent) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{26} + return fileDescriptor_4f2d38e344f9dbf5, []int{27} } func (m *Intent) XXX_Unmarshal(b []byte) error { @@ -2374,7 +2495,7 @@ func (m *Suggestion) Reset() { *m = Suggestion{} } func (m *Suggestion) String() string { return proto.CompactTextString(m) } func (*Suggestion) ProtoMessage() {} func (*Suggestion) Descriptor() ([]byte, []int) { - return fileDescriptor_4f2d38e344f9dbf5, []int{27} + return fileDescriptor_4f2d38e344f9dbf5, []int{28} } func (m *Suggestion) XXX_Unmarshal(b []byte) error { @@ -2435,6 +2556,7 @@ func init() { proto.RegisterMapType((map[string]string)(nil), "proto.StatusCheckState.ResourcesEntry") proto.RegisterType((*FileSyncState)(nil), "proto.FileSyncState") proto.RegisterType((*Event)(nil), "proto.Event") + proto.RegisterType((*TerminationEvent)(nil), "proto.TerminationEvent") proto.RegisterType((*DevLoopEvent)(nil), "proto.DevLoopEvent") proto.RegisterType((*ActionableErr)(nil), "proto.ActionableErr") proto.RegisterType((*MetaEvent)(nil), "proto.MetaEvent") @@ -2457,189 +2579,201 @@ func init() { func init() { proto.RegisterFile("skaffold.proto", fileDescriptor_4f2d38e344f9dbf5) } var fileDescriptor_4f2d38e344f9dbf5 = []byte{ - // 2908 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x4b, 0x6c, 0x1b, 0xc7, - 0x19, 0x16, 0xb9, 0x24, 0x45, 0xfe, 0x7a, 0x78, 0x3d, 0xb6, 0x6c, 0x9a, 0x56, 0x6c, 0x79, 0x63, - 0x3b, 0x8e, 0x92, 0x4a, 0x49, 0x5c, 0x14, 0xa9, 0x9b, 0xb4, 0x58, 0xed, 0x8e, 0xc4, 0xb5, 0x56, - 0xbb, 0xc4, 0x72, 0x99, 0xc4, 0x06, 0x0a, 0x82, 0x26, 0x57, 0x0c, 0x6b, 0x8a, 0xab, 0x2e, 0x97, - 0x4e, 0xd5, 0x43, 0x0f, 0xbd, 0xf6, 0xd2, 0x36, 0x4d, 0xdf, 0x87, 0xb4, 0x45, 0x6f, 0x7d, 0x5d, - 0x8b, 0x22, 0x4d, 0x81, 0x1e, 0xfa, 0xb8, 0x16, 0x2d, 0xd0, 0x53, 0x11, 0x20, 0x39, 0xf4, 0x9e, - 0xf4, 0x5d, 0xa0, 0x98, 0xc7, 0xee, 0xce, 0xf2, 0x61, 0x45, 0x29, 0x8a, 0x9e, 0xc4, 0xf9, 0xe7, - 0xfb, 0x9f, 0xf3, 0xcf, 0xff, 0xff, 0x3b, 0x82, 0xe5, 0xe1, 0xfd, 0xd6, 0xfe, 0xbe, 0xdf, 0xef, - 0x6c, 0x1c, 0x06, 0x7e, 0xe8, 0xa3, 0x3c, 0xfd, 0x53, 0x59, 0xed, 0xfa, 0x7e, 0xb7, 0xef, 0x6d, - 0xb6, 0x0e, 0x7b, 0x9b, 0xad, 0xc1, 0xc0, 0x0f, 0x5b, 0x61, 0xcf, 0x1f, 0x0c, 0x19, 0xa8, 0x72, - 0x99, 0xef, 0xd2, 0xd5, 0xbd, 0xd1, 0xfe, 0x66, 0xd8, 0x3b, 0xf0, 0x86, 0x61, 0xeb, 0xe0, 0x90, - 0x03, 0x2e, 0x8e, 0x03, 0xbc, 0x83, 0xc3, 0xf0, 0x88, 0x6d, 0x2a, 0x37, 0x61, 0xa9, 0x1e, 0xb6, - 0x42, 0xcf, 0xf1, 0x86, 0x87, 0xfe, 0x60, 0xe8, 0x21, 0x05, 0xf2, 0x43, 0x42, 0x28, 0x67, 0xd6, - 0x32, 0x37, 0x16, 0x9e, 0x59, 0x64, 0xb8, 0x0d, 0x06, 0x62, 0x5b, 0xca, 0x2a, 0x14, 0x63, 0xbc, - 0x0c, 0xd2, 0xc1, 0xb0, 0x4b, 0xd1, 0x25, 0x87, 0xfc, 0x54, 0x1e, 0x81, 0x79, 0xc7, 0xfb, 0xf4, - 0xc8, 0x1b, 0x86, 0x08, 0x41, 0x6e, 0xd0, 0x3a, 0xf0, 0xf8, 0x2e, 0xfd, 0xad, 0xbc, 0x96, 0x83, - 0x3c, 0x95, 0x86, 0x9e, 0x06, 0xb8, 0x37, 0xea, 0xf5, 0x3b, 0x75, 0x41, 0xdf, 0x69, 0xae, 0x6f, - 0x2b, 0xde, 0x70, 0x04, 0x10, 0xfa, 0x30, 0x2c, 0x74, 0xbc, 0xc3, 0xbe, 0x7f, 0xc4, 0x78, 0xb2, - 0x94, 0x07, 0x71, 0x1e, 0x3d, 0xd9, 0x71, 0x44, 0x18, 0xaa, 0xc2, 0xf2, 0xbe, 0x1f, 0xbc, 0xd2, - 0x0a, 0x3a, 0x5e, 0xa7, 0xe6, 0x07, 0xe1, 0xb0, 0x9c, 0x5b, 0x93, 0x6e, 0x2c, 0x3c, 0xb3, 0x26, - 0x3a, 0xb7, 0xb1, 0x9d, 0x82, 0xe0, 0x41, 0x18, 0x1c, 0x39, 0x63, 0x7c, 0x48, 0x03, 0x99, 0x84, - 0x60, 0x34, 0xd4, 0x5e, 0xf6, 0xda, 0xf7, 0x99, 0x11, 0x79, 0x6a, 0xc4, 0x79, 0x41, 0x96, 0xb8, - 0xed, 0x4c, 0x30, 0xa0, 0x5b, 0xb0, 0xb4, 0xdf, 0xeb, 0x7b, 0xf5, 0xa3, 0x41, 0x9b, 0x49, 0x28, - 0x50, 0x09, 0x67, 0xb9, 0x84, 0x6d, 0x71, 0xcf, 0x49, 0x43, 0x51, 0x0d, 0xce, 0x74, 0xbc, 0x7b, - 0xa3, 0x6e, 0xb7, 0x37, 0xe8, 0x6a, 0xfe, 0x20, 0x6c, 0xf5, 0x06, 0x5e, 0x30, 0x2c, 0xcf, 0x53, - 0x7f, 0x2e, 0xc5, 0x81, 0x18, 0x47, 0xe0, 0x07, 0xde, 0x20, 0x74, 0xa6, 0xb1, 0xa2, 0x27, 0xa0, - 0x78, 0xe0, 0x85, 0xad, 0x4e, 0x2b, 0x6c, 0x95, 0x8b, 0xd4, 0x90, 0x53, 0x5c, 0xcc, 0x1e, 0x27, - 0x3b, 0x31, 0xa0, 0x52, 0x87, 0x33, 0x53, 0xc2, 0x44, 0x92, 0xe0, 0xbe, 0x77, 0x44, 0x8f, 0x30, - 0xef, 0x90, 0x9f, 0xe8, 0x3a, 0xe4, 0x1f, 0xb4, 0xfa, 0xa3, 0xe8, 0x88, 0x64, 0x2e, 0x92, 0xf0, - 0x30, 0x5b, 0xd8, 0xf6, 0xad, 0xec, 0xb3, 0x99, 0xdb, 0xb9, 0xa2, 0x24, 0xe7, 0x94, 0x77, 0x32, - 0x50, 0x8c, 0x34, 0xa2, 0x75, 0xc8, 0xd3, 0x53, 0xe7, 0x59, 0x71, 0x56, 0xcc, 0x8a, 0xd8, 0x2c, - 0x06, 0x41, 0x1f, 0x82, 0x02, 0x3b, 0x6c, 0xae, 0x6b, 0x25, 0x95, 0x0e, 0x31, 0x9a, 0x83, 0xd0, - 0x27, 0x00, 0x5a, 0x9d, 0x4e, 0x8f, 0x5c, 0xa1, 0x56, 0xbf, 0xdc, 0xa6, 0x81, 0xbb, 0x3c, 0xe6, - 0xf1, 0x86, 0x1a, 0x23, 0x58, 0x1e, 0x08, 0x2c, 0x95, 0xe7, 0xe1, 0xd4, 0xd8, 0xb6, 0xe8, 0x7f, - 0x89, 0xf9, 0x7f, 0x56, 0xf4, 0xbf, 0x24, 0x78, 0xab, 0xbc, 0x97, 0x85, 0xa5, 0x94, 0x1f, 0xe8, - 0x49, 0x38, 0x3d, 0x18, 0x1d, 0xdc, 0xf3, 0x02, 0x7b, 0x5f, 0x0d, 0xc2, 0xde, 0x7e, 0xab, 0x1d, - 0x0e, 0x79, 0x2c, 0x27, 0x37, 0xd0, 0xf3, 0x50, 0xa4, 0x7e, 0x93, 0x63, 0xcf, 0x52, 0xeb, 0xaf, - 0x4c, 0x8b, 0xce, 0x86, 0x71, 0xd0, 0xea, 0x7a, 0x5b, 0x0c, 0xe9, 0xc4, 0x2c, 0xe8, 0x2a, 0xe4, - 0xc2, 0xa3, 0x43, 0xaf, 0x2c, 0xad, 0x65, 0x6e, 0x2c, 0xc7, 0xe7, 0x42, 0x71, 0xee, 0xd1, 0xa1, - 0xe7, 0xd0, 0x5d, 0xa4, 0x4f, 0x09, 0xd2, 0xd5, 0xa9, 0x6a, 0x1e, 0x16, 0x29, 0x13, 0x16, 0x45, - 0x2b, 0xd0, 0x75, 0xae, 0x3b, 0x43, 0x75, 0x23, 0x51, 0x9e, 0x17, 0x08, 0xda, 0xcf, 0x42, 0xbe, - 0xed, 0x8f, 0x06, 0x21, 0x0d, 0x5e, 0xde, 0x61, 0x8b, 0xff, 0x36, 0xee, 0xbf, 0xca, 0xc0, 0x72, - 0x3a, 0x25, 0xd0, 0x73, 0x50, 0x62, 0x49, 0x41, 0x62, 0x99, 0x19, 0xbb, 0x42, 0x22, 0x92, 0x2f, - 0xbd, 0xc0, 0x49, 0x18, 0xd0, 0x93, 0x30, 0xdf, 0xee, 0x8f, 0x86, 0xa1, 0x17, 0x50, 0x65, 0x89, - 0x43, 0x1a, 0xa3, 0x52, 0x87, 0x22, 0x48, 0xc5, 0x80, 0x62, 0x24, 0x04, 0x3d, 0x96, 0x8a, 0xc3, - 0x99, 0x94, 0xca, 0xe3, 0x03, 0xa1, 0xfc, 0x29, 0x03, 0x90, 0xd4, 0x47, 0xf4, 0x71, 0x28, 0xb5, - 0x84, 0xb4, 0x11, 0x0b, 0x5b, 0x82, 0xda, 0x88, 0x13, 0x88, 0x1d, 0x53, 0xc2, 0x82, 0xd6, 0x60, - 0xa1, 0x35, 0x0a, 0x7d, 0x37, 0xe8, 0x75, 0xbb, 0xdc, 0x97, 0xa2, 0x23, 0x92, 0x48, 0xa1, 0xe6, - 0x45, 0xcc, 0xef, 0x44, 0x99, 0x73, 0x3a, 0x5d, 0xef, 0xfc, 0x8e, 0xe7, 0x08, 0xa0, 0xca, 0x73, - 0xb0, 0x9c, 0xd6, 0x78, 0xa2, 0xb3, 0xfa, 0x2c, 0x2c, 0x08, 0xc5, 0x1c, 0x9d, 0x83, 0x02, 0x13, - 0xcd, 0xb9, 0xf9, 0xea, 0x7f, 0x62, 0xb9, 0xf2, 0x56, 0x06, 0xe4, 0xf1, 0x22, 0x3e, 0xd3, 0x02, - 0x1d, 0x4a, 0x81, 0x37, 0xf4, 0x47, 0x41, 0xdb, 0x8b, 0x6e, 0xe3, 0xf5, 0x19, 0x8d, 0x60, 0xc3, - 0x89, 0x80, 0xfc, 0x04, 0x62, 0xc6, 0x0f, 0x18, 0xdf, 0xb4, 0xbc, 0x13, 0xc5, 0xd7, 0x80, 0xa5, - 0x54, 0x97, 0xf9, 0xe0, 0x11, 0x56, 0xde, 0xca, 0x41, 0x9e, 0x56, 0x74, 0xf4, 0x14, 0x94, 0x48, - 0x9f, 0xa0, 0x0b, 0x5e, 0xb7, 0x65, 0xa1, 0xae, 0x52, 0x7a, 0x75, 0xce, 0x49, 0x40, 0xe8, 0x26, - 0x1f, 0x00, 0x18, 0x4b, 0x76, 0x72, 0x00, 0x88, 0x78, 0x04, 0x18, 0xfa, 0x48, 0x34, 0x02, 0x30, - 0x2e, 0x69, 0xca, 0x08, 0x10, 0xb1, 0x89, 0x40, 0x62, 0xde, 0x61, 0xd4, 0x7d, 0xca, 0xb9, 0xe9, - 0x5d, 0x89, 0x98, 0x17, 0x83, 0x10, 0x4e, 0x35, 0x7b, 0xc6, 0x38, 0xb3, 0xd9, 0x47, 0xfc, 0x13, - 0x2c, 0xe8, 0x93, 0x50, 0x8e, 0x8e, 0x7a, 0x1c, 0xcf, 0x3b, 0x7f, 0xd4, 0x7e, 0x9c, 0x19, 0xb0, - 0xea, 0x9c, 0x33, 0x53, 0x04, 0x7a, 0x2e, 0x99, 0x26, 0x98, 0xcc, 0xf9, 0xa9, 0xd3, 0x44, 0x24, - 0x28, 0x0d, 0x46, 0x77, 0xe1, 0x7c, 0x67, 0xfa, 0xb4, 0xc0, 0x87, 0x81, 0x63, 0x66, 0x8a, 0xea, - 0x9c, 0x33, 0x4b, 0x00, 0xfa, 0x28, 0x2c, 0x76, 0xbc, 0x07, 0xa6, 0xef, 0x1f, 0x32, 0x81, 0x25, - 0x2a, 0x30, 0x29, 0x77, 0xc9, 0x56, 0x75, 0xce, 0x49, 0x41, 0xb7, 0x16, 0x01, 0x3c, 0xf2, 0xa3, - 0x49, 0xca, 0xa0, 0xd2, 0x87, 0x45, 0x11, 0x8d, 0x56, 0xa1, 0xd4, 0x0b, 0xbd, 0x80, 0x8e, 0xc1, - 0xbc, 0x51, 0x26, 0x04, 0x21, 0x97, 0xb3, 0xa9, 0x5c, 0xbe, 0x0e, 0x92, 0x17, 0x04, 0x3c, 0x61, - 0xa2, 0xf0, 0xa8, 0x6d, 0xda, 0x4f, 0xee, 0xf5, 0x3d, 0x1c, 0x04, 0x0e, 0x01, 0x28, 0x5f, 0xc8, - 0xc0, 0x52, 0x8a, 0x8c, 0x9e, 0x80, 0x79, 0x2f, 0x08, 0xe8, 0xe5, 0xcc, 0xcc, 0xba, 0x9c, 0x11, - 0x02, 0x95, 0x61, 0xfe, 0xc0, 0x1b, 0x0e, 0x5b, 0xdd, 0xe8, 0xde, 0x45, 0x4b, 0x74, 0x13, 0x16, - 0x86, 0xa3, 0x6e, 0xd7, 0x1b, 0xd2, 0xf1, 0xbd, 0x2c, 0xd1, 0x72, 0x11, 0x8b, 0x8a, 0x77, 0x1c, - 0x11, 0xa5, 0x58, 0x50, 0x8a, 0x6f, 0x0f, 0xb9, 0xd1, 0x1e, 0xb9, 0xec, 0xfc, 0x96, 0xb2, 0x45, - 0x6a, 0x82, 0xcb, 0x1e, 0x33, 0xc1, 0x29, 0x3f, 0x8b, 0x9a, 0x07, 0x93, 0x58, 0x81, 0x62, 0xd4, - 0x09, 0xb8, 0xd0, 0x78, 0x3d, 0x33, 0x90, 0x72, 0x12, 0xc8, 0x12, 0x0d, 0x99, 0x18, 0xa0, 0xdc, - 0xb1, 0x01, 0xba, 0x05, 0x4b, 0x2d, 0x31, 0xbc, 0xfc, 0x4e, 0x4d, 0x3f, 0x91, 0x34, 0x54, 0x79, - 0x3d, 0x13, 0x75, 0x06, 0x66, 0xfe, 0xac, 0xba, 0xc5, 0x4d, 0xcc, 0x4e, 0x35, 0x51, 0x3a, 0xb9, - 0x89, 0xb9, 0xf7, 0x6f, 0xe2, 0x9b, 0xe9, 0xfe, 0xf1, 0x70, 0x3b, 0x67, 0x27, 0xcb, 0xff, 0x31, - 0xc8, 0x7f, 0xce, 0x40, 0x79, 0x56, 0x29, 0x22, 0x09, 0x13, 0x95, 0xa2, 0x28, 0x61, 0xa2, 0xf5, - 0xcc, 0x84, 0x11, 0xbc, 0x94, 0xa6, 0x7a, 0x99, 0x4b, 0xbc, 0x4c, 0xf7, 0xc2, 0xfc, 0xfb, 0xe8, - 0x85, 0x93, 0xbe, 0x16, 0xde, 0xbf, 0xaf, 0xdf, 0xcf, 0x42, 0x29, 0x2e, 0xff, 0xa4, 0xb0, 0xf4, - 0xfd, 0x76, 0xab, 0x4f, 0x28, 0x51, 0x61, 0x89, 0x09, 0xe8, 0x12, 0x40, 0xe0, 0x1d, 0xf8, 0xa1, - 0x47, 0xb7, 0xd9, 0x48, 0x26, 0x50, 0x88, 0x9b, 0x87, 0x7e, 0xc7, 0x22, 0x1f, 0xbc, 0xdc, 0x4d, - 0xbe, 0x44, 0x57, 0x61, 0xa9, 0x1d, 0xd5, 0x46, 0xba, 0xcf, 0x1c, 0x4e, 0x13, 0x89, 0x76, 0xf2, - 0x85, 0x3c, 0x3c, 0x6c, 0xb5, 0x99, 0xe7, 0x25, 0x27, 0x21, 0x90, 0xc0, 0x93, 0xd6, 0x44, 0xd9, - 0x0b, 0x2c, 0xf0, 0xd1, 0x1a, 0x29, 0xb0, 0x18, 0x1d, 0x02, 0x99, 0x1e, 0x69, 0x0b, 0x28, 0x39, - 0x29, 0x9a, 0x88, 0xa1, 0x32, 0x8a, 0x69, 0x0c, 0x95, 0x53, 0x86, 0xf9, 0x56, 0xa7, 0x13, 0x78, - 0xc3, 0x21, 0x2d, 0xd6, 0x25, 0x27, 0x5a, 0x2a, 0x7f, 0xc8, 0x24, 0x23, 0x43, 0x1c, 0x2b, 0xd2, - 0x4a, 0x34, 0x3a, 0x9f, 0xf2, 0x58, 0xc5, 0x04, 0x52, 0xa9, 0x7a, 0x07, 0x49, 0x5a, 0xb3, 0x85, - 0x90, 0x20, 0xd2, 0xb4, 0xeb, 0x9a, 0x9b, 0x9a, 0xec, 0xf9, 0x93, 0x27, 0xfb, 0x09, 0x12, 0xe0, - 0xdd, 0x2c, 0x9c, 0x9f, 0xd1, 0xdb, 0x1e, 0x76, 0x6b, 0xa3, 0x83, 0xce, 0x1e, 0x73, 0xd0, 0xd2, - 0xb1, 0x07, 0x9d, 0x9b, 0x72, 0xd0, 0x71, 0x49, 0xce, 0x8f, 0x95, 0xe4, 0x32, 0xcc, 0x07, 0xa3, - 0x41, 0xd8, 0x8b, 0x73, 0x20, 0x5a, 0x92, 0xe4, 0x7c, 0xc5, 0x0f, 0xee, 0xf7, 0x06, 0x5d, 0xbd, - 0x17, 0xf0, 0x04, 0x10, 0x28, 0xc8, 0x02, 0xa0, 0x7d, 0x9a, 0xbd, 0x7f, 0x14, 0x69, 0xef, 0xd9, - 0x78, 0x78, 0x6f, 0x67, 0x74, 0xe1, 0x35, 0x44, 0x90, 0x40, 0xbe, 0xc6, 0xc6, 0xb6, 0x8f, 0x9b, - 0x40, 0x97, 0xc4, 0x09, 0xf4, 0x73, 0x50, 0x34, 0xfd, 0x2e, 0xe3, 0x7b, 0x16, 0x4a, 0xf1, 0x9b, - 0x15, 0x1f, 0x1c, 0x2b, 0x1b, 0xec, 0xd1, 0x6a, 0x23, 0x7a, 0xb4, 0xda, 0x70, 0x23, 0x84, 0x93, - 0x80, 0x91, 0x02, 0x79, 0x4f, 0x98, 0x1d, 0xa3, 0xc7, 0x2a, 0xfe, 0xc2, 0xe0, 0xa5, 0x7b, 0xa6, - 0x24, 0xf4, 0x4c, 0xe5, 0x16, 0x9c, 0x6e, 0x0c, 0xbd, 0xc0, 0x18, 0x84, 0x04, 0xca, 0x9f, 0xab, - 0xae, 0x41, 0xa1, 0x47, 0x09, 0xdc, 0x8a, 0x25, 0x2e, 0x8f, 0xa3, 0xf8, 0xa6, 0xf2, 0x31, 0x58, - 0xe6, 0xd3, 0x6f, 0xc4, 0xf8, 0x78, 0xfa, 0xd1, 0x2c, 0x1a, 0x71, 0x38, 0x2a, 0xf5, 0x76, 0xf6, - 0x34, 0x2c, 0x8a, 0x64, 0x54, 0x81, 0x79, 0x8f, 0x26, 0x23, 0x7b, 0xeb, 0x28, 0x56, 0xe7, 0x9c, - 0x88, 0xb0, 0x95, 0x07, 0xe9, 0x41, 0xab, 0xaf, 0xdc, 0x86, 0x02, 0xb3, 0x80, 0xf8, 0x92, 0x3c, - 0x8b, 0x14, 0xa3, 0x07, 0x10, 0x04, 0xb9, 0xe1, 0xd1, 0xa0, 0xcd, 0xa7, 0x73, 0xfa, 0x9b, 0xa4, - 0x2e, 0x7f, 0x14, 0x91, 0x28, 0x95, 0xaf, 0x94, 0x36, 0x40, 0x32, 0x69, 0xa0, 0xe7, 0x61, 0x39, - 0x99, 0x35, 0x84, 0xf9, 0x66, 0x65, 0x62, 0x28, 0xa1, 0x17, 0x6e, 0x0c, 0x4c, 0x94, 0xb0, 0xcb, - 0x14, 0xd5, 0x7b, 0xb6, 0x5a, 0xf7, 0x61, 0x41, 0xf8, 0xa8, 0x47, 0x65, 0x38, 0xdb, 0xb0, 0x76, - 0x2d, 0xfb, 0x45, 0xab, 0xb9, 0xd5, 0x30, 0x4c, 0x1d, 0x3b, 0x4d, 0xf7, 0x4e, 0x0d, 0xcb, 0x73, - 0x68, 0x1e, 0xa4, 0xdb, 0xc6, 0x96, 0x9c, 0x41, 0x25, 0xc8, 0x6f, 0xa9, 0x77, 0xb1, 0x29, 0x67, - 0xd1, 0x32, 0x00, 0x45, 0xd5, 0x54, 0x6d, 0xb7, 0x2e, 0x4b, 0x08, 0xa0, 0xa0, 0x35, 0xea, 0xae, - 0xbd, 0x27, 0xe7, 0xc8, 0xef, 0x5d, 0xd5, 0x32, 0x76, 0x6d, 0x39, 0x4f, 0x7e, 0xeb, 0xb6, 0xb6, - 0x8b, 0x1d, 0xb9, 0xb0, 0xae, 0x43, 0x29, 0x7e, 0xc1, 0x40, 0xe7, 0x00, 0xa5, 0xd4, 0x45, 0xca, - 0x16, 0x60, 0x5e, 0x33, 0x1b, 0x75, 0x17, 0x3b, 0x72, 0x86, 0x68, 0xde, 0xd1, 0xb6, 0xe4, 0x2c, - 0xd1, 0x6c, 0xda, 0x9a, 0x6a, 0xca, 0xd2, 0xba, 0x4d, 0xc6, 0xcc, 0xe4, 0x1b, 0x1c, 0x5d, 0x80, - 0x95, 0x48, 0x90, 0x8e, 0x6b, 0xa6, 0x7d, 0x27, 0x31, 0xbc, 0x08, 0xb9, 0x2a, 0x36, 0xf7, 0xe4, - 0x0c, 0x5a, 0x82, 0xd2, 0x2e, 0x35, 0xcf, 0xb8, 0x8b, 0xe5, 0x2c, 0x51, 0xb2, 0xdb, 0xd8, 0xc2, - 0x9a, 0x4b, 0x04, 0x1a, 0xb0, 0x20, 0xbc, 0x05, 0x88, 0x71, 0xe0, 0x86, 0x44, 0xe2, 0x16, 0xa1, - 0xb8, 0x67, 0x58, 0x06, 0xe1, 0xe4, 0xb6, 0xed, 0x62, 0x66, 0x9b, 0xed, 0x56, 0xb1, 0x23, 0x4b, - 0xeb, 0x6f, 0x2c, 0x00, 0x24, 0xa5, 0x0f, 0x15, 0x20, 0x6b, 0xef, 0xca, 0x73, 0xa8, 0x0c, 0x67, - 0xea, 0xae, 0xea, 0x36, 0xea, 0x5a, 0x15, 0x6b, 0xbb, 0xcd, 0x7a, 0x43, 0xd3, 0x70, 0xbd, 0x2e, - 0xff, 0x3a, 0x83, 0x10, 0x2c, 0x31, 0xef, 0x23, 0xda, 0x6f, 0x32, 0xe8, 0x0c, 0x2c, 0x33, 0x47, - 0x62, 0xe2, 0x6f, 0x33, 0x68, 0x15, 0xca, 0x0c, 0x58, 0x6b, 0xd4, 0xab, 0x4d, 0x95, 0xd2, 0x9b, - 0x3a, 0xb6, 0x0c, 0xac, 0xcb, 0x1e, 0xba, 0x08, 0xe7, 0xf9, 0xae, 0x63, 0xdf, 0xc6, 0x9a, 0xdb, - 0xb4, 0x6c, 0xb7, 0xb9, 0x6d, 0x37, 0x2c, 0x5d, 0xde, 0x47, 0x8f, 0xc2, 0x65, 0xb6, 0xc9, 0x0e, - 0xa2, 0xa9, 0xab, 0x78, 0xcf, 0xb6, 0x28, 0xc4, 0x69, 0x58, 0x96, 0x61, 0xed, 0xc8, 0x5d, 0x74, - 0x19, 0x2a, 0xa2, 0x89, 0xc6, 0x9e, 0xba, 0x83, 0x9b, 0xb5, 0x86, 0x69, 0x36, 0xb1, 0xe3, 0xc8, - 0x3f, 0xc8, 0xa2, 0x47, 0xe1, 0x92, 0x08, 0xd0, 0x6c, 0xcb, 0x55, 0x0d, 0x0b, 0x3b, 0x4d, 0xcd, - 0xc1, 0xaa, 0x4b, 0x84, 0xfc, 0x30, 0x8b, 0x14, 0x78, 0x44, 0x04, 0x39, 0x0d, 0x4b, 0x00, 0x12, - 0x41, 0x3f, 0xca, 0xa2, 0x6b, 0xb0, 0x36, 0x5d, 0x90, 0x8b, 0x9d, 0x3d, 0xc3, 0x52, 0x5d, 0xac, - 0xcb, 0x3f, 0xce, 0xa2, 0x27, 0xe0, 0xba, 0x08, 0x63, 0x11, 0xd9, 0xc3, 0x96, 0xdb, 0x74, 0x6c, - 0xd3, 0xb4, 0x1b, 0x6e, 0xb3, 0x86, 0x2d, 0x9d, 0xe8, 0xfd, 0xc9, 0x43, 0x64, 0x3a, 0xb8, 0xee, - 0xaa, 0x0e, 0x35, 0xef, 0xed, 0x2c, 0xaa, 0xc0, 0x8a, 0x08, 0x6b, 0x58, 0x55, 0xac, 0x9a, 0x6e, - 0xf5, 0x8e, 0xfc, 0xce, 0x84, 0x08, 0xcb, 0xd6, 0x71, 0x73, 0x0f, 0xef, 0xd9, 0xce, 0x9d, 0x66, - 0xcd, 0xc1, 0xf5, 0x7a, 0xc3, 0xc1, 0xf2, 0x17, 0xa5, 0xf1, 0x30, 0x50, 0x98, 0x6e, 0xd4, 0x77, - 0x13, 0xd0, 0x97, 0x24, 0xf4, 0x38, 0x5c, 0x9d, 0x00, 0x59, 0xd8, 0x7d, 0xd1, 0x76, 0x88, 0x52, - 0xf5, 0x05, 0xd5, 0x30, 0xd5, 0x2d, 0x13, 0xcb, 0x5f, 0x96, 0xc6, 0x23, 0x46, 0xa1, 0x35, 0x43, - 0x4f, 0xc4, 0xbd, 0x3a, 0x5d, 0x67, 0xc3, 0x22, 0x2b, 0xbd, 0xc1, 0x04, 0x7d, 0x45, 0x42, 0x57, - 0x60, 0x75, 0x0a, 0xc8, 0xc1, 0xaa, 0x56, 0xa5, 0x90, 0xd7, 0xa4, 0xf1, 0x33, 0x66, 0x66, 0x91, - 0x2c, 0xc0, 0xaa, 0x7e, 0x47, 0xfe, 0xea, 0x84, 0x31, 0xdb, 0xaa, 0x61, 0x62, 0xbd, 0xc9, 0x15, - 0x91, 0x18, 0x7e, 0x4d, 0x42, 0x8f, 0x81, 0x22, 0x62, 0xf8, 0x35, 0x22, 0x21, 0xb7, 0xb0, 0xe6, - 0x1a, 0xb6, 0x45, 0xcf, 0xf9, 0x1b, 0x13, 0x56, 0x47, 0x40, 0xe2, 0xdc, 0xae, 0x61, 0x9a, 0x58, - 0x97, 0xbf, 0x39, 0x11, 0xa9, 0x58, 0x9a, 0x69, 0x90, 0x93, 0xde, 0xc6, 0xae, 0x56, 0xa5, 0xf2, - 0xbe, 0x25, 0x8d, 0x1f, 0x90, 0x90, 0x10, 0x09, 0xec, 0xdb, 0x13, 0x71, 0xa8, 0xd9, 0x7a, 0xd3, - 0xb0, 0x0c, 0xd7, 0x50, 0x4d, 0xe3, 0x2e, 0x71, 0xe1, 0x97, 0x12, 0xb9, 0x74, 0xd1, 0x0d, 0xc7, - 0x8e, 0x63, 0x3b, 0xf2, 0xbb, 0xd2, 0xf8, 0x15, 0xe5, 0xfb, 0xf2, 0x7b, 0x12, 0xba, 0x0e, 0x57, - 0xa6, 0xec, 0x8c, 0x1d, 0xc0, 0x5f, 0x24, 0xb4, 0x0e, 0xd7, 0xa6, 0xe7, 0xe0, 0x8b, 0xaa, 0x41, - 0x12, 0x30, 0x96, 0xf9, 0x57, 0x09, 0x5d, 0x82, 0x0b, 0xd3, 0x64, 0xe2, 0x17, 0xb0, 0xe5, 0xca, - 0xff, 0x96, 0x84, 0x12, 0x10, 0x31, 0xfd, 0x4d, 0x42, 0xa7, 0x61, 0xb1, 0x7e, 0xc7, 0xd2, 0x62, - 0xd2, 0xdf, 0xa5, 0xa4, 0x7c, 0x44, 0xb4, 0x7f, 0x48, 0xe8, 0x2c, 0x9c, 0xd2, 0xf1, 0x0b, 0xc4, - 0xe7, 0x98, 0xfa, 0x4f, 0x4a, 0xd5, 0x4c, 0xac, 0x5a, 0x8d, 0x5a, 0x4c, 0xfd, 0x17, 0xa5, 0x52, - 0x91, 0x14, 0xcd, 0x62, 0xf1, 0xc7, 0x1c, 0x5a, 0x83, 0x8b, 0x91, 0x04, 0x07, 0xef, 0x18, 0xb4, - 0x04, 0xf2, 0x0a, 0x82, 0x6b, 0x75, 0xf9, 0x8d, 0x3c, 0xc9, 0xa4, 0x09, 0x84, 0x8b, 0xeb, 0x2e, - 0x03, 0xfc, 0x3c, 0x4f, 0x4e, 0x61, 0x02, 0xc0, 0x3d, 0xa2, 0x90, 0x37, 0xf3, 0x53, 0xb5, 0x68, - 0xb6, 0xb5, 0x6d, 0xec, 0x10, 0x88, 0xfc, 0x8b, 0xfc, 0x78, 0xbe, 0x36, 0xea, 0x04, 0xa1, 0x5a, - 0x1a, 0xa6, 0xd9, 0xf3, 0x7a, 0x61, 0x3c, 0x5f, 0x75, 0xac, 0xea, 0xa6, 0x61, 0xe1, 0x26, 0x7e, - 0x49, 0xc3, 0x58, 0xc7, 0xba, 0xfc, 0x9d, 0x02, 0x71, 0x91, 0xd9, 0x9e, 0x70, 0x7e, 0xb7, 0x80, - 0x56, 0x40, 0xe6, 0xe6, 0x24, 0xe4, 0xef, 0x15, 0xd6, 0x7f, 0x9f, 0x83, 0xe5, 0x74, 0x37, 0x25, - 0x65, 0xde, 0x32, 0x4c, 0x79, 0x0e, 0x9d, 0x05, 0x59, 0xd5, 0x49, 0x08, 0xb6, 0xd5, 0x86, 0x49, - 0x6c, 0xae, 0xd9, 0x72, 0x87, 0xb4, 0xb1, 0x48, 0xb9, 0x40, 0x27, 0x23, 0xe6, 0xda, 0x24, 0xbd, - 0xb9, 0x63, 0xda, 0x5b, 0xaa, 0xc9, 0xdd, 0x94, 0xf7, 0xd1, 0x1a, 0xac, 0xee, 0x68, 0xa6, 0xdd, - 0x88, 0x6b, 0xb3, 0xda, 0x70, 0xab, 0x7c, 0x9b, 0x5c, 0xfe, 0x2e, 0xe9, 0x6e, 0xd3, 0xb7, 0x5e, - 0x26, 0x8d, 0x8a, 0xa9, 0xe0, 0x22, 0x78, 0xed, 0x97, 0x7b, 0xc9, 0x0e, 0x67, 0x8d, 0xca, 0xfc, - 0xa7, 0xd0, 0x85, 0x68, 0x27, 0x49, 0x4f, 0xd3, 0xde, 0xa9, 0x93, 0xda, 0x5d, 0x81, 0x15, 0x5e, - 0xb5, 0xb1, 0xaa, 0x1b, 0x16, 0xe9, 0x2f, 0x35, 0xc7, 0xde, 0xc2, 0xa4, 0x66, 0xc7, 0x7b, 0x09, - 0x1b, 0xed, 0x10, 0xa4, 0x50, 0x5f, 0x81, 0x55, 0x55, 0xd7, 0x49, 0xb9, 0x9a, 0x59, 0x34, 0x2f, - 0x43, 0x25, 0x05, 0x99, 0x28, 0x98, 0xd7, 0x60, 0x2d, 0x05, 0x98, 0x51, 0x2c, 0x2f, 0xc1, 0x85, - 0x14, 0x6c, 0xbc, 0x50, 0x8e, 0xeb, 0x99, 0x28, 0x92, 0x8f, 0x40, 0x79, 0x0c, 0x90, 0x2a, 0x90, - 0x17, 0xe1, 0x5c, 0xda, 0x0c, 0xb1, 0x38, 0x0a, 0xca, 0xa7, 0x16, 0xc6, 0x38, 0x46, 0x55, 0xbb, - 0xee, 0x0a, 0xf5, 0x50, 0xfe, 0xba, 0xf4, 0xcc, 0x4f, 0xf3, 0x70, 0xaa, 0xce, 0xff, 0x6b, 0x5c, - 0xf7, 0x82, 0x07, 0xbd, 0xb6, 0x87, 0x34, 0x28, 0xee, 0x78, 0x21, 0x7f, 0xd8, 0x9d, 0x18, 0xa4, - 0xf1, 0xc1, 0x61, 0x78, 0x54, 0x49, 0xfd, 0x5f, 0x57, 0x39, 0xfd, 0xf9, 0xdf, 0xbd, 0xfd, 0x6a, - 0x76, 0x01, 0x95, 0x36, 0x1f, 0x3c, 0xbd, 0x49, 0xe7, 0x54, 0xb4, 0x03, 0x45, 0x3a, 0x46, 0x9b, - 0x7e, 0x17, 0x45, 0xcf, 0x49, 0xd1, 0xc4, 0x5e, 0x19, 0x27, 0x28, 0x2b, 0x54, 0xc0, 0x29, 0xb4, - 0x44, 0x04, 0xb0, 0x97, 0xbb, 0xbe, 0xdf, 0xbd, 0x91, 0x79, 0x2a, 0x83, 0x76, 0xa0, 0x40, 0x05, - 0x0d, 0x67, 0xda, 0x32, 0x21, 0x0d, 0x51, 0x69, 0x8b, 0x08, 0x62, 0x69, 0xc3, 0xa7, 0x32, 0xe8, - 0x25, 0x98, 0xc7, 0x9f, 0xf1, 0xda, 0xa3, 0xd0, 0x43, 0x65, 0xce, 0x31, 0x31, 0xc2, 0x57, 0x66, - 0xe8, 0x50, 0x2e, 0x52, 0x91, 0x2b, 0xca, 0x02, 0x15, 0xc9, 0xc4, 0xdc, 0xe2, 0x03, 0x3d, 0x6a, - 0x41, 0x49, 0x1d, 0x85, 0x3e, 0x1d, 0x21, 0xd1, 0x4a, 0x7a, 0x78, 0x3f, 0x4e, 0xf0, 0x35, 0x2a, - 0xf8, 0x72, 0xe5, 0x1c, 0x11, 0x4c, 0xe7, 0xf1, 0xcd, 0xd6, 0x28, 0xf4, 0x9b, 0x91, 0x0e, 0x36, - 0xf6, 0xa3, 0x26, 0x14, 0x89, 0x0a, 0xf2, 0xf9, 0x7c, 0x52, 0x0d, 0x57, 0xa9, 0x86, 0x4b, 0x95, - 0x15, 0x7a, 0x38, 0x47, 0x83, 0xf6, 0x54, 0x05, 0x6d, 0x00, 0xa2, 0x80, 0x0d, 0xb0, 0x27, 0x55, - 0x71, 0x9d, 0xaa, 0x58, 0xab, 0x9c, 0x27, 0x2a, 0xd8, 0x97, 0xc2, 0x54, 0x25, 0x26, 0x14, 0xaa, - 0xad, 0x41, 0xa7, 0xef, 0xa1, 0xd4, 0xa7, 0xd6, 0x4c, 0xb9, 0xab, 0x54, 0xee, 0x39, 0xe5, 0x74, - 0x72, 0x90, 0x9b, 0x2f, 0x53, 0x01, 0xb7, 0x32, 0xeb, 0xf7, 0x0a, 0x14, 0x7d, 0xf3, 0x3f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xa3, 0xe7, 0x74, 0x82, 0xf7, 0x20, 0x00, 0x00, + // 3089 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x5b, 0x8c, 0x1b, 0x57, + 0x19, 0x5e, 0x7b, 0x7c, 0xfd, 0xf7, 0x92, 0xc9, 0x49, 0x36, 0x71, 0x9c, 0x4d, 0xb2, 0x71, 0x93, + 0x34, 0xdd, 0x96, 0x4d, 0xdb, 0x20, 0x54, 0x42, 0x0b, 0x9a, 0x9d, 0x39, 0xbb, 0x9e, 0xec, 0xec, + 0x8c, 0x35, 0x1e, 0x37, 0x4d, 0x24, 0x64, 0x39, 0xf6, 0xac, 0x6b, 0xe2, 0xb5, 0x17, 0x7b, 0x9c, + 0xb2, 0x3c, 0xf0, 0x80, 0xb8, 0x17, 0x24, 0x68, 0x29, 0xf7, 0x87, 0x02, 0x42, 0xe2, 0x81, 0xdb, + 0x2b, 0x42, 0x50, 0x24, 0x1e, 0xb8, 0xbc, 0x22, 0x21, 0xf1, 0x84, 0x90, 0xda, 0x07, 0xde, 0xdb, + 0x02, 0xe5, 0x22, 0x74, 0x6e, 0x33, 0x67, 0x7c, 0xc9, 0x36, 0x45, 0x88, 0xa7, 0x78, 0xfe, 0xf3, + 0xfd, 0xd7, 0xf3, 0x9f, 0xff, 0xff, 0xcf, 0xc9, 0xc2, 0xd2, 0xf0, 0x4e, 0x63, 0x77, 0xb7, 0xdf, + 0x6d, 0xad, 0xef, 0x0f, 0xfa, 0x41, 0x1f, 0xa5, 0xe9, 0x3f, 0xc5, 0x95, 0x76, 0xbf, 0xdf, 0xee, + 0xfa, 0x57, 0x1a, 0xfb, 0x9d, 0x2b, 0x8d, 0x5e, 0xaf, 0x1f, 0x34, 0x82, 0x4e, 0xbf, 0x37, 0x64, + 0xa0, 0xe2, 0x39, 0xbe, 0x4a, 0xbf, 0x6e, 0x8f, 0x76, 0xaf, 0x04, 0x9d, 0x3d, 0x7f, 0x18, 0x34, + 0xf6, 0xf6, 0x39, 0xe0, 0xf4, 0x38, 0xc0, 0xdf, 0xdb, 0x0f, 0x0e, 0xd8, 0x62, 0xe9, 0x2a, 0x2c, + 0x56, 0x83, 0x46, 0xe0, 0xbb, 0xfe, 0x70, 0xbf, 0xdf, 0x1b, 0xfa, 0xa8, 0x04, 0xe9, 0x21, 0x21, + 0x14, 0x12, 0xab, 0x89, 0xcb, 0xf3, 0x8f, 0x2f, 0x30, 0xdc, 0x3a, 0x03, 0xb1, 0xa5, 0xd2, 0x0a, + 0xe4, 0x42, 0xbc, 0x0a, 0xca, 0xde, 0xb0, 0x4d, 0xd1, 0x79, 0x97, 0xfc, 0x2c, 0x9d, 0x81, 0xac, + 0xeb, 0x7f, 0x78, 0xe4, 0x0f, 0x03, 0x84, 0x20, 0xd5, 0x6b, 0xec, 0xf9, 0x7c, 0x95, 0xfe, 0x2e, + 0xbd, 0x94, 0x82, 0x34, 0x95, 0x86, 0x1e, 0x03, 0xb8, 0x3d, 0xea, 0x74, 0x5b, 0x55, 0x49, 0xdf, + 0x51, 0xae, 0x6f, 0x23, 0x5c, 0x70, 0x25, 0x10, 0x7a, 0x37, 0xcc, 0xb7, 0xfc, 0xfd, 0x6e, 0xff, + 0x80, 0xf1, 0x24, 0x29, 0x0f, 0xe2, 0x3c, 0x46, 0xb4, 0xe2, 0xca, 0x30, 0x54, 0x86, 0xa5, 0xdd, + 0xfe, 0xe0, 0xb9, 0xc6, 0xa0, 0xe5, 0xb7, 0x2a, 0xfd, 0x41, 0x30, 0x2c, 0xa4, 0x56, 0x95, 0xcb, + 0xf3, 0x8f, 0xaf, 0xca, 0xce, 0xad, 0x6f, 0xc6, 0x20, 0xb8, 0x17, 0x0c, 0x0e, 0xdc, 0x31, 0x3e, + 0xa4, 0x83, 0x4a, 0x42, 0x30, 0x1a, 0xea, 0xcf, 0xfa, 0xcd, 0x3b, 0xcc, 0x88, 0x34, 0x35, 0xe2, + 0xa4, 0x24, 0x4b, 0x5e, 0x76, 0x27, 0x18, 0xd0, 0x35, 0x58, 0xdc, 0xed, 0x74, 0xfd, 0xea, 0x41, + 0xaf, 0xc9, 0x24, 0x64, 0xa8, 0x84, 0xe3, 0x5c, 0xc2, 0xa6, 0xbc, 0xe6, 0xc6, 0xa1, 0xa8, 0x02, + 0xc7, 0x5a, 0xfe, 0xed, 0x51, 0xbb, 0xdd, 0xe9, 0xb5, 0xf5, 0x7e, 0x2f, 0x68, 0x74, 0x7a, 0xfe, + 0x60, 0x58, 0xc8, 0x52, 0x7f, 0xce, 0x86, 0x81, 0x18, 0x47, 0xe0, 0xbb, 0x7e, 0x2f, 0x70, 0xa7, + 0xb1, 0xa2, 0x87, 0x21, 0xb7, 0xe7, 0x07, 0x8d, 0x56, 0x23, 0x68, 0x14, 0x72, 0xd4, 0x90, 0x23, + 0x5c, 0xcc, 0x0e, 0x27, 0xbb, 0x21, 0xa0, 0x58, 0x85, 0x63, 0x53, 0xc2, 0x44, 0x92, 0xe0, 0x8e, + 0x7f, 0x40, 0xb7, 0x30, 0xed, 0x92, 0x9f, 0xe8, 0x12, 0xa4, 0xef, 0x36, 0xba, 0x23, 0xb1, 0x45, + 0x2a, 0x17, 0x49, 0x78, 0x98, 0x2d, 0x6c, 0xf9, 0x5a, 0xf2, 0x89, 0xc4, 0xf5, 0x54, 0x4e, 0x51, + 0x53, 0xa5, 0xd7, 0x12, 0x90, 0x13, 0x1a, 0xd1, 0x1a, 0xa4, 0xe9, 0xae, 0xf3, 0xac, 0x38, 0x2e, + 0x67, 0x45, 0x68, 0x16, 0x83, 0xa0, 0x77, 0x41, 0x86, 0x6d, 0x36, 0xd7, 0xb5, 0x1c, 0x4b, 0x87, + 0x10, 0xcd, 0x41, 0xe8, 0x03, 0x00, 0x8d, 0x56, 0xab, 0x43, 0x8e, 0x50, 0xa3, 0x5b, 0x68, 0xd2, + 0xc0, 0x9d, 0x1b, 0xf3, 0x78, 0x5d, 0x0b, 0x11, 0x2c, 0x0f, 0x24, 0x96, 0xe2, 0x53, 0x70, 0x64, + 0x6c, 0x59, 0xf6, 0x3f, 0xcf, 0xfc, 0x3f, 0x2e, 0xfb, 0x9f, 0x97, 0xbc, 0x2d, 0xbd, 0x91, 0x84, + 0xc5, 0x98, 0x1f, 0xe8, 0x11, 0x38, 0xda, 0x1b, 0xed, 0xdd, 0xf6, 0x07, 0xce, 0xae, 0x36, 0x08, + 0x3a, 0xbb, 0x8d, 0x66, 0x30, 0xe4, 0xb1, 0x9c, 0x5c, 0x40, 0x4f, 0x41, 0x8e, 0xfa, 0x4d, 0xb6, + 0x3d, 0x49, 0xad, 0x3f, 0x3f, 0x2d, 0x3a, 0xeb, 0xe6, 0x5e, 0xa3, 0xed, 0x6f, 0x30, 0xa4, 0x1b, + 0xb2, 0xa0, 0x0b, 0x90, 0x0a, 0x0e, 0xf6, 0xfd, 0x82, 0xb2, 0x9a, 0xb8, 0xbc, 0x14, 0xee, 0x0b, + 0xc5, 0x79, 0x07, 0xfb, 0xbe, 0x4b, 0x57, 0x91, 0x31, 0x25, 0x48, 0x17, 0xa6, 0xaa, 0xb9, 0x57, + 0xa4, 0x2c, 0x58, 0x90, 0xad, 0x40, 0x97, 0xb8, 0xee, 0x04, 0xd5, 0x8d, 0x64, 0x79, 0xfe, 0x40, + 0xd2, 0x7e, 0x1c, 0xd2, 0xcd, 0xfe, 0xa8, 0x17, 0xd0, 0xe0, 0xa5, 0x5d, 0xf6, 0xf1, 0xdf, 0xc6, + 0xfd, 0xd7, 0x09, 0x58, 0x8a, 0xa7, 0x04, 0x7a, 0x12, 0xf2, 0x2c, 0x29, 0x48, 0x2c, 0x13, 0x63, + 0x47, 0x48, 0x46, 0xf2, 0x4f, 0x7f, 0xe0, 0x46, 0x0c, 0xe8, 0x11, 0xc8, 0x36, 0xbb, 0xa3, 0x61, + 0xe0, 0x0f, 0xa8, 0xb2, 0xc8, 0x21, 0x9d, 0x51, 0xa9, 0x43, 0x02, 0x52, 0x34, 0x21, 0x27, 0x84, + 0xa0, 0x07, 0x63, 0x71, 0x38, 0x16, 0x53, 0x79, 0x78, 0x20, 0x4a, 0x7f, 0x4a, 0x00, 0x44, 0xf5, + 0x11, 0xbd, 0x1f, 0xf2, 0x0d, 0x29, 0x6d, 0xe4, 0xc2, 0x16, 0xa1, 0xd6, 0xc3, 0x04, 0x62, 0xdb, + 0x14, 0xb1, 0xa0, 0x55, 0x98, 0x6f, 0x8c, 0x82, 0xbe, 0x37, 0xe8, 0xb4, 0xdb, 0xdc, 0x97, 0x9c, + 0x2b, 0x93, 0x48, 0xa1, 0xe6, 0x45, 0xac, 0xdf, 0x12, 0x99, 0x73, 0x34, 0x5e, 0xef, 0xfa, 0x2d, + 0xdf, 0x95, 0x40, 0xc5, 0x27, 0x61, 0x29, 0xae, 0xf1, 0xbe, 0xf6, 0xea, 0xa3, 0x30, 0x2f, 0x15, + 0x73, 0x74, 0x02, 0x32, 0x4c, 0x34, 0xe7, 0xe6, 0x5f, 0xff, 0x13, 0xcb, 0x4b, 0x7f, 0x4e, 0x80, + 0x3a, 0x5e, 0xc4, 0x67, 0x5a, 0x60, 0x40, 0x7e, 0xe0, 0x0f, 0xfb, 0xa3, 0x41, 0xd3, 0x17, 0xa7, + 0xf1, 0xd2, 0x8c, 0x46, 0xb0, 0xee, 0x0a, 0x20, 0xdf, 0x81, 0x90, 0xf1, 0x1d, 0xc6, 0x37, 0x2e, + 0xef, 0xbe, 0xe2, 0x6b, 0xc2, 0x62, 0xac, 0xcb, 0xbc, 0xf3, 0x08, 0x97, 0xbe, 0x9f, 0x86, 0x34, + 0xad, 0xe8, 0xe8, 0x51, 0xc8, 0x93, 0x3e, 0x41, 0x3f, 0x78, 0xdd, 0x56, 0xa5, 0xba, 0x4a, 0xe9, + 0xe5, 0x39, 0x37, 0x02, 0xa1, 0xab, 0x7c, 0x00, 0x60, 0x2c, 0xc9, 0xc9, 0x01, 0x40, 0xf0, 0x48, + 0x30, 0xf4, 0x1e, 0x31, 0x02, 0x30, 0x2e, 0x65, 0xca, 0x08, 0x20, 0xd8, 0x64, 0x20, 0x31, 0x6f, + 0x5f, 0x74, 0x9f, 0x42, 0x6a, 0x7a, 0x57, 0x22, 0xe6, 0x85, 0x20, 0x84, 0x63, 0xcd, 0x9e, 0x31, + 0xce, 0x6c, 0xf6, 0x82, 0x7f, 0x82, 0x05, 0x7d, 0x10, 0x0a, 0x62, 0xab, 0xc7, 0xf1, 0xbc, 0xf3, + 0x8b, 0xf6, 0xe3, 0xce, 0x80, 0x95, 0xe7, 0xdc, 0x99, 0x22, 0xd0, 0x93, 0xd1, 0x34, 0xc1, 0x64, + 0x66, 0xa7, 0x4e, 0x13, 0x42, 0x50, 0x1c, 0x8c, 0x6e, 0xc1, 0xc9, 0xd6, 0xf4, 0x69, 0x81, 0x0f, + 0x03, 0x87, 0xcc, 0x14, 0xe5, 0x39, 0x77, 0x96, 0x00, 0xf4, 0x5e, 0x58, 0x68, 0xf9, 0x77, 0xad, + 0x7e, 0x7f, 0x9f, 0x09, 0xcc, 0x53, 0x81, 0x51, 0xb9, 0x8b, 0x96, 0xca, 0x73, 0x6e, 0x0c, 0x4a, + 0x42, 0x1f, 0xf8, 0x83, 0xbd, 0x4e, 0x8f, 0x8e, 0xba, 0x8c, 0x1d, 0x62, 0xa1, 0xf7, 0xc6, 0x96, + 0x49, 0xe8, 0xc7, 0x59, 0x36, 0x16, 0x00, 0x7c, 0xf2, 0xa3, 0x4e, 0xaa, 0x69, 0xc9, 0x05, 0x75, + 0x9c, 0x6b, 0x66, 0xe2, 0x5f, 0x02, 0xc5, 0x1f, 0x0c, 0x78, 0x4e, 0x8a, 0x58, 0x6a, 0x4d, 0xda, + 0x7c, 0x6e, 0x77, 0x7d, 0x3c, 0x18, 0xb8, 0x04, 0x50, 0xea, 0xc2, 0x82, 0xec, 0x08, 0x5a, 0x81, + 0x7c, 0x27, 0xf0, 0x07, 0x54, 0x03, 0xef, 0xe1, 0x11, 0x41, 0xd2, 0x96, 0x9c, 0xa6, 0x4d, 0x39, + 0x4c, 0xdb, 0xf3, 0x09, 0x58, 0x8c, 0x91, 0xd1, 0xc3, 0x90, 0xf5, 0x07, 0x03, 0x5a, 0x37, 0x12, + 0xb3, 0xea, 0x86, 0x40, 0xa0, 0x02, 0x64, 0xf7, 0xfc, 0xe1, 0xb0, 0xd1, 0x16, 0x25, 0x41, 0x7c, + 0xa2, 0xab, 0x30, 0x3f, 0x1c, 0xb5, 0xdb, 0xfe, 0x90, 0xde, 0x2c, 0x0a, 0x0a, 0xad, 0x64, 0xa1, + 0xa8, 0x70, 0xc5, 0x95, 0x51, 0x25, 0x1b, 0xf2, 0xe1, 0xc1, 0x26, 0xc5, 0xc6, 0x27, 0x75, 0x88, + 0xc7, 0x91, 0x7d, 0xc4, 0x86, 0xcb, 0xe4, 0x21, 0xc3, 0x65, 0xe9, 0x67, 0xa2, 0xaf, 0x31, 0x89, + 0x45, 0xc8, 0x89, 0x26, 0xc5, 0x85, 0x86, 0xdf, 0x33, 0x03, 0xa9, 0x46, 0x81, 0xcc, 0xd3, 0x90, + 0xc9, 0x01, 0x4a, 0x1d, 0x1a, 0xa0, 0x6b, 0xb0, 0xd8, 0x90, 0xc3, 0xcb, 0x8f, 0xfb, 0xf4, 0x1d, + 0x89, 0x43, 0x4b, 0x2f, 0x27, 0x44, 0xd3, 0xba, 0x77, 0x66, 0xa9, 0x51, 0x66, 0x4d, 0x9a, 0xa8, + 0xdc, 0xbf, 0x89, 0xa9, 0xb7, 0x6f, 0xe2, 0x2b, 0xf1, 0xd6, 0x76, 0x6f, 0x3b, 0x67, 0x27, 0xcb, + 0xff, 0x31, 0xc8, 0x7f, 0x49, 0x40, 0x61, 0x56, 0x95, 0x24, 0x09, 0x23, 0xaa, 0xa4, 0x48, 0x18, + 0xf1, 0x3d, 0x33, 0x61, 0x24, 0x2f, 0x95, 0xa9, 0x5e, 0xa6, 0x22, 0x2f, 0xe3, 0x6d, 0x3a, 0xfd, + 0x36, 0xda, 0xf4, 0xa4, 0xaf, 0x99, 0xb7, 0xef, 0xeb, 0xf7, 0x92, 0x90, 0x0f, 0x3b, 0x13, 0x29, + 0x2c, 0xdd, 0x7e, 0xb3, 0xd1, 0x25, 0x14, 0x51, 0x58, 0x42, 0x02, 0x3a, 0x0b, 0x30, 0xf0, 0xf7, + 0xfa, 0x81, 0x4f, 0x97, 0xd9, 0xb4, 0x28, 0x51, 0x88, 0x9b, 0xfb, 0xfd, 0x96, 0x4d, 0xee, 0xe2, + 0xdc, 0x4d, 0xfe, 0x89, 0x2e, 0xc0, 0x62, 0x53, 0x94, 0x6d, 0xba, 0xce, 0x1c, 0x8e, 0x13, 0x89, + 0x76, 0x72, 0x79, 0x1f, 0xee, 0x37, 0x9a, 0xcc, 0xf3, 0xbc, 0x1b, 0x11, 0x48, 0xe0, 0x49, 0xd7, + 0xa4, 0xec, 0x19, 0x16, 0x78, 0xf1, 0x8d, 0x4a, 0xb0, 0x20, 0x36, 0x81, 0x0c, 0xb6, 0xb4, 0x3b, + 0xe5, 0xdd, 0x18, 0x4d, 0xc6, 0x50, 0x19, 0xb9, 0x38, 0x86, 0xca, 0x29, 0x40, 0xb6, 0xd1, 0x6a, + 0x0d, 0xfc, 0xe1, 0x90, 0xf6, 0x91, 0xbc, 0x2b, 0x3e, 0x4b, 0x7f, 0x48, 0x44, 0xd3, 0x4c, 0x18, + 0x2b, 0xd2, 0xe5, 0x74, 0x3a, 0x3a, 0xf3, 0x58, 0x85, 0x04, 0x52, 0xa9, 0x3a, 0x7b, 0x51, 0x5a, + 0xb3, 0x0f, 0x29, 0x41, 0x94, 0x69, 0xc7, 0x35, 0x35, 0x35, 0xd9, 0xd3, 0xf7, 0x9f, 0xec, 0xf7, + 0x91, 0x00, 0xaf, 0x27, 0xe1, 0xe4, 0x8c, 0xb6, 0x7b, 0xaf, 0x53, 0x2b, 0x36, 0x3a, 0x79, 0xc8, + 0x46, 0x2b, 0x87, 0x6e, 0x74, 0x6a, 0xca, 0x46, 0x87, 0x25, 0x39, 0x3d, 0x56, 0x92, 0x0b, 0x90, + 0x1d, 0x8c, 0x7a, 0x41, 0x27, 0xcc, 0x01, 0xf1, 0x49, 0x92, 0xf3, 0xb9, 0xfe, 0xe0, 0x4e, 0xa7, + 0xd7, 0x36, 0x3a, 0x03, 0x9e, 0x00, 0x12, 0x05, 0xd9, 0x00, 0x74, 0x84, 0x60, 0x4f, 0x33, 0x39, + 0xda, 0x7b, 0xd6, 0xef, 0x3d, 0x76, 0x30, 0xba, 0xf4, 0x50, 0x23, 0x49, 0x20, 0x17, 0xc5, 0xb1, + 0xe5, 0xc3, 0x86, 0xe3, 0x45, 0x79, 0x38, 0xfe, 0x18, 0xe4, 0xac, 0x7e, 0x9b, 0xf1, 0x3d, 0x01, + 0xf9, 0xf0, 0x39, 0x8d, 0xcf, 0xb4, 0xc5, 0x75, 0xf6, 0x9e, 0xb6, 0x2e, 0xde, 0xd3, 0xd6, 0x3d, + 0x81, 0x70, 0x23, 0x30, 0x2a, 0x41, 0xda, 0x97, 0xc6, 0x5a, 0xf1, 0x8e, 0xc6, 0x1f, 0x3f, 0xfc, + 0x78, 0xcf, 0x54, 0xa4, 0x9e, 0x59, 0xba, 0x06, 0x47, 0x6b, 0x43, 0x7f, 0x60, 0xf6, 0x02, 0x02, + 0xe5, 0x2f, 0x69, 0x17, 0x21, 0xd3, 0xa1, 0x04, 0x6e, 0xc5, 0x22, 0x97, 0xc7, 0x51, 0x7c, 0xb1, + 0xf4, 0x3e, 0x58, 0xe2, 0x83, 0xb9, 0x60, 0x7c, 0x28, 0xfe, 0x9e, 0x27, 0xa6, 0x2f, 0x8e, 0x8a, + 0x3d, 0xeb, 0x3d, 0x06, 0x0b, 0x32, 0x19, 0x15, 0x21, 0xeb, 0xd3, 0x64, 0x64, 0xcf, 0x30, 0xb9, + 0xf2, 0x9c, 0x2b, 0x08, 0x1b, 0x69, 0x50, 0xee, 0x36, 0xba, 0xa5, 0xeb, 0x90, 0x61, 0x16, 0x10, + 0x5f, 0xa2, 0x17, 0x9b, 0x9c, 0x78, 0x9b, 0x41, 0x90, 0x1a, 0x1e, 0xf4, 0x9a, 0xfc, 0xe2, 0x40, + 0x7f, 0x93, 0xd4, 0xe5, 0xef, 0x35, 0x0a, 0xa5, 0xf2, 0xaf, 0x52, 0x13, 0x20, 0x9a, 0x34, 0xd0, + 0x53, 0xb0, 0x14, 0xcd, 0x1a, 0xd2, 0x7c, 0xb3, 0x3c, 0x31, 0x94, 0xd0, 0x03, 0x37, 0x06, 0x26, + 0x4a, 0xd8, 0x61, 0x12, 0xf5, 0x9e, 0x7d, 0xad, 0xf5, 0x61, 0x5e, 0x7a, 0x6f, 0x40, 0x05, 0x38, + 0x5e, 0xb3, 0xb7, 0x6d, 0xe7, 0x86, 0x5d, 0xdf, 0xa8, 0x99, 0x96, 0x81, 0xdd, 0xba, 0x77, 0xb3, + 0x82, 0xd5, 0x39, 0x94, 0x05, 0xe5, 0xba, 0xb9, 0xa1, 0x26, 0x50, 0x1e, 0xd2, 0x1b, 0xda, 0x2d, + 0x6c, 0xa9, 0x49, 0xb4, 0x04, 0x40, 0x51, 0x15, 0x4d, 0xdf, 0xae, 0xaa, 0x0a, 0x02, 0xc8, 0xe8, + 0xb5, 0xaa, 0xe7, 0xec, 0xa8, 0x29, 0xf2, 0x7b, 0x5b, 0xb3, 0xcd, 0x6d, 0x47, 0x4d, 0x93, 0xdf, + 0x86, 0xa3, 0x6f, 0x63, 0x57, 0xcd, 0xac, 0x19, 0x90, 0x0f, 0x1f, 0x57, 0xd0, 0x09, 0x40, 0x31, + 0x75, 0x42, 0xd9, 0x3c, 0x64, 0x75, 0xab, 0x56, 0xf5, 0xb0, 0xab, 0x26, 0x88, 0xe6, 0x2d, 0x7d, + 0x43, 0x4d, 0x12, 0xcd, 0x96, 0xa3, 0x6b, 0x96, 0xaa, 0xac, 0x39, 0x64, 0xcc, 0x8c, 0x9e, 0x07, + 0xd0, 0x29, 0x58, 0x16, 0x82, 0x0c, 0x5c, 0xb1, 0x9c, 0x9b, 0x91, 0xe1, 0x39, 0x48, 0x95, 0xb1, + 0xb5, 0xa3, 0x26, 0xd0, 0x22, 0xe4, 0xb7, 0xa9, 0x79, 0xe6, 0x2d, 0xac, 0x26, 0x89, 0x92, 0xed, + 0xda, 0x06, 0xd6, 0x3d, 0x22, 0xd0, 0x84, 0x79, 0xe9, 0x99, 0x42, 0x8e, 0x03, 0x37, 0x44, 0x88, + 0x5b, 0x80, 0xdc, 0x8e, 0x69, 0x9b, 0x84, 0x93, 0xdb, 0xb6, 0x8d, 0x99, 0x6d, 0x8e, 0x57, 0xc6, + 0xae, 0xaa, 0xac, 0xbd, 0xb5, 0x08, 0x10, 0x95, 0x3e, 0x94, 0x81, 0xa4, 0xb3, 0xad, 0xce, 0xa1, + 0x02, 0x1c, 0xab, 0x7a, 0x9a, 0x57, 0xab, 0xea, 0x65, 0xac, 0x6f, 0xd7, 0xab, 0x35, 0x5d, 0xc7, + 0xd5, 0xaa, 0xfa, 0x9b, 0x04, 0x42, 0xb0, 0xc8, 0xbc, 0x17, 0xb4, 0xdf, 0x26, 0xd0, 0x31, 0x58, + 0x62, 0x8e, 0x84, 0xc4, 0xdf, 0x25, 0xd0, 0x0a, 0x14, 0x18, 0xb0, 0x52, 0xab, 0x96, 0xeb, 0x1a, + 0xa5, 0xd7, 0x0d, 0x6c, 0x9b, 0xd8, 0x50, 0x7d, 0x74, 0x1a, 0x4e, 0xf2, 0x55, 0xd7, 0xb9, 0x8e, + 0x75, 0xaf, 0x6e, 0x3b, 0x5e, 0x7d, 0xd3, 0xa9, 0xd9, 0x86, 0xba, 0x8b, 0x1e, 0x80, 0x73, 0x6c, + 0x91, 0x6d, 0x44, 0xdd, 0xd0, 0xf0, 0x8e, 0x63, 0x53, 0x88, 0x5b, 0xb3, 0x6d, 0xd3, 0xde, 0x52, + 0xdb, 0xe8, 0x1c, 0x14, 0x65, 0x13, 0xcd, 0x1d, 0x6d, 0x0b, 0xd7, 0x2b, 0x35, 0xcb, 0xaa, 0x63, + 0xd7, 0x55, 0x7f, 0x90, 0x44, 0x0f, 0xc0, 0x59, 0x19, 0xa0, 0x3b, 0xb6, 0xa7, 0x99, 0x36, 0x76, + 0xeb, 0xba, 0x8b, 0x35, 0x8f, 0x08, 0xf9, 0x61, 0x12, 0x95, 0xe0, 0x8c, 0x0c, 0x72, 0x6b, 0xb6, + 0x04, 0x24, 0x82, 0x7e, 0x94, 0x44, 0x17, 0x61, 0x75, 0xba, 0x20, 0x0f, 0xbb, 0x3b, 0xa6, 0xad, + 0x79, 0xd8, 0x50, 0x7f, 0x9c, 0x44, 0x0f, 0xc3, 0x25, 0x19, 0xc6, 0x22, 0xb2, 0x83, 0x6d, 0xaf, + 0xee, 0x3a, 0x96, 0xe5, 0xd4, 0xbc, 0x7a, 0x05, 0xdb, 0x06, 0xd1, 0xfb, 0x93, 0x7b, 0xc8, 0x74, + 0x71, 0xd5, 0xd3, 0x5c, 0x6a, 0xde, 0xab, 0x49, 0x54, 0x84, 0x65, 0x19, 0x56, 0xb3, 0xcb, 0x58, + 0xb3, 0xbc, 0xf2, 0x4d, 0xf5, 0xb5, 0x09, 0x11, 0xb6, 0x63, 0xe0, 0xfa, 0x0e, 0xde, 0x71, 0xdc, + 0x9b, 0xf5, 0x8a, 0x8b, 0xab, 0xd5, 0x9a, 0x8b, 0xd5, 0x2f, 0x2a, 0xe3, 0x61, 0xa0, 0x30, 0xc3, + 0xac, 0x6e, 0x47, 0xa0, 0x2f, 0x29, 0xe8, 0x21, 0xb8, 0x30, 0x01, 0xb2, 0xb1, 0x77, 0xc3, 0x71, + 0x89, 0x52, 0xed, 0x69, 0xcd, 0xb4, 0xb4, 0x0d, 0x0b, 0xab, 0x2f, 0x28, 0xe3, 0x11, 0xa3, 0xd0, + 0x8a, 0x69, 0x44, 0xe2, 0x5e, 0x9c, 0xae, 0xb3, 0x66, 0x93, 0x2f, 0xa3, 0xc6, 0x04, 0x7d, 0x59, + 0x41, 0xe7, 0x61, 0x65, 0x0a, 0xc8, 0xc5, 0x9a, 0x5e, 0xa6, 0x90, 0x97, 0x94, 0xf1, 0x3d, 0x66, + 0x66, 0x91, 0x2c, 0xc0, 0x9a, 0x71, 0x53, 0xfd, 0xca, 0x84, 0x31, 0x9b, 0x9a, 0x69, 0x61, 0xa3, + 0xce, 0x15, 0x91, 0x18, 0x7e, 0x55, 0x41, 0x0f, 0x42, 0x49, 0xc6, 0xf0, 0x63, 0x44, 0x42, 0x6e, + 0x63, 0xdd, 0x33, 0x1d, 0x9b, 0xee, 0xf3, 0xd7, 0x27, 0xac, 0x16, 0x40, 0xe2, 0xdc, 0xb6, 0x69, + 0x59, 0xd8, 0x50, 0xbf, 0x31, 0x11, 0xa9, 0x50, 0x9a, 0x65, 0x92, 0x9d, 0xde, 0xc4, 0x9e, 0x5e, + 0xa6, 0xf2, 0xbe, 0xa9, 0x8c, 0x6f, 0x90, 0x94, 0x10, 0x11, 0xec, 0x5b, 0x13, 0x71, 0xa8, 0x38, + 0x46, 0xdd, 0xb4, 0x4d, 0xcf, 0xd4, 0x2c, 0xf3, 0x16, 0x71, 0xe1, 0x57, 0x0a, 0x39, 0x74, 0xe2, + 0x84, 0x63, 0xd7, 0x75, 0x5c, 0xf5, 0x75, 0x65, 0xfc, 0x88, 0xf2, 0x75, 0xf5, 0x0d, 0x05, 0x5d, + 0x82, 0xf3, 0x53, 0x56, 0xc6, 0x36, 0xe0, 0x4d, 0x05, 0xad, 0xc1, 0xc5, 0xe9, 0x39, 0x78, 0x43, + 0x33, 0x49, 0x02, 0x86, 0x32, 0xff, 0xaa, 0xa0, 0xb3, 0x70, 0x6a, 0x9a, 0x4c, 0xfc, 0x34, 0xb6, + 0x3d, 0xf5, 0x5f, 0x8a, 0x54, 0x02, 0x04, 0xd3, 0xdf, 0x14, 0x74, 0x14, 0x16, 0xaa, 0x37, 0x6d, + 0x3d, 0x24, 0xfd, 0x5d, 0x89, 0xca, 0x87, 0xa0, 0xbd, 0xa5, 0xa0, 0xe3, 0x70, 0xc4, 0xc0, 0x4f, + 0x13, 0x9f, 0x43, 0xea, 0x3f, 0x28, 0x55, 0xb7, 0xb0, 0x66, 0xd7, 0x2a, 0x21, 0xf5, 0x9f, 0x54, + 0x64, 0x0c, 0xf8, 0x6f, 0x0a, 0xa4, 0x5a, 0x28, 0x9d, 0x85, 0xe7, 0x8f, 0x29, 0xb4, 0x0a, 0xa7, + 0x85, 0x50, 0x17, 0x6f, 0x99, 0xb4, 0x2a, 0xf2, 0xa2, 0x82, 0x2b, 0x55, 0xf5, 0xe7, 0x69, 0x92, + 0x5c, 0x13, 0x08, 0x0f, 0x57, 0x3d, 0x06, 0xf8, 0x45, 0x9a, 0x6c, 0xcc, 0x04, 0x80, 0x3b, 0x49, + 0x21, 0xaf, 0xa4, 0xa7, 0x6a, 0xd1, 0x1d, 0x7b, 0xd3, 0xdc, 0x22, 0x10, 0xf5, 0x97, 0xe9, 0xf1, + 0x14, 0xae, 0x55, 0x09, 0x42, 0xb3, 0x75, 0x4c, 0x13, 0xea, 0xe5, 0xcc, 0x78, 0x0a, 0x1b, 0x58, + 0x33, 0x2c, 0xd3, 0xc6, 0x75, 0xfc, 0x8c, 0x8e, 0xb1, 0x81, 0x0d, 0xf5, 0xdb, 0x19, 0xe2, 0x22, + 0xb3, 0x3d, 0xe2, 0xfc, 0x4e, 0x06, 0x2d, 0x83, 0xca, 0xcd, 0x89, 0xc8, 0xdf, 0xcd, 0xa0, 0x33, + 0x50, 0xa0, 0x06, 0xd1, 0x32, 0x87, 0xeb, 0x9e, 0xb6, 0xb5, 0xc5, 0x6a, 0x99, 0xe3, 0xaa, 0x9f, + 0xcc, 0x12, 0x83, 0xe8, 0xb2, 0x68, 0x0c, 0xf5, 0x8a, 0x56, 0xab, 0x62, 0x83, 0x03, 0x3e, 0x95, + 0x45, 0x17, 0xe0, 0x5c, 0x1c, 0x20, 0xd5, 0x5d, 0x8e, 0xfa, 0x74, 0x96, 0x24, 0x84, 0xac, 0x45, + 0x34, 0x60, 0xb6, 0xfe, 0x99, 0x48, 0x0d, 0x5f, 0x0f, 0x1b, 0x1d, 0x03, 0x7c, 0x76, 0x02, 0x20, + 0x22, 0xcf, 0x01, 0x9f, 0xcb, 0x12, 0xf7, 0x18, 0x40, 0xd3, 0xcb, 0x98, 0x93, 0x9f, 0x8f, 0xcc, + 0xe3, 0x7c, 0x37, 0x34, 0x72, 0x94, 0x3c, 0xd7, 0x94, 0xbc, 0xfc, 0x7c, 0x96, 0x9c, 0x65, 0x19, + 0x45, 0x2a, 0xea, 0xa6, 0xa6, 0xcb, 0x1a, 0xbe, 0x90, 0x5d, 0x7b, 0x21, 0x0d, 0x4b, 0xf1, 0x51, + 0x84, 0xf4, 0x48, 0xdb, 0xb4, 0xd4, 0x39, 0x74, 0x1c, 0x54, 0xcd, 0x20, 0xc9, 0xb2, 0xa9, 0xd5, + 0x2c, 0xb2, 0xbb, 0x15, 0x47, 0x6d, 0x91, 0x19, 0x40, 0x6c, 0x93, 0x44, 0x27, 0xf3, 0xf9, 0xea, + 0x24, 0xbd, 0xbe, 0x65, 0x39, 0x1b, 0x9a, 0xc5, 0x13, 0x42, 0xdd, 0x45, 0xab, 0xb0, 0xb2, 0xa5, + 0x5b, 0x4e, 0x2d, 0x6c, 0x6c, 0x5a, 0xcd, 0x2b, 0xf3, 0x65, 0x52, 0x39, 0xdb, 0x64, 0x34, 0x98, + 0xbe, 0xf4, 0x2c, 0xe9, 0xf2, 0x4c, 0x05, 0x17, 0xc1, 0x1b, 0xa7, 0xda, 0x89, 0x56, 0x38, 0xab, + 0xe8, 0x91, 0x1f, 0x42, 0xa7, 0xc4, 0x4a, 0x74, 0xb6, 0x2d, 0x67, 0xab, 0x4a, 0x1a, 0x5f, 0x11, + 0x96, 0x79, 0xcb, 0xc3, 0x9a, 0x61, 0xda, 0xa4, 0x39, 0x57, 0x5c, 0x67, 0x03, 0x93, 0x86, 0x17, + 0xae, 0x45, 0x6c, 0xb4, 0xbd, 0x92, 0x2e, 0x77, 0x1e, 0x56, 0x34, 0xc3, 0x20, 0xb5, 0x7e, 0x66, + 0xc7, 0x39, 0x07, 0xc5, 0x18, 0x64, 0xa2, 0xdb, 0x5c, 0x84, 0xd5, 0x18, 0x60, 0x46, 0xa7, 0x39, + 0x0b, 0xa7, 0x62, 0xb0, 0xf1, 0x2e, 0x33, 0xae, 0x67, 0xa2, 0xc3, 0x9c, 0x81, 0xc2, 0x18, 0x20, + 0xd6, 0x5d, 0x4e, 0xc3, 0x89, 0xb8, 0x19, 0x72, 0x67, 0x91, 0x94, 0x4f, 0xed, 0x2a, 0x61, 0x8c, + 0xca, 0x4e, 0xd5, 0x93, 0x9a, 0x89, 0xfa, 0x35, 0x5a, 0x0c, 0x69, 0x13, 0x0f, 0x8f, 0x10, 0xa9, + 0xca, 0xcb, 0xa0, 0xd6, 0x6c, 0x7a, 0xd6, 0x22, 0xf2, 0x9b, 0x0a, 0x3a, 0x02, 0xe0, 0x54, 0xb0, + 0x5d, 0x37, 0xab, 0xd5, 0x1a, 0x56, 0x3f, 0x91, 0x7d, 0xfc, 0xa7, 0x69, 0x38, 0x52, 0xe5, 0x7f, + 0x4a, 0x50, 0xf5, 0x07, 0x77, 0x3b, 0x4d, 0x1f, 0xe9, 0x90, 0xdb, 0xf2, 0x03, 0xfe, 0xda, 0x3f, + 0x71, 0x85, 0xc1, 0x7b, 0xfb, 0xc1, 0x41, 0x31, 0xf6, 0x9f, 0xfd, 0xa5, 0xa3, 0x1f, 0xff, 0xfd, + 0xab, 0x2f, 0x26, 0xe7, 0x51, 0xfe, 0xca, 0xdd, 0xc7, 0xae, 0xd0, 0x1b, 0x02, 0xda, 0x82, 0x1c, + 0xbd, 0xc0, 0x58, 0xfd, 0x36, 0x12, 0x0f, 0x79, 0xe2, 0xae, 0x54, 0x1c, 0x27, 0x94, 0x96, 0xa9, + 0x80, 0x23, 0x68, 0x91, 0x08, 0x60, 0xef, 0xb0, 0xdd, 0x7e, 0xfb, 0x72, 0xe2, 0xd1, 0x04, 0xda, + 0x82, 0x0c, 0x15, 0x34, 0x9c, 0x69, 0xcb, 0x84, 0x34, 0x44, 0xa5, 0x2d, 0x20, 0x08, 0xa5, 0x0d, + 0x1f, 0x4d, 0xa0, 0x67, 0x20, 0x8b, 0x3f, 0xe2, 0x37, 0x47, 0x81, 0x8f, 0x0a, 0x9c, 0x63, 0xe2, + 0xf2, 0x54, 0x9c, 0xa1, 0xa3, 0x74, 0x9a, 0x8a, 0x5c, 0x2e, 0xcd, 0x53, 0x91, 0x4c, 0xcc, 0x35, + 0x7e, 0x95, 0x42, 0x0d, 0xc8, 0x6b, 0xa3, 0xa0, 0x4f, 0x87, 0x77, 0xb4, 0x1c, 0xbf, 0x36, 0x1d, + 0x26, 0xf8, 0x22, 0x15, 0x7c, 0xae, 0x78, 0x82, 0x08, 0xa6, 0x37, 0xa1, 0x2b, 0x8d, 0x51, 0xd0, + 0xaf, 0x0b, 0x1d, 0xec, 0xc2, 0x85, 0xea, 0x90, 0x23, 0x2a, 0xaa, 0xe4, 0x56, 0x74, 0x9f, 0x1a, + 0x2e, 0x50, 0x0d, 0x67, 0x8b, 0xcb, 0x74, 0x73, 0x0e, 0x7a, 0xcd, 0xa9, 0x0a, 0x9a, 0x00, 0x44, + 0x01, 0xbb, 0x3a, 0xdc, 0xaf, 0x8a, 0x4b, 0x54, 0xc5, 0x6a, 0xf1, 0x24, 0x51, 0xc1, 0xee, 0x68, + 0x53, 0x95, 0x58, 0x90, 0x29, 0x37, 0x7a, 0xad, 0xae, 0x8f, 0x62, 0x97, 0xdc, 0x99, 0x72, 0x57, + 0xa8, 0xdc, 0x13, 0xa5, 0xa3, 0xd1, 0x46, 0x5e, 0x79, 0x96, 0x0a, 0xb8, 0x96, 0x58, 0xbb, 0x9d, + 0xa1, 0xe8, 0xab, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x08, 0x6c, 0x6e, 0x0c, 0x23, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/skaffold.proto b/proto/skaffold.proto index 0347842dbf7..6659d68afd7 100644 --- a/proto/skaffold.proto +++ b/proto/skaffold.proto @@ -112,15 +112,21 @@ message Event { FileSyncEvent fileSyncEvent = 7; // describes the sync status. DebuggingContainerEvent debuggingContainerEvent = 8; // describes the appearance or disappearance of a debugging container DevLoopEvent devLoopEvent = 9; // describes a start and end of a dev loop. + TerminationEvent terminationEvent = 10; // describes a skaffold termination event } } +// `TerminationEvent` marks the end of the skaffold session +message TerminationEvent { + string status = 1; // status oneof: Completed or Failed + ActionableErr err = 2; // actionable error message +} + // `DevLoopEvent` marks the start and end of a dev loop. message DevLoopEvent { int32 iteration = 1; // dev loop iteration. 0 represents initialization loop. string status = 2; // dev loop status oneof: In Progress, Completed, Failed ActionableErr err = 3; // actionable error message - } // `ActionableErr` defines an error that occurred along with an optional list of suggestions @@ -475,6 +481,8 @@ enum StatusCode { DEVINIT_UNKNOWN = 507; // Cleanup failed due to unknown reason CLEANUP_UNKNOWN = 508; + // Initialization of the Skaffold session failed due to unknown reason(s) + INIT_UNKNOWN = 510 ; // FILE_SYNC Failures @@ -497,15 +505,36 @@ enum StatusCode { // User cancelled the skaffold dev run STATUSCHECK_USER_CANCELLED = 800; - // Deadline for status check exceeded STATUSCHECK_DEADLINE_EXCEEDED = 801; - - // Build cancelled due to user cancellation or one or more build failed. + // Build Cancelled BUILD_CANCELLED = 802; - // Deploy cancelled due to user cancellation or one or more deployers failed. DEPLOY_CANCELLED = 803; + + + + // Skaffold Initialization Phase session errors + + // Skaffold was unable to create the configured tagger + INIT_CREATE_TAGGER_ERROR = 901; + // Skaffold was unable to start as Minikube appears to be paused + INIT_MINIKUBE_PAUSED_ERROR = 902; + // Skaffold was unable to start as Minikube appears to be stopped + INIT_MINIKUBE_NOT_RUNNING_ERROR = 903; + // Skaffold was unable to create a configured image builder + INIT_CREATE_BUILDER_ERROR = 904; + // Skaffold was unable to create a configured deployer + INIT_CREATE_DEPLOYER_ERROR = 905; + // Skaffold was unable to create a configured test + INIT_CREATE_TEST_DEP_ERROR = 906; + // Skaffold encountered an error validating the artifact cache + INIT_CACHE_ERROR = 907; + // Skaffold encountered an error when configuring file watching + INIT_CREATE_WATCH_TRIGGER_ERROR = 908; + // Skaffold encountered an error when evaluating artifact dependencies + INIT_CREATE_ARTIFACT_DEP_ERROR = 909; + } // Enum for Suggestion codes @@ -515,12 +544,20 @@ enum SuggestionCode { NIL = 0; // Build error suggestion codes + + // Add Default Repo ADD_DEFAULT_REPO = 100; + // Verify Default Repo CHECK_DEFAULT_REPO = 101; + // Verify default repo in the global config CHECK_DEFAULT_REPO_GLOBAL_CONFIG = 102; + // run gcloud docker auth configure GCLOUD_DOCKER_AUTH_CONFIGURE = 103; + // Run docker auth configure DOCKER_AUTH_CONFIGURE = 104; + //Verify Gcloud Project CHECK_GCLOUD_PROJECT = 105; + // Check if docker is running CHECK_DOCKER_RUNNING = 106; @@ -554,5 +591,17 @@ enum SuggestionCode { ADDRESS_FAILED_SCHEDULING = 407; // Cluster Connectivity error CHECK_HOST_CONNECTION = 408; + + // Minikube Suggestions + + // Minikube is stopped: use `minikube start` + START_MINIKUBE = 501; + + // Minikube is paused: use `minikube unpause` + UNPAUSE_MINIKUBE = 502; + + + // Open an issue so this situation can be diagnosed + OPEN_ISSUE = 900; }