istio: istio.io/istio/pkg/errdict Index | Files

package errdict

import "istio.io/istio/pkg/errdict"

Index

Package Files

errdict.go

Constants

const (
    LikelyCauseFirstPrefix = "The likely cause is "
    LikeyCauseSecondPrefix = "Another possible cause could be "
)
const (

    // Action
    ActionIfErrPersistsCheckBugList            = "If this error persists, " + ActionCheckBugList
    ActionIfErrSureCorrectConfigContactSupport = "If you are sure your configuration is correct, " + ActionCheckBugList
    ActionCheckBugList                         = "see https://istio.io/latest/about/bugs for possible solutions."

    // LikelyCause
    LikelyCauseAPIServer     = "a problem with the Kubernetes API server"
    LikelyCauseConfiguration = "an incorrect or badly formatted configuration"
    LikelyCauseSoftwareBug   = "an issue with the Istio code"

    // Is the error permanent?
    TransiencePermanentForInstall = "If the error occurred immediately after installation, it is likely permanent."
)

General boilerplate.

const (
    // Impact
    OperatorImpactFailedToGetObjectFromAPIServer = "If the error is transient, the impact is low. If permanent, " +
        "updates for the objects cannot be processed leading to an out of sync control plane."
    OperatorImpactNoUpdates = "In this error state, changes to the IstioOperator CR will not result in the Istio " +
        "control plane being updated."
)

Operator specific

Variables

var (
    OperatorFailedToGetObjectFromAPIServer = &structured.Error{
        MoreInfo: "Failed to get an object from the Kubernetes API server, because of a transient " +
            "API server error or the object no longer exists.",
        Impact:      OperatorImpactFailedToGetObjectFromAPIServer,
        LikelyCause: formatCauses(LikelyCauseAPIServer) + " " + TransiencePermanentForInstall,
        Action: "If the error is because the object was deleted, it can be safely ignored. Otherwise, if the " +
            "error persists, " + ActionCheckBugList,
    }
    OperatorFailedToGetObjectInCallback = &structured.Error{
        MoreInfo: "A Kubernetes update for an IstioOperator resource did not " +
            "contain an IstioOperator object.",
        Impact:      OperatorImpactNoUpdates,
        LikelyCause: formatCauses(LikelyCauseAPIServer) + " " + TransiencePermanentForInstall,
        Action:      ActionIfErrPersistsCheckBugList,
    }
    OperatorFailedToAddFinalizer = &structured.Error{
        MoreInfo: "A finalizer could not be added to the IstioOperator resource. The " +
            "controller uses the finalizer to temporarily prevent the resource from being deleted while the Istio " +
            "control plane is being deleted.",
        Impact: "When the IstioOperator resource is deleted, the Istio control plane may " +
            "not be fully removed.",
        LikelyCause: formatCauses(LikelyCauseAPIServer),
        Action:      "Delete and re-add the IstioOperator resource. " + ActionIfErrPersistsCheckBugList,
    }
    OperatorFailedToRemoveFinalizer = &structured.Error{
        MoreInfo: "The finalizer set by the operator controller could not be removed " +
            "when the IstioOperator resource was deleted.",
        Impact:      "The IstioOperator resource can not be removed by the operator controller.",
        LikelyCause: formatCauses(LikelyCauseAPIServer),
        Action:      "Remove the IstioOperator resource finalizer manually using kubectl edit.",
    }
    OperatorFailedToMergeUserIOP = &structured.Error{
        MoreInfo: "The values in the selected spec.profile could not be merged with " +
            "the user IstioOperator resource.",
        Impact: "The operator controller cannot create and act upon the user " +
            "defined IstioOperator resource. The Istio control plane will not be installed or updated.",
        LikelyCause: formatCauses(LikelyCauseConfiguration, LikelyCauseSoftwareBug),
        Action: "Check that the IstioOperator resource has the correct syntax. " +
            ActionIfErrSureCorrectConfigContactSupport,
    }
)

Package errdict imports 2 packages (graph) and is imported by 1 packages. Updated 2020-10-06. Refresh now. Tools for package owners.