diff --git a/cluster-autoscaler/Godeps/Godeps.json b/cluster-autoscaler/Godeps/Godeps.json new file mode 100644 index 00000000000..787d88686cd --- /dev/null +++ b/cluster-autoscaler/Godeps/Godeps.json @@ -0,0 +1,6327 @@ +{ + "ImportPath": "k8s.io/autoscaler/cluster-autoscaler", + "GoVersion": "go1.10", + "GodepVersion": "v80", + "Packages": [ + "./..." + ], + "Deps": [ + { + "ImportPath": "cloud.google.com/go/compute/metadata", + "Comment": "v0.1.0-115-g3b1ae453", + "Rev": "3b1ae45394a234c385be014e9a488f2bb6eef821" + }, + { + "ImportPath": "cloud.google.com/go/internal", + "Comment": "v0.1.0-115-g3b1ae453", + "Rev": "3b1ae45394a234c385be014e9a488f2bb6eef821" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2018-10-01/compute", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2017-10-01/containerregistry", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2018-03-31/containerservice", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/services/network/mgmt/2017-09-01/network", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2017-05-10/resources", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2018-07-01/storage", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/storage", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/azure-sdk-for-go/version", + "Comment": "v21.3.0-1-g7b4d292d5", + "Rev": "7b4d292d5512fdab9c10c6d180ee825984666d5f" + }, + { + "ImportPath": "github.com/Azure/go-ansiterm", + "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" + }, + { + "ImportPath": "github.com/Azure/go-ansiterm/winterm", + "Rev": "d6e3b3328b783f23731bc4d058875b0371ff8109" + }, + { + "ImportPath": "github.com/Azure/go-autorest/autorest", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/Azure/go-autorest/autorest/adal", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/Azure/go-autorest/autorest/azure", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/Azure/go-autorest/autorest/date", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/Azure/go-autorest/autorest/to", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/Azure/go-autorest/autorest/validation", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/Azure/go-autorest/logger", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/Azure/go-autorest/version", + "Comment": "v11.1.0-1-g1fcaa44", + "Rev": "1fcaa44338d60f6e8bdca792dcdb3481ac1f2704" + }, + { + "ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud", + "Comment": "1.3.0-1-gebec4f0", + "Rev": "ebec4f0b09c8fffd62a803bc99f2b32b0d656a76" + }, + { + "ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/filter", + "Comment": "1.3.0-1-gebec4f0", + "Rev": "ebec4f0b09c8fffd62a803bc99f2b32b0d656a76" + }, + { + "ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta", + "Comment": "1.3.0-1-gebec4f0", + "Rev": "ebec4f0b09c8fffd62a803bc99f2b32b0d656a76" + }, + { + "ImportPath": "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/mock", + "Comment": "1.3.0-1-gebec4f0", + "Rev": "ebec4f0b09c8fffd62a803bc99f2b32b0d656a76" + }, + { + "ImportPath": "github.com/JeffAshton/win_pdh", + "Rev": "76bb4ee9f0ab50f77826f2a2ee7fb9d3880d6ec2" + }, + { + "ImportPath": "github.com/Microsoft/go-winio", + "Comment": "v0.4.11", + "Rev": "97e4973ce50b2ff5f09635a57e2b88a037aae829" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/hcn", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/cni", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/guestrequest", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/guid", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/hcs", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/hcserror", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/hns", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/interop", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/logfields", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/longpath", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/mergemaps", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/regstate", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/runhcs", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/safefile", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/schema1", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/schema2", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/timeout", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/Microsoft/hcsshim/internal/wclayer", + "Comment": "v0.8.3-65-g69ac8d3", + "Rev": "69ac8d3f7fc10a0623f3a2655958a1a5bb71f58f" + }, + { + "ImportPath": "github.com/NYTimes/gziphandler", + "Rev": "56545f4a5d46df9a6648819d1664c3a03a13ffdb" + }, + { + "ImportPath": "github.com/Nvveen/Gotty", + "Rev": "cd527374f1e5bff4938207604a14f2e38a9cf512" + }, + { + "ImportPath": "github.com/PuerkitoBio/purell", + "Comment": "v1.0.0", + "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4" + }, + { + "ImportPath": "github.com/PuerkitoBio/urlesc", + "Rev": "5bd2802263f21d8788851d5305584c82a5c75d7e" + }, + { + "ImportPath": "github.com/Rican7/retry", + "Comment": "v0.1.0-9-g272ad12", + "Rev": "272ad122d6e5ce1be757544007cf8bcd1c9c9ab0" + }, + { + "ImportPath": "github.com/Rican7/retry/backoff", + "Comment": "v0.1.0-9-g272ad12", + "Rev": "272ad122d6e5ce1be757544007cf8bcd1c9c9ab0" + }, + { + "ImportPath": "github.com/Rican7/retry/jitter", + "Comment": "v0.1.0-9-g272ad12", + "Rev": "272ad122d6e5ce1be757544007cf8bcd1c9c9ab0" + }, + { + "ImportPath": "github.com/Rican7/retry/strategy", + "Comment": "v0.1.0-9-g272ad12", + "Rev": "272ad122d6e5ce1be757544007cf8bcd1c9c9ab0" + }, + { + "ImportPath": "github.com/armon/circbuf", + "Rev": "bbbad097214e2918d8543d5201d12bfd7bca254d" + }, + { + "ImportPath": "github.com/asaskevich/govalidator", + "Comment": "v9-26-gf9ffefc", + "Rev": "f9ffefc3facfbe0caee3fea233cbb6e8208f4541" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/awserr", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/awsutil", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/client", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/client/metadata", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/corehandlers", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/processcreds", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/csm", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/defaults", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/ec2metadata", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/endpoints", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/request", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/session", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/aws/signer/v4", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/internal/ini", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/internal/sdkio", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/internal/sdkrand", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/internal/sdkuri", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/internal/shareddefaults", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/ec2query", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/rest", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/service/autoscaling", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/service/ec2", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/service/ecr", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/service/elb", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/service/elbv2", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/service/kms", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/aws/aws-sdk-go/service/sts", + "Comment": "v1.16.26-2-g321b97a2", + "Rev": "321b97a21741e770d48d5a21bf9e59c86c669ddc" + }, + { + "ImportPath": "github.com/beorn7/perks/quantile", + "Rev": "3ac7bf7a47d159a033b107610db8a1b6575507a4" + }, + { + "ImportPath": "github.com/blang/semver", + "Comment": "v3.5.0", + "Rev": "b38d23b8782a487059e8fc8773e9a5b228a77cb6" + }, + { + "ImportPath": "github.com/clusterhq/flocker-go", + "Rev": "2b8b7259d3139c96c4a6871031355808ab3fd3b3" + }, + { + "ImportPath": "github.com/codedellemc/goscaleio", + "Rev": "20e2ce2cf8852dc78bd42b76698dcd8dcd77b7b1" + }, + { + "ImportPath": "github.com/codedellemc/goscaleio/types/v1", + "Rev": "20e2ce2cf8852dc78bd42b76698dcd8dcd77b7b1" + }, + { + "ImportPath": "github.com/container-storage-interface/spec/lib/go/csi", + "Comment": "v1.0.0", + "Rev": "ed0bb0e1557548aa028307f48728767cfe8f6345" + }, + { + "ImportPath": "github.com/containerd/console", + "Rev": "84eeaae905fa414d03e07bcd6c8d3f19e7cf180e" + }, + { + "ImportPath": "github.com/containerd/containerd/api/services/containers/v1", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/api/services/tasks/v1", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/api/services/version/v1", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/api/types", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/api/types/task", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/containers", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/dialer", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/errdefs", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containerd/containerd/namespaces", + "Comment": "v1.0.2-1-g9c59b8f3", + "Rev": "9c59b8f3077bc787175200f3472df9e9c74d4a1a" + }, + { + "ImportPath": "github.com/containernetworking/cni/libcni", + "Comment": "v0.6.0-1-g7d52733", + "Rev": "7d52733ce10a59c46419215abb6a355e2df46cec" + }, + { + "ImportPath": "github.com/containernetworking/cni/pkg/invoke", + "Comment": "v0.6.0-1-g7d52733", + "Rev": "7d52733ce10a59c46419215abb6a355e2df46cec" + }, + { + "ImportPath": "github.com/containernetworking/cni/pkg/types", + "Comment": "v0.6.0-1-g7d52733", + "Rev": "7d52733ce10a59c46419215abb6a355e2df46cec" + }, + { + "ImportPath": "github.com/containernetworking/cni/pkg/types/020", + "Comment": "v0.6.0-1-g7d52733", + "Rev": "7d52733ce10a59c46419215abb6a355e2df46cec" + }, + { + "ImportPath": "github.com/containernetworking/cni/pkg/types/current", + "Comment": "v0.6.0-1-g7d52733", + "Rev": "7d52733ce10a59c46419215abb6a355e2df46cec" + }, + { + "ImportPath": "github.com/containernetworking/cni/pkg/version", + "Comment": "v0.6.0-1-g7d52733", + "Rev": "7d52733ce10a59c46419215abb6a355e2df46cec" + }, + { + "ImportPath": "github.com/coreos/etcd/auth/authpb", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/etcd/clientv3", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/etcd/mvcc/mvccpb", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/etcd/pkg/tlsutil", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/etcd/pkg/transport", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/etcd/pkg/types", + "Comment": "v3.3.10-2-ga79d90134", + "Rev": "a79d9013490f200734887d6d67878bd802fb9e8e" + }, + { + "ImportPath": "github.com/coreos/go-systemd/daemon", + "Comment": "v17", + "Rev": "39ca1b05acc7ad1220e09f133283b8859a8b71ab" + }, + { + "ImportPath": "github.com/coreos/go-systemd/dbus", + "Comment": "v17", + "Rev": "39ca1b05acc7ad1220e09f133283b8859a8b71ab" + }, + { + "ImportPath": "github.com/coreos/go-systemd/util", + "Comment": "v17", + "Rev": "39ca1b05acc7ad1220e09f133283b8859a8b71ab" + }, + { + "ImportPath": "github.com/coreos/pkg/dlopen", + "Comment": "v4", + "Rev": "97fdf19511ea361ae1c100dd393cc47f8dcfa1e1" + }, + { + "ImportPath": "github.com/coreos/rkt/api/v1alpha", + "Comment": "v1.25.0-1-g135adf7f", + "Rev": "135adf7f71b7d1bb8d83282f90c8025d2c060866" + }, + { + "ImportPath": "github.com/cyphar/filepath-securejoin", + "Comment": "v0.2.1-2-g02f8226", + "Rev": "02f82268150c799c786cfd1a928b23bce386bab0" + }, + { + "ImportPath": "github.com/d2g/dhcp4", + "Rev": "a1d1b6c41b1ce8a71a5121a9cee31809c4707d9c" + }, + { + "ImportPath": "github.com/d2g/dhcp4client", + "Rev": "6e570ed0a266b730a860ba1068090f683b2c213a" + }, + { + "ImportPath": "github.com/davecgh/go-spew/spew", + "Comment": "v1.1.0-1-g782f496", + "Rev": "782f4967f2dc4564575ca782fe2d04090b5faca8" + }, + { + "ImportPath": "github.com/dgrijalva/jwt-go", + "Comment": "v3.0.0-4-g01aeca5", + "Rev": "01aeca54ebda6e0fbfafd0a524d234159c05ec20" + }, + { + "ImportPath": "github.com/docker/distribution/digestset", + "Comment": "v2.6.0-rc.1-210-g7ea79bf8", + "Rev": "7ea79bf82569403a2793b7038fdbd78297a262c3" + }, + { + "ImportPath": "github.com/docker/distribution/reference", + "Comment": "v2.6.0-rc.1-210-g7ea79bf8", + "Rev": "7ea79bf82569403a2793b7038fdbd78297a262c3" + }, + { + "ImportPath": "github.com/docker/docker/api", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/blkiodev", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/container", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/events", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/filters", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/image", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/mount", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/network", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/registry", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/strslice", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/swarm", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/swarm/runtime", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/time", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/versions", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/api/types/volume", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/client", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/daemon/logger/jsonfilelog/jsonlog", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/jsonmessage", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/mount", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/parsers", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/parsers/operatingsystem", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/stdcopy", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/sysinfo", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/term", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/docker/pkg/term/windows", + "Comment": "docs-v1.12.0-rc4-2016-07-15-9512-g114bfd7956", + "Rev": "114bfd7956ba428c8387fca8e2e92fd1db82031a" + }, + { + "ImportPath": "github.com/docker/go-connections/nat", + "Comment": "v0.3.0", + "Rev": "3ede32e2033de7505e6500d6c868c2b9ed9f169d" + }, + { + "ImportPath": "github.com/docker/go-connections/sockets", + "Comment": "v0.3.0", + "Rev": "3ede32e2033de7505e6500d6c868c2b9ed9f169d" + }, + { + "ImportPath": "github.com/docker/go-connections/tlsconfig", + "Comment": "v0.3.0", + "Rev": "3ede32e2033de7505e6500d6c868c2b9ed9f169d" + }, + { + "ImportPath": "github.com/docker/go-units", + "Comment": "v0.3.1-11-g9e638d3", + "Rev": "9e638d38cf6977a37a8ea0078f3ee75a7cdb2dd1" + }, + { + "ImportPath": "github.com/docker/libnetwork/ipvs", + "Comment": "v0.8.0-dev.2-1266-g8314b093", + "Rev": "8314b09378a7c012bbf94b4d116cceff7e329f19" + }, + { + "ImportPath": "github.com/docker/spdystream", + "Rev": "449fdfce4d962303d702fec724ef0ad181c92528" + }, + { + "ImportPath": "github.com/docker/spdystream/spdy", + "Rev": "449fdfce4d962303d702fec724ef0ad181c92528" + }, + { + "ImportPath": "github.com/emicklei/go-restful", + "Comment": "2.2.0-4-gff4f55a", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, + { + "ImportPath": "github.com/emicklei/go-restful/log", + "Comment": "2.2.0-4-gff4f55a", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, + { + "ImportPath": "github.com/euank/go-kmsg-parser/kmsgparser", + "Comment": "v2.0.0", + "Rev": "5ba4d492e455a77d25dcf0d2c4acc9f2afebef4e" + }, + { + "ImportPath": "github.com/evanphx/json-patch", + "Comment": "v4.2.0", + "Rev": "5858425f75500d40c52783dce87d085a483ce135" + }, + { + "ImportPath": "github.com/fatih/camelcase", + "Rev": "f6a740d52f961c60348ebb109adde9f4635d7540" + }, + { + "ImportPath": "github.com/fsnotify/fsnotify", + "Comment": "v1.3.1-1-gf12c623", + "Rev": "f12c6236fe7b5cf6bcf30e5935d08cb079d78334" + }, + { + "ImportPath": "github.com/ghodss/yaml", + "Comment": "v1.0.0-4-gc7ce166", + "Rev": "c7ce16629ff4cd059ed96ed06419dd3856fd3577" + }, + { + "ImportPath": "github.com/go-openapi/jsonpointer", + "Comment": "v0.19.0", + "Rev": "ef5f0afec364d3b9396b7b77b43dbe26bf1f8004" + }, + { + "ImportPath": "github.com/go-openapi/jsonreference", + "Comment": "v0.19.0", + "Rev": "8483a886a90412cd6858df4ea3483dce9c8e35a3" + }, + { + "ImportPath": "github.com/go-openapi/spec", + "Comment": "v0.17.2", + "Rev": "5bae59e25b21498baea7f9d46e9c147ec106a42e" + }, + { + "ImportPath": "github.com/go-openapi/swag", + "Comment": "v0.17.2", + "Rev": "5899d5c5e619fda5fa86e14795a835f473ca284c" + }, + { + "ImportPath": "github.com/go-ozzo/ozzo-validation", + "Comment": "v3.5.0", + "Rev": "106681dbb37bfa3e7683c4c8129cb7f5925ea3e9" + }, + { + "ImportPath": "github.com/go-ozzo/ozzo-validation/is", + "Comment": "v3.5.0", + "Rev": "106681dbb37bfa3e7683c4c8129cb7f5925ea3e9" + }, + { + "ImportPath": "github.com/godbus/dbus", + "Comment": "v3", + "Rev": "c7fdd8b5cd55e87b4e1f4e372cdb1db61dd6c66f" + }, + { + "ImportPath": "github.com/gogo/protobuf/gogoproto", + "Comment": "v0.5", + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" + }, + { + "ImportPath": "github.com/gogo/protobuf/proto", + "Comment": "v0.5", + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" + }, + { + "ImportPath": "github.com/gogo/protobuf/protoc-gen-gogo/descriptor", + "Comment": "v0.5", + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" + }, + { + "ImportPath": "github.com/gogo/protobuf/sortkeys", + "Comment": "v0.5", + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" + }, + { + "ImportPath": "github.com/gogo/protobuf/types", + "Comment": "v0.5", + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" + }, + { + "ImportPath": "github.com/golang/groupcache/lru", + "Rev": "02826c3e79038b59d737d3b1c0a1d937f71a4433" + }, + { + "ImportPath": "github.com/golang/mock/gomock", + "Rev": "bd3c8e81be01eef76d4b503f5e687d2d1354d2d9" + }, + { + "ImportPath": "github.com/golang/protobuf/proto", + "Comment": "v1.1.0", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/golang/protobuf/protoc-gen-go/descriptor", + "Comment": "v1.1.0", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes", + "Comment": "v1.1.0", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/any", + "Comment": "v1.1.0", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/duration", + "Comment": "v1.1.0", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", + "Comment": "v1.1.0", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/golang/protobuf/ptypes/wrappers", + "Comment": "v1.1.0", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/google/btree", + "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" + }, + { + "ImportPath": "github.com/google/cadvisor/accelerators", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/cache/memory", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/collector", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/common", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/containerd", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/crio", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/docker", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/libcontainer", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/mesos", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/raw", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/rkt", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/container/systemd", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/devicemapper", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/events", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/fs", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/info/v1", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/info/v2", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/machine", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/manager", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/manager/watcher", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/manager/watcher/raw", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/manager/watcher/rkt", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/metrics", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/storage", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/summary", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils/cloudinfo", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils/cpuload", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils/cpuload/netlink", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils/docker", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils/oomparser", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils/sysfs", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/utils/sysinfo", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/version", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/cadvisor/zfs", + "Comment": "v0.33.0-1-g2ad2adbb", + "Rev": "2ad2adbb1a8d8d68baf39fec66341108db53a513" + }, + { + "ImportPath": "github.com/google/gofuzz", + "Rev": "24818f796faf91cd76ec7bddd72458fbced7a6c1" + }, + { + "ImportPath": "github.com/google/uuid", + "Comment": "0.2-15-g8c31c18", + "Rev": "8c31c18f31ede9fc8eae72290a7e7a8064e9b3e3" + }, + { + "ImportPath": "github.com/googleapis/gnostic/OpenAPIv2", + "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" + }, + { + "ImportPath": "github.com/googleapis/gnostic/compiler", + "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" + }, + { + "ImportPath": "github.com/googleapis/gnostic/extensions", + "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/common/extensions", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/attachinterfaces", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/images", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/compute/v2/servers", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/l7policies", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/networks", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/networking/v2/ports", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/pagination", + "Rev": "c818fa66e4c88b30db28038fe3f18f2f4a0db9a8" + }, + { + "ImportPath": "github.com/gorilla/websocket", + "Comment": "v1.2.0-9-g4201258", + "Rev": "4201258b820c74ac8e6922fc9e6b52f71fe46f8d" + }, + { + "ImportPath": "github.com/gregjones/httpcache", + "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" + }, + { + "ImportPath": "github.com/gregjones/httpcache/diskcache", + "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" + }, + { + "ImportPath": "github.com/grpc-ecosystem/go-grpc-prometheus", + "Comment": "v1.1-4-g2500245", + "Rev": "2500245aa6110c562d17020fb31a2c133d737799" + }, + { + "ImportPath": "github.com/hashicorp/golang-lru", + "Comment": "v0.5.0", + "Rev": "20f1fb78b0740ba8c3cb143a61e86ba5c8669768" + }, + { + "ImportPath": "github.com/hashicorp/golang-lru/simplelru", + "Comment": "v0.5.0", + "Rev": "20f1fb78b0740ba8c3cb143a61e86ba5c8669768" + }, + { + "ImportPath": "github.com/heketi/heketi/client/api/go-client", + "Comment": "v8.0.0-49-g558b2926", + "Rev": "558b29266ce0a873991ecfb3edc41a668a998514" + }, + { + "ImportPath": "github.com/heketi/heketi/pkg/glusterfs/api", + "Comment": "v8.0.0-49-g558b2926", + "Rev": "558b29266ce0a873991ecfb3edc41a668a998514" + }, + { + "ImportPath": "github.com/heketi/heketi/pkg/utils", + "Comment": "v8.0.0-49-g558b2926", + "Rev": "558b29266ce0a873991ecfb3edc41a668a998514" + }, + { + "ImportPath": "github.com/imdario/mergo", + "Comment": "v0.3.5", + "Rev": "9316a62528ac99aaecb4e47eadd6dc8aa6533d58" + }, + { + "ImportPath": "github.com/inconshreveable/mousetrap", + "Comment": "v1.0", + "Rev": "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" + }, + { + "ImportPath": "github.com/jmespath/go-jmespath", + "Comment": "0.2.2-12-g0b12d6b", + "Rev": "0b12d6b521d83fc7f755e7cfc1b1fbdd35a01a74" + }, + { + "ImportPath": "github.com/json-iterator/go", + "Comment": "1.1.4", + "Rev": "ab8a2e0c74be9d3be70b3184d9acc634935ded82" + }, + { + "ImportPath": "github.com/kardianos/osext", + "Rev": "8fef92e41e22a70e700a96b29f066cda30ea24ef" + }, + { + "ImportPath": "github.com/karrick/godirwalk", + "Comment": "v1.7.5", + "Rev": "2de2192f9e35ce981c152a873ed943b93b79ced4" + }, + { + "ImportPath": "github.com/kr/fs", + "Rev": "2788f0dbd16903de03cb8186e5c7d97b69ad387b" + }, + { + "ImportPath": "github.com/libopenstorage/openstorage/api", + "Rev": "67befcab13a70b20a7b0bedb10bb9616d475974d" + }, + { + "ImportPath": "github.com/libopenstorage/openstorage/api/client", + "Rev": "67befcab13a70b20a7b0bedb10bb9616d475974d" + }, + { + "ImportPath": "github.com/libopenstorage/openstorage/api/client/volume", + "Rev": "67befcab13a70b20a7b0bedb10bb9616d475974d" + }, + { + "ImportPath": "github.com/libopenstorage/openstorage/api/spec", + "Rev": "67befcab13a70b20a7b0bedb10bb9616d475974d" + }, + { + "ImportPath": "github.com/libopenstorage/openstorage/pkg/parser", + "Rev": "67befcab13a70b20a7b0bedb10bb9616d475974d" + }, + { + "ImportPath": "github.com/libopenstorage/openstorage/pkg/units", + "Rev": "67befcab13a70b20a7b0bedb10bb9616d475974d" + }, + { + "ImportPath": "github.com/libopenstorage/openstorage/volume", + "Rev": "67befcab13a70b20a7b0bedb10bb9616d475974d" + }, + { + "ImportPath": "github.com/lithammer/dedent", + "Comment": "v1.1.0", + "Rev": "8478954c3bc893cf36c5ee7c822266b993a3b3ee" + }, + { + "ImportPath": "github.com/mailru/easyjson/buffer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jlexer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jwriter", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/marstr/guid", + "Comment": "v1.1.0-2-g8bdf7d1", + "Rev": "8bdf7d1a087ccc975cf37dd6507da50698fd19ca" + }, + { + "ImportPath": "github.com/mattn/go-shellwords", + "Comment": "v1.0.3-20-gf8471b0", + "Rev": "f8471b0a71ded0ab910825ee2cf230f25de000f1" + }, + { + "ImportPath": "github.com/matttproud/golang_protobuf_extensions/pbutil", + "Comment": "v1.0.1", + "Rev": "c12348ce28de40eed0136aa2b644d0ee0650e56c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/agent", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/agent/calls", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/client", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/debug", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/encoding", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/encoding/codecs", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/encoding/framing", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/encoding/json", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/encoding/proto", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/httpcli", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/httpcli/apierrors", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/recordio", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/mesos/mesos-go/api/v1/lib/roles", + "Comment": "mesos-1.6.x-14-gbc8d29f", + "Rev": "bc8d29fd06c9ea352ebe81b3f77c5e8d4b6f165c" + }, + { + "ImportPath": "github.com/miekg/dns", + "Rev": "5d001d020961ae1c184f9f8152fdc73810481677" + }, + { + "ImportPath": "github.com/mindprince/gonvml", + "Rev": "fee913ce8fb235edf54739d259ca0ecc226c7b8a" + }, + { + "ImportPath": "github.com/mistifyio/go-zfs", + "Comment": "v2.1.1-5-g1b4ae6f", + "Rev": "1b4ae6fb4e77b095934d4430860ff202060169f8" + }, + { + "ImportPath": "github.com/mitchellh/mapstructure", + "Rev": "53818660ed4955e899c0bcafa97299a388bd7c8e" + }, + { + "ImportPath": "github.com/modern-go/concurrent", + "Comment": "1.0.3", + "Rev": "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94" + }, + { + "ImportPath": "github.com/modern-go/reflect2", + "Comment": "v1.0.1", + "Rev": "94122c33edd36123c84d5368cfb2b69df93a0ec8" + }, + { + "ImportPath": "github.com/mohae/deepcopy", + "Rev": "491d3605edfb866af34a48075bd4355ac1bf46ca" + }, + { + "ImportPath": "github.com/mrunalp/fileutils", + "Rev": "4ee1cc9a80582a0c75febdd5cfa779ee4361cbca" + }, + { + "ImportPath": "github.com/munnerz/goautoneg", + "Rev": "a547fc61f48d567d5b4ec6f8aee5573d8efce11d" + }, + { + "ImportPath": "github.com/mxk/go-flowrate/flowrate", + "Rev": "cca7078d478f8520f85629ad7c68962d31ed7682" + }, + { + "ImportPath": "github.com/opencontainers/go-digest", + "Rev": "a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb" + }, + { + "ImportPath": "github.com/opencontainers/image-spec/specs-go", + "Comment": "v1.0.0-rc6-12-g372ad78", + "Rev": "372ad780f63454fbbbbcc7cf80e5b90245c13e13" + }, + { + "ImportPath": "github.com/opencontainers/image-spec/specs-go/v1", + "Comment": "v1.0.0-rc6-12-g372ad78", + "Rev": "372ad780f63454fbbbbcc7cf80e5b90245c13e13" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/apparmor", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/fs", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/cgroups/systemd", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/configs", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/configs/validate", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/criurpc", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/intelrdt", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/keys", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/mount", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/seccomp", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/stacktrace", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/system", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/user", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runc/libcontainer/utils", + "Comment": "v1.0.0-rc5-177-g222c74b7", + "Rev": "222c74b7ab7d7aa660a18623d26e8d9471459901" + }, + { + "ImportPath": "github.com/opencontainers/runtime-spec/specs-go", + "Comment": "v1.0.0", + "Rev": "02137cd4e50b37a01665e1731fcd4ac2d2178230" + }, + { + "ImportPath": "github.com/opencontainers/selinux/go-selinux", + "Comment": "v1.0.0-rc1-5-g4a2974b", + "Rev": "4a2974bf1ee960774ffd517717f1f45325af0206" + }, + { + "ImportPath": "github.com/opencontainers/selinux/go-selinux/label", + "Comment": "v1.0.0-rc1-5-g4a2974b", + "Rev": "4a2974bf1ee960774ffd517717f1f45325af0206" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/apis/cluster/common", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/apis/machine/common", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1", + "Comment": "0.0.0-alpha.4-150-g9849672b3", + "Rev": "9849672b3f37343da12ed7596496d351de692abb" + }, + { + "ImportPath": "github.com/pborman/uuid", + "Rev": "ca53cad383cad2479bbba7f7a1a05797ec1386e4" + }, + { + "ImportPath": "github.com/peterbourgon/diskv", + "Comment": "v2.0.1", + "Rev": "5f041e8faa004a95c88a202771f4cc3e991971e6" + }, + { + "ImportPath": "github.com/pkg/errors", + "Comment": "v0.8.0", + "Rev": "645ef00459ed84a119197bfb8d8205042c6df63d" + }, + { + "ImportPath": "github.com/pkg/sftp", + "Rev": "4d0e916071f68db74f8a73926335f809396d6b42" + }, + { + "ImportPath": "github.com/pmezard/go-difflib/difflib", + "Comment": "v1.0.0-4-g5d4384e", + "Rev": "5d4384ee4fb2527b0a1256a821ebfc92f91efefc" + }, + { + "ImportPath": "github.com/pquerna/ffjson/fflib/v1", + "Rev": "4768198ef8cc4ad8930b0a7f73ccb1bdf398bb25" + }, + { + "ImportPath": "github.com/pquerna/ffjson/fflib/v1/internal", + "Rev": "4768198ef8cc4ad8930b0a7f73ccb1bdf398bb25" + }, + { + "ImportPath": "github.com/prometheus/client_golang/prometheus", + "Comment": "v0.9.2", + "Rev": "505eaef017263e299324067d40ca2c48f6a2cf50" + }, + { + "ImportPath": "github.com/prometheus/client_golang/prometheus/internal", + "Comment": "v0.9.2", + "Rev": "505eaef017263e299324067d40ca2c48f6a2cf50" + }, + { + "ImportPath": "github.com/prometheus/client_golang/prometheus/promhttp", + "Comment": "v0.9.2", + "Rev": "505eaef017263e299324067d40ca2c48f6a2cf50" + }, + { + "ImportPath": "github.com/prometheus/client_model/go", + "Comment": "model-0.0.2-12-gfa8ad6f", + "Rev": "fa8ad6fec33561be4280a8f0514318c79d7f6cb6" + }, + { + "ImportPath": "github.com/prometheus/common/expfmt", + "Comment": "v0.2.0", + "Rev": "cfeb6f9992ffa54aaa4f2170ade4067ee478b250" + }, + { + "ImportPath": "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg", + "Comment": "v0.2.0", + "Rev": "cfeb6f9992ffa54aaa4f2170ade4067ee478b250" + }, + { + "ImportPath": "github.com/prometheus/common/model", + "Comment": "v0.2.0", + "Rev": "cfeb6f9992ffa54aaa4f2170ade4067ee478b250" + }, + { + "ImportPath": "github.com/prometheus/procfs", + "Rev": "65c1f6f8f0fc1e2185eb9863a3bc751496404259" + }, + { + "ImportPath": "github.com/prometheus/procfs/xfs", + "Rev": "65c1f6f8f0fc1e2185eb9863a3bc751496404259" + }, + { + "ImportPath": "github.com/quobyte/api", + "Comment": "v0.1.2", + "Rev": "9cfd29338dd9fdaaf956b7082e5550aab5fe3841" + }, + { + "ImportPath": "github.com/rancher/go-rancher/client", + "Comment": "v0.1.0-197-gf5dcd9f", + "Rev": "f5dcd9f5605d7af58606b60bccbcd84835cd3453" + }, + { + "ImportPath": "github.com/rubiojr/go-vhd/vhd", + "Rev": "f0f88bf22ceb87078eb1b6ca4ac3f0af66046ad1" + }, + { + "ImportPath": "github.com/satori/go.uuid", + "Comment": "v1.2.0", + "Rev": "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3" + }, + { + "ImportPath": "github.com/seccomp/libseccomp-golang", + "Rev": "1b506fc7c24eec5a3693cdcbed40d9c226cfc6a1" + }, + { + "ImportPath": "github.com/sigma/go-inotify", + "Rev": "c87b6cf5033d2c6486046f045eeebdc3d910fd38" + }, + { + "ImportPath": "github.com/sirupsen/logrus", + "Comment": "v1.0.3-11-g89742ae", + "Rev": "89742aefa4b206dcf400792f3bd35b542998eb3b" + }, + { + "ImportPath": "github.com/spf13/afero", + "Rev": "b28a7effac979219c2a2ed6205a4d70e4b1bcd02" + }, + { + "ImportPath": "github.com/spf13/afero/mem", + "Rev": "b28a7effac979219c2a2ed6205a4d70e4b1bcd02" + }, + { + "ImportPath": "github.com/spf13/afero/sftp", + "Rev": "b28a7effac979219c2a2ed6205a4d70e4b1bcd02" + }, + { + "ImportPath": "github.com/spf13/cobra", + "Comment": "v0.0.1-34-gc439c4f", + "Rev": "c439c4fa093711d42e1b01acb1235b52004753c1" + }, + { + "ImportPath": "github.com/spf13/pflag", + "Comment": "v1.0.1", + "Rev": "583c0c0531f06d5278b7d917446061adc344b5cd" + }, + { + "ImportPath": "github.com/storageos/go-api", + "Comment": "1.0.0-rc1-2-g343b3ef", + "Rev": "343b3eff91fcc84b0165e252eb843f5fd720fa4e" + }, + { + "ImportPath": "github.com/storageos/go-api/netutil", + "Comment": "1.0.0-rc1-2-g343b3ef", + "Rev": "343b3eff91fcc84b0165e252eb843f5fd720fa4e" + }, + { + "ImportPath": "github.com/storageos/go-api/serror", + "Comment": "1.0.0-rc1-2-g343b3ef", + "Rev": "343b3eff91fcc84b0165e252eb843f5fd720fa4e" + }, + { + "ImportPath": "github.com/storageos/go-api/types", + "Comment": "1.0.0-rc1-2-g343b3ef", + "Rev": "343b3eff91fcc84b0165e252eb843f5fd720fa4e" + }, + { + "ImportPath": "github.com/stretchr/objx", + "Rev": "1a9d0bb9f541897e62256577b352fdbc1fb4fd94" + }, + { + "ImportPath": "github.com/stretchr/testify/assert", + "Comment": "v1.2.1-15-g580e825", + "Rev": "580e825222f4611d98e557e854227070926a3b51" + }, + { + "ImportPath": "github.com/stretchr/testify/mock", + "Comment": "v1.2.1-15-g580e825", + "Rev": "580e825222f4611d98e557e854227070926a3b51" + }, + { + "ImportPath": "github.com/stretchr/testify/require", + "Comment": "v1.2.1-15-g580e825", + "Rev": "580e825222f4611d98e557e854227070926a3b51" + }, + { + "ImportPath": "github.com/syndtr/gocapability/capability", + "Rev": "e7cb7fa329f456b3855136a2642b197bad7366ba" + }, + { + "ImportPath": "github.com/vishvananda/netlink", + "Rev": "b2de5d10e38ecce8607e6b438b6d174f389a004e" + }, + { + "ImportPath": "github.com/vishvananda/netlink/nl", + "Rev": "b2de5d10e38ecce8607e6b438b6d174f389a004e" + }, + { + "ImportPath": "github.com/vishvananda/netns", + "Rev": "be1fbeda19366dea804f00efff2dd73a1642fdcc" + }, + { + "ImportPath": "github.com/vmware/govmomi/find", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/list", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/lookup", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/lookup/methods", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/lookup/types", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/nfc", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/object", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/pbm", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/pbm/methods", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/pbm/types", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/property", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/session", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/sts", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/sts/internal", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/task", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vapi/internal", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vapi/rest", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vapi/tags", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25/debug", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25/methods", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25/mo", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25/progress", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25/soap", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25/types", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/govmomi/vim25/xml", + "Comment": "v0.18.0-50-g6ee5ade", + "Rev": "6ee5adec2b6a416d86ba5fff3ba484f962a4bed6" + }, + { + "ImportPath": "github.com/vmware/photon-controller-go-sdk/SSPI", + "Comment": "PROMOTED-488", + "Rev": "4a435daef6ccd3d0edaac1161e76f51a70c2589a" + }, + { + "ImportPath": "github.com/vmware/photon-controller-go-sdk/photon", + "Comment": "PROMOTED-488", + "Rev": "4a435daef6ccd3d0edaac1161e76f51a70c2589a" + }, + { + "ImportPath": "github.com/vmware/photon-controller-go-sdk/photon/lightwave", + "Comment": "PROMOTED-488", + "Rev": "4a435daef6ccd3d0edaac1161e76f51a70c2589a" + }, + { + "ImportPath": "github.com/xanzy/go-cloudstack/cloudstack", + "Comment": "v2.1.1-1-g1e2cbf6", + "Rev": "1e2cbf647e57fa90353612074fdfc42faf5073bf" + }, + { + "ImportPath": "golang.org/x/crypto/curve25519", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/ed25519", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/ed25519/internal/edwards25519", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/internal/chacha20", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/internal/subtle", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/pkcs12", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/pkcs12/internal/rc2", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/poly1305", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/ssh", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/crypto/ssh/terminal", + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" + }, + { + "ImportPath": "golang.org/x/net/context", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/context/ctxhttp", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/html", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/html/atom", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/http2", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/http2/hpack", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/idna", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/internal/timeseries", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/lex/httplex", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/proxy", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/trace", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/websocket", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/oauth2", + "Rev": "a6bd8cefa1811bd24b86f8902872e4e8225f74c4" + }, + { + "ImportPath": "golang.org/x/oauth2/google", + "Rev": "a6bd8cefa1811bd24b86f8902872e4e8225f74c4" + }, + { + "ImportPath": "golang.org/x/oauth2/internal", + "Rev": "a6bd8cefa1811bd24b86f8902872e4e8225f74c4" + }, + { + "ImportPath": "golang.org/x/oauth2/jws", + "Rev": "a6bd8cefa1811bd24b86f8902872e4e8225f74c4" + }, + { + "ImportPath": "golang.org/x/oauth2/jwt", + "Rev": "a6bd8cefa1811bd24b86f8902872e4e8225f74c4" + }, + { + "ImportPath": "golang.org/x/sys/unix", + "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" + }, + { + "ImportPath": "golang.org/x/sys/windows", + "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" + }, + { + "ImportPath": "golang.org/x/sys/windows/registry", + "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" + }, + { + "ImportPath": "golang.org/x/sys/windows/svc", + "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" + }, + { + "ImportPath": "golang.org/x/text/cases", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/encoding", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/encoding/internal", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/encoding/internal/identifier", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/encoding/unicode", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal/tag", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal/utf8internal", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/language", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/runes", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/secure/bidirule", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/secure/precis", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/transform", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/bidi", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/norm", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/width", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/time/rate", + "Rev": "f51c12702a4d776e4c1fa9b0fabab841babae631" + }, + { + "ImportPath": "google.golang.org/api/compute/v0.alpha", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/compute/v0.beta", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/compute/v1", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/container/v1", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/container/v1beta1", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/gensupport", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/googleapi", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/googleapi/internal/uritemplates", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/api/tpu/v1", + "Rev": "693469bd3409cda100dabeeea7f46e1d8d95e3c1" + }, + { + "ImportPath": "google.golang.org/genproto/googleapis/rpc/status", + "Rev": "09f6ed296fc66555a25fe4ce95173148778dfa85" + }, + { + "ImportPath": "google.golang.org/grpc", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/balancer", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/balancer/base", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/balancer/roundrobin", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/codes", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/connectivity", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/credentials", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/encoding", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/encoding/proto", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/grpclog", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/health/grpc_health_v1", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/internal", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/internal/backoff", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/internal/channelz", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/internal/grpcrand", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/keepalive", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/metadata", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/naming", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/peer", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/resolver", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/resolver/dns", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/resolver/passthrough", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/stats", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/status", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/tap", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "google.golang.org/grpc/transport", + "Comment": "v1.13.0", + "Rev": "168a6198bcb0ef175f7dacec0b8691fc141dc9b8" + }, + { + "ImportPath": "gopkg.in/gcfg.v1", + "Comment": "v1.2.0", + "Rev": "27e4946190b4a327b539185f2b5b1f7c84730728" + }, + { + "ImportPath": "gopkg.in/gcfg.v1/scanner", + "Comment": "v1.2.0", + "Rev": "27e4946190b4a327b539185f2b5b1f7c84730728" + }, + { + "ImportPath": "gopkg.in/gcfg.v1/token", + "Comment": "v1.2.0", + "Rev": "27e4946190b4a327b539185f2b5b1f7c84730728" + }, + { + "ImportPath": "gopkg.in/gcfg.v1/types", + "Comment": "v1.2.0", + "Rev": "27e4946190b4a327b539185f2b5b1f7c84730728" + }, + { + "ImportPath": "gopkg.in/inf.v0", + "Comment": "v0.9.0", + "Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4" + }, + { + "ImportPath": "gopkg.in/square/go-jose.v2", + "Comment": "v2.1.6-4-g89060de", + "Rev": "89060dee6a84df9a4dae49f676f0c755037834f1" + }, + { + "ImportPath": "gopkg.in/square/go-jose.v2/cipher", + "Comment": "v2.1.6-4-g89060de", + "Rev": "89060dee6a84df9a4dae49f676f0c755037834f1" + }, + { + "ImportPath": "gopkg.in/square/go-jose.v2/json", + "Comment": "v2.1.6-4-g89060de", + "Rev": "89060dee6a84df9a4dae49f676f0c755037834f1" + }, + { + "ImportPath": "gopkg.in/square/go-jose.v2/jwt", + "Comment": "v2.1.6-4-g89060de", + "Rev": "89060dee6a84df9a4dae49f676f0c755037834f1" + }, + { + "ImportPath": "gopkg.in/warnings.v0", + "Comment": "v0.1.1", + "Rev": "8a331561fe74dadba6edfc59f3be66c22c3b065d" + }, + { + "ImportPath": "gopkg.in/yaml.v2", + "Comment": "v2.2.1", + "Rev": "5420a8b6744d3b0345ab293f6fcba19c978f1183" + }, + { + "ImportPath": "k8s.io/api/admission/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/admissionregistration/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/apps/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/apps/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/apps/v1beta2", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/auditregistration/v1alpha1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/authentication/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/authentication/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/authorization/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/authorization/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v2beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v2beta2", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/batch/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/batch/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/batch/v2alpha1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/certificates/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/coordination/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/coordination/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/core/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/events/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/extensions/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/imagepolicy/v1alpha1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/networking/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/networking/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/policy/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/rbac/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/rbac/v1alpha1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/rbac/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/scheduling/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/scheduling/v1alpha1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/scheduling/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/settings/v1alpha1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/storage/v1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/storage/v1alpha1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/api/storage/v1beta1", + "Rev": "a097c383d6c8413ffbd525104085ab022e69aec0" + }, + { + "ImportPath": "k8s.io/apiextensions-apiserver/pkg/features", + "Rev": "788487e27f44411ccaf43adb1b5e5b4bdeb97610" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/equality", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/errors", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/meta", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/resource", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/validation", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/validation/path", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructuredscheme", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/validation", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/fields", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/labels", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/selection", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/types", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/cache", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/clock", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/diff", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/duration", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/errors", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/framer", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/json", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/naming", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/net", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/proxy", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/rand", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/sets", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/uuid", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/version", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/wait", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/waitgroup", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/version", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/watch", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", + "Rev": "430622779ae41ca2346e8654766d0e16c2f9045b" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/configuration", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/initializer", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/metrics", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/errors", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/generic", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/mutating", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/namespace", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/request", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/rules", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/util", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/admission/plugin/webhook/validating", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver/install", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/apiserver/v1alpha1", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/audit", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1alpha1", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/audit/v1beta1", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/apis/audit/validation", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/audit", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/audit/policy", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/authenticator", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/authenticatorfactory", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/group", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/request/anonymous", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/request/bearertoken", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/request/headerrequest", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/request/union", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/request/websocket", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/request/x509", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/serviceaccount", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/token/cache", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/token/tokenfile", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authentication/user", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authorization/authorizer", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authorization/authorizerfactory", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/authorization/union", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/discovery", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/filters", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/negotiation", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/handlers/responsewriters", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/metrics", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/openapi", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/endpoints/request", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/features", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/registry/generic", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/registry/rest", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/server", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/server/filters", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/server/healthz", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/server/httplog", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/server/mux", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/server/routes", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/server/storage", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage/etcd", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage/etcd/metrics", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage/etcd3", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage/names", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage/storagebackend", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage/storagebackend/factory", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/storage/value", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/util/dryrun", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/util/feature", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/util/flushwriter", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/util/openapi", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/util/webhook", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/pkg/util/wsstream", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/plugin/pkg/authenticator/token/webhook", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/apiserver/plugin/pkg/authorizer/webhook", + "Rev": "ce6cf6c8822e2dc16b26d20126047755809a7d12" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/genericclioptions", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/genericclioptions/printers", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/genericclioptions/resource", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator", + "Rev": "e6c482d4957d8be297cd4ff0d2b3c2a6aa84f685" + }, + { + "ImportPath": "k8s.io/client-go/discovery", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/discovery/cached/disk", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/discovery/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/dynamic", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/admissionregistration", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/admissionregistration/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/apps/v1beta2", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/auditregistration", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/auditregistration/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/autoscaling/v2beta2", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/batch/v2alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/certificates", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/certificates/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/coordination", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/coordination/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/coordination/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/core", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/core/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/events", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/events/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/extensions", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/extensions/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/internalinterfaces", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/networking", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/networking/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/networking/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/policy", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/policy/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/rbac/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/scheduling/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/settings", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/settings/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/informers/storage/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/scheme", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/coordination/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/coordination/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/coordination/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/core/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/events/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/admissionregistration/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/apps/v1beta2", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/auditregistration/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/autoscaling/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/autoscaling/v2beta2", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/batch/v2alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/certificates/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/coordination/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/coordination/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/core/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/events/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/extensions/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/networking/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/networking/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/policy/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/rbac/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/scheduling/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/scheduling/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/scheduling/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/settings/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/listers/storage/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/pkg/version", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/plugin/pkg/client/auth/exec", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/rest", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/rest/watch", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/restmapper", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale/scheme", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale/scheme/appsint", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale/scheme/appsv1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale/scheme/appsv1beta2", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale/scheme/autoscalingv1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale/scheme/extensionsint", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/scale/scheme/extensionsv1beta1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/testing", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/third_party/forked/golang/template", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/auth", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/cache", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api/latest", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/clientcmd/api/v1", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/leaderelection", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/leaderelection/resourcelock", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/metrics", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/pager", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/record", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/record/util", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/reference", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/remotecommand", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/tools/watch", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/transport", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/transport/spdy", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/cert", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/certificate", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/certificate/csr", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/connrotation", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/exec", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/flowcontrol", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/homedir", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/jsonpath", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/keyutil", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/retry", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/client-go/util/workqueue", + "Rev": "d5c1d0b79a6ee759c05fa39cf912bc3c44d3a3a7" + }, + { + "ImportPath": "k8s.io/cloud-provider", + "Rev": "2c5e5a640158458063734c9aae8b2694c413d2df" + }, + { + "ImportPath": "k8s.io/cloud-provider/features", + "Rev": "2c5e5a640158458063734c9aae8b2694c413d2df" + }, + { + "ImportPath": "k8s.io/cloud-provider/node/helpers", + "Rev": "2c5e5a640158458063734c9aae8b2694c413d2df" + }, + { + "ImportPath": "k8s.io/cloud-provider/service/helpers", + "Rev": "2c5e5a640158458063734c9aae8b2694c413d2df" + }, + { + "ImportPath": "k8s.io/cloud-provider/volume", + "Rev": "2c5e5a640158458063734c9aae8b2694c413d2df" + }, + { + "ImportPath": "k8s.io/cloud-provider/volume/errors", + "Rev": "2c5e5a640158458063734c9aae8b2694c413d2df" + }, + { + "ImportPath": "k8s.io/cloud-provider/volume/helpers", + "Rev": "2c5e5a640158458063734c9aae8b2694c413d2df" + }, + { + "ImportPath": "k8s.io/component-base/cli/flag", + "Rev": "1b81bff77fd585c7bcc90faf29542e52ee497592" + }, + { + "ImportPath": "k8s.io/component-base/config", + "Rev": "1b81bff77fd585c7bcc90faf29542e52ee497592" + }, + { + "ImportPath": "k8s.io/component-base/config/v1alpha1", + "Rev": "1b81bff77fd585c7bcc90faf29542e52ee497592" + }, + { + "ImportPath": "k8s.io/component-base/logs", + "Rev": "1b81bff77fd585c7bcc90faf29542e52ee497592" + }, + { + "ImportPath": "k8s.io/csi-translation-lib", + "Rev": "5756521cae4ba1b0f65f9454a79884e7d61ff072" + }, + { + "ImportPath": "k8s.io/csi-translation-lib/plugins", + "Rev": "5756521cae4ba1b0f65f9454a79884e7d61ff072" + }, + { + "ImportPath": "k8s.io/klog", + "Comment": "v0.2.0-14-g8e90cee", + "Rev": "8e90cee79f823779174776412c13478955131846" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/builder", + "Rev": "b3a7cee44a305be0a69e1b9ac03018307287e1b0" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/common", + "Rev": "b3a7cee44a305be0a69e1b9ac03018307287e1b0" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/handler", + "Rev": "b3a7cee44a305be0a69e1b9ac03018307287e1b0" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/schemaconv", + "Rev": "b3a7cee44a305be0a69e1b9ac03018307287e1b0" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/util", + "Rev": "b3a7cee44a305be0a69e1b9ac03018307287e1b0" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", + "Rev": "b3a7cee44a305be0a69e1b9ac03018307287e1b0" + }, + { + "ImportPath": "k8s.io/kube-proxy/config/v1alpha1", + "Rev": "6e5af863b93de856ab86ccd44318a4cdcc3df91c" + }, + { + "ImportPath": "k8s.io/kubelet/config/v1beta1", + "Rev": "7ad9a0a3f4e47a1459a499c900eca7d337857e86" + }, + { + "ImportPath": "k8s.io/kubernetes/cmd/kube-proxy/app", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/cmd/kubelet/app", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/cmd/kubelet/app/options", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/api/legacyscheme", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/api/ref", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/api/service", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/api/testapi", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/api/v1/pod", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/api/v1/resource", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/api/v1/service", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/admission", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/admission/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/admission/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/admissionregistration", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/admissionregistration/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/admissionregistration/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/apps", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/v1beta2", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/apps/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/auditregistration", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/auditregistration/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/auditregistration/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/autoscaling/v2beta2", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/batch", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/certificates/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/coordination", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/coordination/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/coordination/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/coordination/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/helper", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/pods", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/v1/helper", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/v1/helper/qos", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/v1/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/core/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/events", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/events/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/events/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/networking", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/networking/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/networking/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/networking/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/policy", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/policy/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/policy/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/policy/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/scheduling", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/scheduling/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/scheduling/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/scheduling/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/scheduling/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/settings", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/settings/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/settings/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/storage", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/storage/install", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/storage/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/storage/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/apis/storage/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/capabilities", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/scheme", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/auditregistration/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/coordination/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/events/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/leaderelectionconfig", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/client/metrics/prometheus", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/aws", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/azure", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/azure/auth", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/cloudstack", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/gce", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/ovirt", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/photon", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/controller", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/controller/deployment/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/controller/volume/events", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/controller/volume/expand/cache", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/controller/volume/persistentvolume", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/controller/volume/persistentvolume/metrics", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/credentialprovider", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/credentialprovider/aws", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/credentialprovider/azure", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/credentialprovider/gcp", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/credentialprovider/rancher", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/credentialprovider/secrets", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/features", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/fieldpath", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/apps", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/describe", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/describe/versioned", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/scheme", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/certificate", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/deployment", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/event", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/fieldpath", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/podutils", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/qos", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/rbac", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/resource", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/slice", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubectl/util/storage", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/config", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/config/scheme", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/config/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/config/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/cri", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/deviceplugin/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/pluginregistration/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/podresources", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cadvisor", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/certificate", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/certificate/bootstrap", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/checkpoint", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/checkpointmanager", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/checkpointmanager/checksum", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/checkpointmanager/errors", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cloudresource", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/topology", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm/cpuset", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/checkpoint", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/cm/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/config", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/configmap", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/container", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/container/testing", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/cm", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/metrics", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/network", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/network/cni", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/network/hostport", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/network/kubenet", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/network/metrics", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/dockershim/remote", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/envvars", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/events", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/eviction", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/eviction/api", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/images", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/store", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/panic", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kuberuntime", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/kuberuntime/logs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/leaky", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/lifecycle", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/logs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/metrics", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/metrics/collectors", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/mountpod", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/network/dns", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/nodelease", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/nodestatus", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/pleg", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/pod", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/preemption", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/prober", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/prober/results", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/qos", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/remote", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/runtimeclass", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/secret", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/server", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/server/portforward", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/server/remotecommand", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/server/stats", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/server/streaming", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/stats", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/stats/pidlimit", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/status", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/sysctl", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/token", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/types", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/cache", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/format", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/ioutils", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/manager", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher/example_plugin_apis/v1beta1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/pluginwatcher/example_plugin_apis/v1beta2", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/queue", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/sliceutils", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/util/store", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/volumemanager", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/volumemanager/cache", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/volumemanager/metrics", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/volumemanager/populator", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubelet/winstats", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/kubemark", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/master/ports", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/probe", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/probe/exec", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/probe/http", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/probe/tcp", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/apis", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/apis/config", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/apis/config/scheme", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/apis/config/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/apis/config/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/config", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/healthcheck", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/iptables", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/ipvs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/metrics", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/userspace", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/winkernel", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/proxy/winuserspace", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/quota/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/algorithm", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/algorithm/predicates", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/algorithm/priorities", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/algorithm/priorities/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/algorithmprovider", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/algorithmprovider/defaults", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/api", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/api/latest", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/api/v1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/api/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/apis/config", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/core", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/factory", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/internal/cache", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/internal/cache/debugger", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/internal/queue", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/metrics", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/nodeinfo", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/plugins", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/plugins/v1alpha1", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/scheduler/volumebinder", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/security/apparmor", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/security/podsecuritypolicy/sysctl", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/security/podsecuritypolicy/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/securitycontext", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/serviceaccount", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/async", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/bandwidth", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/config", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/configz", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/conntrack", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/dbus", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/ebtables", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/env", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/filesystem", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/flag", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/flock", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/goroutinemap", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/goroutinemap/exponentialbackoff", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/hash", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/ipconfig", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/ipset", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/iptables", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/ipvs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/labels", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/mount", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/netsh", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/node", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/oom", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/parsers", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/pod", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/procfs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/removeall", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/resizefs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/resourcecontainer", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/rlimit", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/selinux", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/slice", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/sysctl", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/tail", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/util/taints", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/version", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/version/verflag", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/awsebs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/azure_dd", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/azure_file", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/cephfs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/cinder", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/configmap", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/csi", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/csi/csiv0", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/csi/nodeinfomanager", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/downwardapi", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/emptydir", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/fc", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/flexvolume", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/flocker", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/gcepd", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/git_repo", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/glusterfs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/host_path", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/iscsi", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/local", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/nfs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/photon_pd", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/portworx", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/projected", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/quobyte", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/rbd", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/scaleio", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/secret", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/storageos", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util/fs", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util/nestedpendingoperations", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util/operationexecutor", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util/recyclerclient", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util/subpath", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util/types", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/util/volumepathhandler", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/validation", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/volume/vsphere_volume", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/pkg/windows/service", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/test/utils", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/kubernetes/third_party/forked/golang/expansion", + "Comment": "v1.14.0-beta.1-563-g1eeddf1153", + "Rev": "1eeddf1153138e58ef996d17a46337aef84d5ad2" + }, + { + "ImportPath": "k8s.io/node-api/pkg/apis/node/v1alpha1", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/clientset/versioned", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/clientset/versioned/scheme", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/clientset/versioned/typed/node/v1alpha1", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/informers/externalversions", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/informers/externalversions/internalinterfaces", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/informers/externalversions/node", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/informers/externalversions/node/v1alpha1", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/node-api/pkg/client/listers/node/v1alpha1", + "Rev": "f361862351111e905cb4e364b5eb6462df81ac08" + }, + { + "ImportPath": "k8s.io/utils/buffer", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/clock", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/exec", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/integer", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/io", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/keymutex", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/net", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/nsenter", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/path", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/pointer", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/strings", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "k8s.io/utils/trace", + "Rev": "c2654d5206da6b7b6ace12841e8f359bb89b443c" + }, + { + "ImportPath": "sigs.k8s.io/controller-runtime/pkg/runtime/scheme", + "Comment": "v0.1.10-1-g827eac62", + "Rev": "827eac62806b6f7d2bc3c5c3b3e96befdfe72aa6" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/commands/build", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/constants", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/expansion", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/factory", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/fs", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/git", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/gvk", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/ifc", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/ifc/transformer", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/image", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/internal/error", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/loader", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/patch", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/patch/transformer", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/resid", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/resmap", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/resource", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/target", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/transformers", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/transformers/config", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/types", + "Comment": "v2.0.3-1-gdc001fd7", + "Rev": "dc001fd74b11a3bc58d8b6c42112725945239389" + }, + { + "ImportPath": "sigs.k8s.io/structured-merge-diff/fieldpath", + "Rev": "54d33fc87e45d06e6f882569c011d4d2f593585c" + }, + { + "ImportPath": "sigs.k8s.io/structured-merge-diff/merge", + "Rev": "54d33fc87e45d06e6f882569c011d4d2f593585c" + }, + { + "ImportPath": "sigs.k8s.io/structured-merge-diff/schema", + "Rev": "54d33fc87e45d06e6f882569c011d4d2f593585c" + }, + { + "ImportPath": "sigs.k8s.io/structured-merge-diff/typed", + "Rev": "54d33fc87e45d06e6f882569c011d4d2f593585c" + }, + { + "ImportPath": "sigs.k8s.io/structured-merge-diff/value", + "Rev": "54d33fc87e45d06e6f882569c011d4d2f593585c" + }, + { + "ImportPath": "sigs.k8s.io/yaml", + "Comment": "v1.1.0", + "Rev": "fd68e9863619f6ec2fdd8625fe1f02e7c877e480" + } + ] +} diff --git a/cluster-autoscaler/go.mod b/cluster-autoscaler/go.mod index 2a01132848c..549b08cf0d2 100644 --- a/cluster-autoscaler/go.mod +++ b/cluster-autoscaler/go.mod @@ -12,11 +12,13 @@ require ( github.com/Azure/go-autorest/autorest v0.9.0 github.com/Azure/go-autorest/autorest/adal v0.5.0 github.com/Azure/go-autorest/autorest/to v0.2.0 - github.com/aws/aws-sdk-go v1.23.18 + github.com/aws/aws-sdk-go v1.23.12 github.com/ghodss/yaml v1.0.0 github.com/google/go-querystring v1.0.0 github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af github.com/json-iterator/go v1.1.8 + github.com/openshift/cluster-api v0.0.0-20191007125355-b2c5ded524d4 + github.com/pkg/errors v0.8.1 github.com/satori/go.uuid v1.2.0 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.4.0 @@ -33,6 +35,8 @@ require ( k8s.io/klog v1.0.0 k8s.io/kubernetes v0.0.0 k8s.io/legacy-cloud-providers v0.0.0 + k8s.io/utils v0.0.0-20191114184206-e782cd3c129f + sigs.k8s.io/controller-runtime v0.3.1-0.20191016212439-2df793d02076 // indirect ) replace ( @@ -70,7 +74,7 @@ replace ( github.com/armon/consul-api => github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 github.com/asaskevich/govalidator => github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a github.com/auth0/go-jwt-middleware => github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 - github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.23.18 + github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.23.12 github.com/bazelbuild/bazel-gazelle => github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 github.com/bazelbuild/buildtools => github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 github.com/bazelbuild/rules_go => github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab @@ -286,7 +290,7 @@ replace ( github.com/pmezard/go-difflib => github.com/pmezard/go-difflib v1.0.0 github.com/pquerna/cachecontrol => github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 github.com/pquerna/ffjson => github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20 - github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.0.0 + github.com/prometheus/client_golang => github.com/prometheus/client_golang v0.9.2 github.com/prometheus/client_model => github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 github.com/prometheus/common => github.com/prometheus/common v0.4.1 github.com/prometheus/procfs => github.com/prometheus/procfs v0.0.2 @@ -391,35 +395,35 @@ replace ( gotest.tools/gotestsum => gotest.tools/gotestsum v0.3.5 grpc.go4.org => grpc.go4.org v0.0.0-20170609214715-11d0a25b4919 honnef.co/go/tools => honnef.co/go/tools v0.0.1-2019.2.2 - k8s.io/api => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/api - k8s.io/apiextensions-apiserver => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/apiextensions-apiserver - k8s.io/apimachinery => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/apimachinery - k8s.io/apiserver => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/apiserver - k8s.io/cli-runtime => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/cli-runtime - k8s.io/client-go => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/client-go - k8s.io/cloud-provider => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/cloud-provider - k8s.io/cluster-bootstrap => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/cluster-bootstrap - k8s.io/code-generator => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/code-generator - k8s.io/component-base => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/component-base - k8s.io/cri-api => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/cri-api - k8s.io/csi-translation-lib => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/csi-translation-lib + k8s.io/api => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/api + k8s.io/apiextensions-apiserver => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/apiextensions-apiserver + k8s.io/apimachinery => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/apimachinery + k8s.io/apiserver => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/apiserver + k8s.io/cli-runtime => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/cli-runtime + k8s.io/client-go => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/client-go + k8s.io/cloud-provider => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/cloud-provider + k8s.io/cluster-bootstrap => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/cluster-bootstrap + k8s.io/code-generator => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/code-generator + k8s.io/component-base => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/component-base + k8s.io/cri-api => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/cri-api + k8s.io/csi-translation-lib => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/csi-translation-lib k8s.io/gengo => k8s.io/gengo v0.0.0-20190822140433-26a664648505 k8s.io/heapster => k8s.io/heapster v1.2.0-beta.1 k8s.io/klog => k8s.io/klog v1.0.0 - k8s.io/kube-aggregator => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kube-aggregator - k8s.io/kube-controller-manager => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kube-controller-manager + k8s.io/kube-aggregator => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kube-aggregator + k8s.io/kube-controller-manager => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kube-controller-manager k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a - k8s.io/kube-proxy => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kube-proxy - k8s.io/kube-scheduler => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kube-scheduler - k8s.io/kubectl => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kubectl - k8s.io/kubelet => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kubelet - k8s.io/legacy-cloud-providers => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/legacy-cloud-providers - k8s.io/metrics => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/metrics - k8s.io/node-api => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/node-api + k8s.io/kube-proxy => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kube-proxy + k8s.io/kube-scheduler => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kube-scheduler + k8s.io/kubectl => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kubectl + k8s.io/kubelet => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kubelet + k8s.io/legacy-cloud-providers => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/legacy-cloud-providers + k8s.io/metrics => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/metrics + k8s.io/node-api => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/node-api k8s.io/repo-infra => k8s.io/repo-infra v0.0.1-alpha.1 - k8s.io/sample-apiserver => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/sample-apiserver - k8s.io/sample-cli-plugin => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/sample-cli-plugin - k8s.io/sample-controller => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/sample-controller + k8s.io/sample-apiserver => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/sample-apiserver + k8s.io/sample-cli-plugin => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/sample-cli-plugin + k8s.io/sample-controller => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/sample-controller k8s.io/system-validators => k8s.io/system-validators v1.0.4 k8s.io/utils => k8s.io/utils v0.0.0-20191114184206-e782cd3c129f modernc.org/cc => modernc.org/cc v1.0.0 @@ -439,4 +443,8 @@ replace ( replace github.com/rancher/go-rancher => github.com/rancher/go-rancher v0.1.0 -replace k8s.io/kubernetes => /tmp/ca-update-vendor.55jg/kubernetes +replace github.com/openshift/cluster-api => github.com/openshift/cluster-api v0.0.0-20191007125355-b2c5ded524d4 + +replace sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.3.1-0.20191016212439-2df793d02076 + +replace k8s.io/kubernetes => /tmp/ca-update-vendor.c6Bp/kubernetes diff --git a/cluster-autoscaler/go.mod-extra b/cluster-autoscaler/go.mod-extra index 4b367633d71..22bfb486411 100644 --- a/cluster-autoscaler/go.mod-extra +++ b/cluster-autoscaler/go.mod-extra @@ -4,6 +4,13 @@ go 1.12 require ( github.com/rancher/go-rancher v0.1.0 github.com/aws/aws-sdk-go v1.23.18 + github.com/google/go-querystring v1.0.0 + github.com/aws/aws-sdk-go v1.23.12 + github.com/openshift/cluster-api v0.0.0-20191007125355-b2c5ded524d4 + sigs.k8s.io/controller-runtime v0.3.1-0.20191016212439-2df793d02076 + github.com/prometheus/client_golang v0.9.2 + github.com/pkg/errors v0.8.1 + github.com/matttproud/golang_protobuf_extensions v1.0.1 ) replace ( diff --git a/cluster-autoscaler/go.sum b/cluster-autoscaler/go.sum index 746820386a6..dbc75fc3561 100644 --- a/cluster-autoscaler/go.sum +++ b/cluster-autoscaler/go.sum @@ -54,8 +54,8 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 h1:irR1cO6eek3n5uquIVaRAsQmZnlsfPuHNz31cXo4eyk= github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= -github.com/aws/aws-sdk-go v1.23.18 h1:ADU/y1EO8yPzUJJYjcvJ0V9/suezxPh0u6hb5bSYIGQ= -github.com/aws/aws-sdk-go v1.23.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.23.12 h1:2UnxgNO6Y5J1OrkXS8XNp0UatDxD1bWHiDT62RDPggI= +github.com/aws/aws-sdk-go v1.23.12/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798/go.mod h1:rPwzNHUqEzngx1iVBfO/2X2npKaT3tqPqqHW6rVsn/A= github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M= @@ -115,7 +115,7 @@ github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0 h1:sLjcXL0ozEc1CVv4OhvrLFbieIL8OxgtFTMykm8idvo= +github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0 h1:w3NnFcKR5241cfmQU5ZZAsf0xcpId6mWOupTvJlUX2U= github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.3.0 h1:3lOnM9cSzgGwx8VfK/NGOW5fLQ0GjIlCkaktF+n1M6o= github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= @@ -150,7 +150,10 @@ github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+s github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logr/logr v0.1.0 h1:M1Tv3VzNlEHg6uyACnRdtrploV2P7wZqH8BoQMtz0cg= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/zapr v0.1.0 h1:h+WVe9j6HAA01niTJPA/kKH0i7e0rLZBCwauQFcRE54= +github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= @@ -274,7 +277,7 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/karrick/godirwalk v1.7.5 h1:JQFiMR65pT543bkWP46+k194gS999qo/OYccos9cOXg= +github.com/karrick/godirwalk v1.7.5 h1:VbzFqwXwNbAZoA6W5odrLr+hKK197CcENcPh6E/gJ0M= github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -362,6 +365,8 @@ github.com/opencontainers/runtime-spec v1.0.0 h1:O6L965K88AilqnxeYPks/75HLpp4IG+ github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52 h1:B8hYj3NxHmjsC3T+tnlZ1UhInqUgnyF1zlGPmzNg2Qk= github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs= +github.com/openshift/cluster-api v0.0.0-20191007125355-b2c5ded524d4 h1:9SzGXq91IC7v9FA71TrUv+YIRPTSJdGnyLlKiuvy5nM= +github.com/openshift/cluster-api v0.0.0-20191007125355-b2c5ded524d4/go.mod h1:mNsD1dsD4T57kV4/C6zTHke/Ro166xgnyyRZqkamiEU= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= @@ -371,8 +376,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20 h1:7sBb9iOkeq+O7AXlVoH/8zpIcRXX523zMkKKspHjjx8= github.com/pquerna/ffjson v0.0.0-20180717144149-af8b230fcd20/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= -github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= +github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= @@ -488,7 +493,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20190821162956-65e3620a7ae7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU= gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= google.golang.org/api v0.6.1-0.20190607001116-5213b8090861 h1:ppLucX0K/60T3t6LPZQzTOkt5PytkEbQLIaSteq+TpE= @@ -523,7 +530,7 @@ gopkg.in/warnings.v0 v0.1.1 h1:XM28wIgFzaBmeZ5dNHIpWLQpt/9DGKxk+rCg/22nnYE= gopkg.in/warnings.v0 v0.1.1/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gotest.tools v2.2.0+incompatible h1:y0IMTfclpMdsdIbr6uwmJn5/WZ7vFuObxDMdrylFM3A= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= gotest.tools/gotestsum v0.3.5/go.mod h1:Mnf3e5FUzXbkCfynWBGOwLssY7gTQgCHObK9tMpAriY= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= @@ -546,9 +553,13 @@ modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= +sigs.k8s.io/controller-runtime v0.3.1-0.20191016212439-2df793d02076 h1:S63Ya7ZOvr7wqj5sRsAThGMmrs1BYaUOwWFlkqBfX0o= +sigs.k8s.io/controller-runtime v0.3.1-0.20191016212439-2df793d02076/go.mod h1:p2vzQ3RuSVv9YR4AcM0y8TKHQA+0oLXazKFt6Z0OdS8= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 h1:zD2IemQ4LmOcAumeiyDWXKUI2SO0NYDe3H6QGvPOVgU= sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06/go.mod h1:/ULNhyfzRopfcjskuui0cTITekDduZ7ycKN3oUT9R18= +sigs.k8s.io/testing_frameworks v0.1.1 h1:cP2l8fkA3O9vekpy5Ks8mmA0NW/F7yBdXf8brkWhVrs= +sigs.k8s.io/testing_frameworks v0.1.1/go.mod h1:VVBKrHmJ6Ekkfz284YKhQePcdycOzNH9qL6ht1zEr/U= sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go index 0680e838cde..2f20d31028d 100644 --- a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go +++ b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/client/default_retryer.go @@ -34,12 +34,10 @@ func (d DefaultRetryer) MaxRetries() int { func (d DefaultRetryer) RetryRules(r *request.Request) time.Duration { // Set the upper limit of delay in retrying at ~five minutes var minTime int64 = 30 - var initialDelay time.Duration - isThrottle := r.IsErrorThrottle() if isThrottle { - if delay, ok := getRetryAfterDelay(r); ok { - initialDelay = delay + if delay, ok := getRetryDelay(r); ok { + return delay } minTime = 500 @@ -48,13 +46,12 @@ func (d DefaultRetryer) RetryRules(r *request.Request) time.Duration { retryCount := r.RetryCount if isThrottle && retryCount > 8 { retryCount = 8 - } else if retryCount > 12 { - retryCount = 12 + } else if retryCount > 13 { + retryCount = 13 } delay := (1 << uint(retryCount)) * (sdkrand.SeededRand.Int63n(minTime) + minTime) - return (time.Duration(delay) * time.Millisecond) + initialDelay - + return time.Duration(delay) * time.Millisecond } // ShouldRetry returns true if the request should be retried. @@ -74,7 +71,7 @@ func (d DefaultRetryer) ShouldRetry(r *request.Request) bool { // This will look in the Retry-After header, RFC 7231, for how long // it will wait before attempting another request -func getRetryAfterDelay(r *request.Request) (time.Duration, bool) { +func getRetryDelay(r *request.Request) (time.Duration, bool) { if !canUseRetryAfterHeader(r) { return 0, false } diff --git a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go index 82a3e345e93..514fc3739a5 100644 --- a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go +++ b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go @@ -16,26 +16,25 @@ var ( type metricChan struct { ch chan metric - paused *int64 + paused int64 } func newMetricChan(size int) metricChan { return metricChan{ - ch: make(chan metric, size), - paused: new(int64), + ch: make(chan metric, size), } } func (ch *metricChan) Pause() { - atomic.StoreInt64(ch.paused, pausedEnum) + atomic.StoreInt64(&ch.paused, pausedEnum) } func (ch *metricChan) Continue() { - atomic.StoreInt64(ch.paused, runningEnum) + atomic.StoreInt64(&ch.paused, runningEnum) } func (ch *metricChan) IsPaused() bool { - v := atomic.LoadInt64(ch.paused) + v := atomic.LoadInt64(&ch.paused) return v == pausedEnum } diff --git a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index d7d98807c13..f227210cd91 100644 --- a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -11,8 +11,6 @@ const ( AwsPartitionID = "aws" // AWS Standard partition. AwsCnPartitionID = "aws-cn" // AWS China partition. AwsUsGovPartitionID = "aws-us-gov" // AWS GovCloud (US) partition. - AwsIsoPartitionID = "aws-iso" // AWS ISO (US) partition. - AwsIsoBPartitionID = "aws-iso-b" // AWS ISOB (US) partition. ) // AWS Standard partition's regions. @@ -49,18 +47,8 @@ const ( UsGovWest1RegionID = "us-gov-west-1" // AWS GovCloud (US). ) -// AWS ISO (US) partition's regions. -const ( - UsIsoEast1RegionID = "us-iso-east-1" // US ISO East. -) - -// AWS ISOB (US) partition's regions. -const ( - UsIsobEast1RegionID = "us-isob-east-1" // US ISOB East (Ohio). -) - // DefaultResolver returns an Endpoint resolver that will be able -// to resolve endpoints for: AWS Standard, AWS China, AWS GovCloud (US), AWS ISO (US), and AWS ISOB (US). +// to resolve endpoints for: AWS Standard, AWS China, and AWS GovCloud (US). // // Use DefaultPartitions() to get the list of the default partitions. func DefaultResolver() Resolver { @@ -68,7 +56,7 @@ func DefaultResolver() Resolver { } // DefaultPartitions returns a list of the partitions the SDK is bundled -// with. The available partitions are: AWS Standard, AWS China, AWS GovCloud (US), AWS ISO (US), and AWS ISOB (US). +// with. The available partitions are: AWS Standard, AWS China, and AWS GovCloud (US). // // partitions := endpoints.DefaultPartitions // for _, p := range partitions { @@ -82,8 +70,6 @@ var defaultPartitions = partitions{ awsPartition, awscnPartition, awsusgovPartition, - awsisoPartition, - awsisobPartition, } // AwsPartition returns the Resolver for AWS Standard. @@ -924,7 +910,6 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, - "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -1115,11 +1100,10 @@ var awsPartition = partition{ Region: "us-west-2", }, }, - "me-south-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "dax": service{ @@ -1147,7 +1131,6 @@ var awsPartition = partition{ "directconnect": service{ Endpoints: endpoints{ - "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, @@ -1723,7 +1706,6 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -2532,16 +2514,6 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, - "qldb": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, "ram": service{ Endpoints: endpoints{ @@ -3178,16 +3150,6 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, - "session.qldb": service{ - - Endpoints: endpoints{ - "ap-northeast-1": endpoint{}, - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, - }, - }, "shield": service{ IsRegionalized: boxedFalse, Defaults: endpoint{ @@ -4737,7 +4699,6 @@ var awsusgovPartition = partition{ "ram": service{ Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, }, @@ -4987,599 +4948,3 @@ var awsusgovPartition = partition{ }, }, } - -// AwsIsoPartition returns the Resolver for AWS ISO (US). -func AwsIsoPartition() Partition { - return awsisoPartition.Partition() -} - -var awsisoPartition = partition{ - ID: "aws-iso", - Name: "AWS ISO (US)", - DNSSuffix: "c2s.ic.gov", - RegionRegex: regionRegex{ - Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^us\\-iso\\-\\w+\\-\\d+$") - return reg - }(), - }, - Defaults: endpoint{ - Hostname: "{service}.{region}.{dnsSuffix}", - Protocols: []string{"https"}, - SignatureVersions: []string{"v4"}, - }, - Regions: regions{ - "us-iso-east-1": region{ - Description: "US ISO East", - }, - }, - Services: services{ - "api.ecr": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Hostname: "api.ecr.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - }, - }, - "application-autoscaling": service{ - Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "application-autoscaling", - }, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "autoscaling": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "cloudformation": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "cloudtrail": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "codedeploy": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "config": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "datapipeline": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "directconnect": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "dms": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "ds": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "dynamodb": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "ec2": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "ec2metadata": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - }, - "ecs": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "elasticloadbalancing": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "elasticmapreduce": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"https"}, - }, - }, - }, - "events": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "glacier": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "health": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "iam": service{ - PartitionEndpoint: "aws-iso-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-iso-global": endpoint{ - Hostname: "iam.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - }, - }, - "kinesis": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "kms": service{ - - Endpoints: endpoints{ - "ProdFips": endpoint{ - Hostname: "kms-fips.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - "us-iso-east-1": endpoint{}, - }, - }, - "lambda": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "logs": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "monitoring": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "rds": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "redshift": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "s3": service{ - Defaults: endpoint{ - SignatureVersions: []string{"s3v4"}, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - SignatureVersions: []string{"s3v4"}, - }, - }, - }, - "snowball": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "sns": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "sqs": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "streams.dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "dynamodb", - }, - }, - Endpoints: endpoints{ - "us-iso-east-1": endpoint{ - Protocols: []string{"http", "https"}, - }, - }, - }, - "sts": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "support": service{ - PartitionEndpoint: "aws-iso-global", - - Endpoints: endpoints{ - "aws-iso-global": endpoint{ - Hostname: "support.us-iso-east-1.c2s.ic.gov", - CredentialScope: credentialScope{ - Region: "us-iso-east-1", - }, - }, - }, - }, - "swf": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - "workspaces": service{ - - Endpoints: endpoints{ - "us-iso-east-1": endpoint{}, - }, - }, - }, -} - -// AwsIsoBPartition returns the Resolver for AWS ISOB (US). -func AwsIsoBPartition() Partition { - return awsisobPartition.Partition() -} - -var awsisobPartition = partition{ - ID: "aws-iso-b", - Name: "AWS ISOB (US)", - DNSSuffix: "sc2s.sgov.gov", - RegionRegex: regionRegex{ - Regexp: func() *regexp.Regexp { - reg, _ := regexp.Compile("^us\\-isob\\-\\w+\\-\\d+$") - return reg - }(), - }, - Defaults: endpoint{ - Hostname: "{service}.{region}.{dnsSuffix}", - Protocols: []string{"https"}, - SignatureVersions: []string{"v4"}, - }, - Regions: regions{ - "us-isob-east-1": region{ - Description: "US ISOB East (Ohio)", - }, - }, - Services: services{ - "application-autoscaling": service{ - Defaults: endpoint{ - Hostname: "autoscaling.{region}.amazonaws.com", - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "application-autoscaling", - }, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "autoscaling": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "cloudformation": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "cloudtrail": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "config": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "directconnect": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "dms": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "ec2": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "ec2metadata": service{ - PartitionEndpoint: "aws-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-global": endpoint{ - Hostname: "169.254.169.254/latest", - Protocols: []string{"http"}, - }, - }, - }, - "elasticache": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "elasticloadbalancing": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{ - Protocols: []string{"https"}, - }, - }, - }, - "elasticmapreduce": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "events": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "glacier": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "health": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "iam": service{ - PartitionEndpoint: "aws-iso-b-global", - IsRegionalized: boxedFalse, - - Endpoints: endpoints{ - "aws-iso-b-global": endpoint{ - Hostname: "iam.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - }, - }, - "kinesis": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "kms": service{ - - Endpoints: endpoints{ - "ProdFips": endpoint{ - Hostname: "kms-fips.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - "us-isob-east-1": endpoint{}, - }, - }, - "logs": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "monitoring": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "rds": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "redshift": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "s3": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - SignatureVersions: []string{"s3v4"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "snowball": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "sns": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "sqs": service{ - Defaults: endpoint{ - SSLCommonName: "{region}.queue.{dnsSuffix}", - Protocols: []string{"http", "https"}, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "states": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "streams.dynamodb": service{ - Defaults: endpoint{ - Protocols: []string{"http", "https"}, - CredentialScope: credentialScope{ - Service: "dynamodb", - }, - }, - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "sts": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - "support": service{ - PartitionEndpoint: "aws-iso-b-global", - - Endpoints: endpoints{ - "aws-iso-b-global": endpoint{ - Hostname: "support.us-isob-east-1.sc2s.sgov.gov", - CredentialScope: credentialScope{ - Region: "us-isob-east-1", - }, - }, - }, - }, - "swf": service{ - - Endpoints: endpoints{ - "us-isob-east-1": endpoint{}, - }, - }, - }, -} diff --git a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/version.go b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/version.go index 0887e6e5dfb..742d63a3232 100644 --- a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.23.18" +const SDKVersion = "1.23.12" diff --git a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index 711fdaadcba..4b4802db0ce 100644 --- a/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -3478,7 +3478,7 @@ func (c *EC2) CreateCustomerGatewayRequest(input *CreateCustomerGatewayInput) (r // gateway is the appliance at your end of the VPN connection. (The device on // the AWS side of the VPN connection is the virtual private gateway.) You must // provide the Internet-routable IP address of the customer gateway's external -// interface. The IP address must be static and can be behind a device performing +// interface. The IP address must be static and may be behind a device performing // network address translation (NAT). // // For devices that use Border Gateway Protocol (BGP), you can also provide @@ -7128,7 +7128,7 @@ func (c *EC2) CreateVpnConnectionRequest(input *CreateVpnConnectionInput) (req * // CreateVpnConnection API operation for Amazon Elastic Compute Cloud. // // Creates a VPN connection between an existing virtual private gateway and -// a VPN customer gateway. The supported connection type is ipsec.1. +// a VPN customer gateway. The supported connection types is ipsec.1. // // The response includes information that you need to give to your network administrator // to configure your customer gateway. @@ -28605,7 +28605,7 @@ func (c *EC2) ModifyVpnConnectionRequest(input *ModifyVpnConnectionInput) (req * // ModifyVpnConnection API operation for Amazon Elastic Compute Cloud. // -// Modifies the target gateway of an AWS Site-to-Site VPN connection. The following +// Modifies the target gateway of a AWS Site-to-Site VPN connection. The following // migration options are available: // // * An existing virtual private gateway to a new virtual private gateway @@ -28748,84 +28748,6 @@ func (c *EC2) ModifyVpnTunnelCertificateWithContext(ctx aws.Context, input *Modi return out, req.Send() } -const opModifyVpnTunnelOptions = "ModifyVpnTunnelOptions" - -// ModifyVpnTunnelOptionsRequest generates a "aws/request.Request" representing the -// client's request for the ModifyVpnTunnelOptions operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ModifyVpnTunnelOptions for more information on using the ModifyVpnTunnelOptions -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ModifyVpnTunnelOptionsRequest method. -// req, resp := client.ModifyVpnTunnelOptionsRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelOptions -func (c *EC2) ModifyVpnTunnelOptionsRequest(input *ModifyVpnTunnelOptionsInput) (req *request.Request, output *ModifyVpnTunnelOptionsOutput) { - op := &request.Operation{ - Name: opModifyVpnTunnelOptions, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ModifyVpnTunnelOptionsInput{} - } - - output = &ModifyVpnTunnelOptionsOutput{} - req = c.newRequest(op, input, output) - return -} - -// ModifyVpnTunnelOptions API operation for Amazon Elastic Compute Cloud. -// -// Modifies the options for a VPN tunnel in an AWS Site-to-Site VPN connection. -// You can modify multiple options for a tunnel in a single request, but you -// can only modify one tunnel at a time. For more information, see Site-to-Site -// VPN Tunnel Options for Your Site-to-Site VPN Connection (https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNTunnels.html) -// in the AWS Site-to-Site VPN User Guide. -// -// Returns awserr.Error for service API and SDK errors. Use runtime type assertions -// with awserr.Error's Code and Message methods to get detailed information about -// the error. -// -// See the AWS API reference guide for Amazon Elastic Compute Cloud's -// API operation ModifyVpnTunnelOptions for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpnTunnelOptions -func (c *EC2) ModifyVpnTunnelOptions(input *ModifyVpnTunnelOptionsInput) (*ModifyVpnTunnelOptionsOutput, error) { - req, out := c.ModifyVpnTunnelOptionsRequest(input) - return out, req.Send() -} - -// ModifyVpnTunnelOptionsWithContext is the same as ModifyVpnTunnelOptions with the addition of -// the ability to pass a context and additional request options. -// -// See ModifyVpnTunnelOptions for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *EC2) ModifyVpnTunnelOptionsWithContext(ctx aws.Context, input *ModifyVpnTunnelOptionsInput, opts ...request.Option) (*ModifyVpnTunnelOptionsOutput, error) { - req, out := c.ModifyVpnTunnelOptionsRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - const opMonitorInstances = "MonitorInstances" // MonitorInstancesRequest generates a "aws/request.Request" representing the @@ -67181,54 +67103,6 @@ func (s *HostReservation) SetUpfrontPrice(v string) *HostReservation { return s } -// The internet key exchange (IKE) version permitted for the VPN tunnel. -type IKEVersionsListValue struct { - _ struct{} `type:"structure"` - - // The IKE version. - Value *string `locationName:"value" type:"string"` -} - -// String returns the string representation -func (s IKEVersionsListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s IKEVersionsListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *IKEVersionsListValue) SetValue(v string) *IKEVersionsListValue { - s.Value = &v - return s -} - -// The IKE version that is permitted for the VPN tunnel. -type IKEVersionsRequestListValue struct { - _ struct{} `type:"structure"` - - // The IKE version. - Value *string `type:"string"` -} - -// String returns the string representation -func (s IKEVersionsRequestListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s IKEVersionsRequestListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *IKEVersionsRequestListValue) SetValue(v string) *IKEVersionsRequestListValue { - s.Value = &v - return s -} - // Describes an IAM instance profile. type IamInstanceProfile struct { _ struct{} `type:"structure"` @@ -77129,329 +77003,6 @@ func (s *ModifyVpnTunnelCertificateOutput) SetVpnConnection(v *VpnConnection) *M return s } -type ModifyVpnTunnelOptionsInput struct { - _ struct{} `type:"structure"` - - // Checks whether you have the required permissions for the action, without - // actually making the request, and provides an error response. If you have - // the required permissions, the error response is DryRunOperation. Otherwise, - // it is UnauthorizedOperation. - DryRun *bool `type:"boolean"` - - // The tunnel options to modify. - // - // TunnelOptions is a required field - TunnelOptions *ModifyVpnTunnelOptionsSpecification `type:"structure" required:"true"` - - // The ID of the AWS Site-to-Site VPN connection. - // - // VpnConnectionId is a required field - VpnConnectionId *string `type:"string" required:"true"` - - // The external IP address of the VPN tunnel. - // - // VpnTunnelOutsideIpAddress is a required field - VpnTunnelOutsideIpAddress *string `type:"string" required:"true"` -} - -// String returns the string representation -func (s ModifyVpnTunnelOptionsInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ModifyVpnTunnelOptionsInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ModifyVpnTunnelOptionsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ModifyVpnTunnelOptionsInput"} - if s.TunnelOptions == nil { - invalidParams.Add(request.NewErrParamRequired("TunnelOptions")) - } - if s.VpnConnectionId == nil { - invalidParams.Add(request.NewErrParamRequired("VpnConnectionId")) - } - if s.VpnTunnelOutsideIpAddress == nil { - invalidParams.Add(request.NewErrParamRequired("VpnTunnelOutsideIpAddress")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDryRun sets the DryRun field's value. -func (s *ModifyVpnTunnelOptionsInput) SetDryRun(v bool) *ModifyVpnTunnelOptionsInput { - s.DryRun = &v - return s -} - -// SetTunnelOptions sets the TunnelOptions field's value. -func (s *ModifyVpnTunnelOptionsInput) SetTunnelOptions(v *ModifyVpnTunnelOptionsSpecification) *ModifyVpnTunnelOptionsInput { - s.TunnelOptions = v - return s -} - -// SetVpnConnectionId sets the VpnConnectionId field's value. -func (s *ModifyVpnTunnelOptionsInput) SetVpnConnectionId(v string) *ModifyVpnTunnelOptionsInput { - s.VpnConnectionId = &v - return s -} - -// SetVpnTunnelOutsideIpAddress sets the VpnTunnelOutsideIpAddress field's value. -func (s *ModifyVpnTunnelOptionsInput) SetVpnTunnelOutsideIpAddress(v string) *ModifyVpnTunnelOptionsInput { - s.VpnTunnelOutsideIpAddress = &v - return s -} - -type ModifyVpnTunnelOptionsOutput struct { - _ struct{} `type:"structure"` - - // Describes a VPN connection. - VpnConnection *VpnConnection `locationName:"vpnConnection" type:"structure"` -} - -// String returns the string representation -func (s ModifyVpnTunnelOptionsOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ModifyVpnTunnelOptionsOutput) GoString() string { - return s.String() -} - -// SetVpnConnection sets the VpnConnection field's value. -func (s *ModifyVpnTunnelOptionsOutput) SetVpnConnection(v *VpnConnection) *ModifyVpnTunnelOptionsOutput { - s.VpnConnection = v - return s -} - -// The AWS Site-to-Site VPN tunnel options to modify. -type ModifyVpnTunnelOptionsSpecification struct { - _ struct{} `type:"structure"` - - // The number of seconds after which a DPD timeout occurs. - // - // Constraints: A value between 0 and 30. - // - // Default: 30 - DPDTimeoutSeconds *int64 `type:"integer"` - - // The IKE versions that are permitted for the VPN tunnel. - // - // Valid values: ikev1 | ikev2 - IKEVersions []*IKEVersionsRequestListValue `locationName:"IKEVersion" locationNameList:"item" type:"list"` - - // One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel - // for phase 1 IKE negotiations. - // - // Valid values: 2 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 - Phase1DHGroupNumbers []*Phase1DHGroupNumbersRequestListValue `locationName:"Phase1DHGroupNumber" locationNameList:"item" type:"list"` - - // One or more encryption algorithms that are permitted for the VPN tunnel for - // phase 1 IKE negotiations. - // - // Valid values: AES128 | AES256 - Phase1EncryptionAlgorithms []*Phase1EncryptionAlgorithmsRequestListValue `locationName:"Phase1EncryptionAlgorithm" locationNameList:"item" type:"list"` - - // One or more integrity algorithms that are permitted for the VPN tunnel for - // phase 1 IKE negotiations. - // - // Valid values: SHA1 | SHA2-256 - Phase1IntegrityAlgorithms []*Phase1IntegrityAlgorithmsRequestListValue `locationName:"Phase1IntegrityAlgorithm" locationNameList:"item" type:"list"` - - // The lifetime for phase 1 of the IKE negotiation, in seconds. - // - // Constraints: A value between 900 and 28,800. - // - // Default: 28800 - Phase1LifetimeSeconds *int64 `type:"integer"` - - // One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel - // for phase 2 IKE negotiations. - // - // Valid values: 2 | 5 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 - Phase2DHGroupNumbers []*Phase2DHGroupNumbersRequestListValue `locationName:"Phase2DHGroupNumber" locationNameList:"item" type:"list"` - - // One or more encryption algorithms that are permitted for the VPN tunnel for - // phase 2 IKE negotiations. - // - // Valid values: AES128 | AES256 - Phase2EncryptionAlgorithms []*Phase2EncryptionAlgorithmsRequestListValue `locationName:"Phase2EncryptionAlgorithm" locationNameList:"item" type:"list"` - - // One or more integrity algorithms that are permitted for the VPN tunnel for - // phase 2 IKE negotiations. - // - // Valid values: SHA1 | SHA2-256 - Phase2IntegrityAlgorithms []*Phase2IntegrityAlgorithmsRequestListValue `locationName:"Phase2IntegrityAlgorithm" locationNameList:"item" type:"list"` - - // The lifetime for phase 2 of the IKE negotiation, in seconds. - // - // Constraints: A value between 900 and 3,600. The value must be less than the - // value for Phase1LifetimeSeconds. - // - // Default: 3600 - Phase2LifetimeSeconds *int64 `type:"integer"` - - // The pre-shared key (PSK) to establish initial authentication between the - // virtual private gateway and the customer gateway. - // - // Constraints: Allowed characters are alphanumeric characters, periods (.), - // and underscores (_). Must be between 8 and 64 characters in length and cannot - // start with zero (0). - PreSharedKey *string `type:"string"` - - // The percentage of the rekey window (determined by RekeyMarginTimeSeconds) - // during which the rekey time is randomly selected. - // - // Constraints: A value between 0 and 100. - // - // Default: 100 - RekeyFuzzPercentage *int64 `type:"integer"` - - // The margin time, in seconds, before the phase 2 lifetime expires, during - // which the AWS side of the VPN connection performs an IKE rekey. The exact - // time of the rekey is randomly selected based on the value for RekeyFuzzPercentage. - // - // Constraints: A value between 60 and half of Phase2LifetimeSeconds. - // - // Default: 540 - RekeyMarginTimeSeconds *int64 `type:"integer"` - - // The number of packets in an IKE replay window. - // - // Constraints: A value between 64 and 2048. - // - // Default: 1024 - ReplayWindowSize *int64 `type:"integer"` - - // The range of inside IP addresses for the tunnel. Any specified CIDR blocks - // must be unique across all VPN connections that use the same virtual private - // gateway. - // - // Constraints: A size /30 CIDR block from the 169.254.0.0/16 range. The following - // CIDR blocks are reserved and cannot be used: - // - // * 169.254.0.0/30 - // - // * 169.254.1.0/30 - // - // * 169.254.2.0/30 - // - // * 169.254.3.0/30 - // - // * 169.254.4.0/30 - // - // * 169.254.5.0/30 - // - // * 169.254.169.252/30 - TunnelInsideCidr *string `type:"string"` -} - -// String returns the string representation -func (s ModifyVpnTunnelOptionsSpecification) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ModifyVpnTunnelOptionsSpecification) GoString() string { - return s.String() -} - -// SetDPDTimeoutSeconds sets the DPDTimeoutSeconds field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetDPDTimeoutSeconds(v int64) *ModifyVpnTunnelOptionsSpecification { - s.DPDTimeoutSeconds = &v - return s -} - -// SetIKEVersions sets the IKEVersions field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetIKEVersions(v []*IKEVersionsRequestListValue) *ModifyVpnTunnelOptionsSpecification { - s.IKEVersions = v - return s -} - -// SetPhase1DHGroupNumbers sets the Phase1DHGroupNumbers field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase1DHGroupNumbers(v []*Phase1DHGroupNumbersRequestListValue) *ModifyVpnTunnelOptionsSpecification { - s.Phase1DHGroupNumbers = v - return s -} - -// SetPhase1EncryptionAlgorithms sets the Phase1EncryptionAlgorithms field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase1EncryptionAlgorithms(v []*Phase1EncryptionAlgorithmsRequestListValue) *ModifyVpnTunnelOptionsSpecification { - s.Phase1EncryptionAlgorithms = v - return s -} - -// SetPhase1IntegrityAlgorithms sets the Phase1IntegrityAlgorithms field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase1IntegrityAlgorithms(v []*Phase1IntegrityAlgorithmsRequestListValue) *ModifyVpnTunnelOptionsSpecification { - s.Phase1IntegrityAlgorithms = v - return s -} - -// SetPhase1LifetimeSeconds sets the Phase1LifetimeSeconds field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase1LifetimeSeconds(v int64) *ModifyVpnTunnelOptionsSpecification { - s.Phase1LifetimeSeconds = &v - return s -} - -// SetPhase2DHGroupNumbers sets the Phase2DHGroupNumbers field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase2DHGroupNumbers(v []*Phase2DHGroupNumbersRequestListValue) *ModifyVpnTunnelOptionsSpecification { - s.Phase2DHGroupNumbers = v - return s -} - -// SetPhase2EncryptionAlgorithms sets the Phase2EncryptionAlgorithms field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase2EncryptionAlgorithms(v []*Phase2EncryptionAlgorithmsRequestListValue) *ModifyVpnTunnelOptionsSpecification { - s.Phase2EncryptionAlgorithms = v - return s -} - -// SetPhase2IntegrityAlgorithms sets the Phase2IntegrityAlgorithms field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase2IntegrityAlgorithms(v []*Phase2IntegrityAlgorithmsRequestListValue) *ModifyVpnTunnelOptionsSpecification { - s.Phase2IntegrityAlgorithms = v - return s -} - -// SetPhase2LifetimeSeconds sets the Phase2LifetimeSeconds field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPhase2LifetimeSeconds(v int64) *ModifyVpnTunnelOptionsSpecification { - s.Phase2LifetimeSeconds = &v - return s -} - -// SetPreSharedKey sets the PreSharedKey field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetPreSharedKey(v string) *ModifyVpnTunnelOptionsSpecification { - s.PreSharedKey = &v - return s -} - -// SetRekeyFuzzPercentage sets the RekeyFuzzPercentage field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetRekeyFuzzPercentage(v int64) *ModifyVpnTunnelOptionsSpecification { - s.RekeyFuzzPercentage = &v - return s -} - -// SetRekeyMarginTimeSeconds sets the RekeyMarginTimeSeconds field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetRekeyMarginTimeSeconds(v int64) *ModifyVpnTunnelOptionsSpecification { - s.RekeyMarginTimeSeconds = &v - return s -} - -// SetReplayWindowSize sets the ReplayWindowSize field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetReplayWindowSize(v int64) *ModifyVpnTunnelOptionsSpecification { - s.ReplayWindowSize = &v - return s -} - -// SetTunnelInsideCidr sets the TunnelInsideCidr field's value. -func (s *ModifyVpnTunnelOptionsSpecification) SetTunnelInsideCidr(v string) *ModifyVpnTunnelOptionsSpecification { - s.TunnelInsideCidr = &v - return s -} - type MonitorInstancesInput struct { _ struct{} `type:"structure"` @@ -78938,296 +78489,6 @@ func (s *PeeringConnectionOptionsRequest) SetAllowEgressFromLocalVpcToRemoteClas return s } -// The Diffie-Hellmann group number for phase 1 IKE negotiations. -type Phase1DHGroupNumbersListValue struct { - _ struct{} `type:"structure"` - - // The Diffie-Hellmann group number. - Value *int64 `locationName:"value" type:"integer"` -} - -// String returns the string representation -func (s Phase1DHGroupNumbersListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase1DHGroupNumbersListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase1DHGroupNumbersListValue) SetValue(v int64) *Phase1DHGroupNumbersListValue { - s.Value = &v - return s -} - -// Specifies a Diffie-Hellman group number for the VPN tunnel for phase 1 IKE -// negotiations. -type Phase1DHGroupNumbersRequestListValue struct { - _ struct{} `type:"structure"` - - // The Diffie-Hellmann group number. - Value *int64 `type:"integer"` -} - -// String returns the string representation -func (s Phase1DHGroupNumbersRequestListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase1DHGroupNumbersRequestListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase1DHGroupNumbersRequestListValue) SetValue(v int64) *Phase1DHGroupNumbersRequestListValue { - s.Value = &v - return s -} - -// The encryption algorithm for phase 1 IKE negotiations. -type Phase1EncryptionAlgorithmsListValue struct { - _ struct{} `type:"structure"` - - // The value for the encryption algorithm. - Value *string `locationName:"value" type:"string"` -} - -// String returns the string representation -func (s Phase1EncryptionAlgorithmsListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase1EncryptionAlgorithmsListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase1EncryptionAlgorithmsListValue) SetValue(v string) *Phase1EncryptionAlgorithmsListValue { - s.Value = &v - return s -} - -// Specifies the encryption algorithm for the VPN tunnel for phase 1 IKE negotiations. -type Phase1EncryptionAlgorithmsRequestListValue struct { - _ struct{} `type:"structure"` - - // The value for the encryption algorithm. - Value *string `type:"string"` -} - -// String returns the string representation -func (s Phase1EncryptionAlgorithmsRequestListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase1EncryptionAlgorithmsRequestListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase1EncryptionAlgorithmsRequestListValue) SetValue(v string) *Phase1EncryptionAlgorithmsRequestListValue { - s.Value = &v - return s -} - -// The integrity algorithm for phase 1 IKE negotiations. -type Phase1IntegrityAlgorithmsListValue struct { - _ struct{} `type:"structure"` - - // The value for the integrity algorithm. - Value *string `locationName:"value" type:"string"` -} - -// String returns the string representation -func (s Phase1IntegrityAlgorithmsListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase1IntegrityAlgorithmsListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase1IntegrityAlgorithmsListValue) SetValue(v string) *Phase1IntegrityAlgorithmsListValue { - s.Value = &v - return s -} - -// Specifies the integrity algorithm for the VPN tunnel for phase 1 IKE negotiations. -type Phase1IntegrityAlgorithmsRequestListValue struct { - _ struct{} `type:"structure"` - - // The value for the integrity algorithm. - Value *string `type:"string"` -} - -// String returns the string representation -func (s Phase1IntegrityAlgorithmsRequestListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase1IntegrityAlgorithmsRequestListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase1IntegrityAlgorithmsRequestListValue) SetValue(v string) *Phase1IntegrityAlgorithmsRequestListValue { - s.Value = &v - return s -} - -// The Diffie-Hellmann group number for phase 2 IKE negotiations. -type Phase2DHGroupNumbersListValue struct { - _ struct{} `type:"structure"` - - // The Diffie-Hellmann group number. - Value *int64 `locationName:"value" type:"integer"` -} - -// String returns the string representation -func (s Phase2DHGroupNumbersListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase2DHGroupNumbersListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase2DHGroupNumbersListValue) SetValue(v int64) *Phase2DHGroupNumbersListValue { - s.Value = &v - return s -} - -// Specifies a Diffie-Hellman group number for the VPN tunnel for phase 2 IKE -// negotiations. -type Phase2DHGroupNumbersRequestListValue struct { - _ struct{} `type:"structure"` - - // The Diffie-Hellmann group number. - Value *int64 `type:"integer"` -} - -// String returns the string representation -func (s Phase2DHGroupNumbersRequestListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase2DHGroupNumbersRequestListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase2DHGroupNumbersRequestListValue) SetValue(v int64) *Phase2DHGroupNumbersRequestListValue { - s.Value = &v - return s -} - -// The encryption algorithm for phase 2 IKE negotiations. -type Phase2EncryptionAlgorithmsListValue struct { - _ struct{} `type:"structure"` - - // The encryption algorithm. - Value *string `locationName:"value" type:"string"` -} - -// String returns the string representation -func (s Phase2EncryptionAlgorithmsListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase2EncryptionAlgorithmsListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase2EncryptionAlgorithmsListValue) SetValue(v string) *Phase2EncryptionAlgorithmsListValue { - s.Value = &v - return s -} - -// Specifies the encryption algorithm for the VPN tunnel for phase 2 IKE negotiations. -type Phase2EncryptionAlgorithmsRequestListValue struct { - _ struct{} `type:"structure"` - - // The encryption algorithm. - Value *string `type:"string"` -} - -// String returns the string representation -func (s Phase2EncryptionAlgorithmsRequestListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase2EncryptionAlgorithmsRequestListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase2EncryptionAlgorithmsRequestListValue) SetValue(v string) *Phase2EncryptionAlgorithmsRequestListValue { - s.Value = &v - return s -} - -// The integrity algorithm for phase 2 IKE negotiations. -type Phase2IntegrityAlgorithmsListValue struct { - _ struct{} `type:"structure"` - - // The integrity algorithm. - Value *string `locationName:"value" type:"string"` -} - -// String returns the string representation -func (s Phase2IntegrityAlgorithmsListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase2IntegrityAlgorithmsListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase2IntegrityAlgorithmsListValue) SetValue(v string) *Phase2IntegrityAlgorithmsListValue { - s.Value = &v - return s -} - -// Specifies the integrity algorithm for the VPN tunnel for phase 2 IKE negotiations. -type Phase2IntegrityAlgorithmsRequestListValue struct { - _ struct{} `type:"structure"` - - // The integrity algorithm. - Value *string `type:"string"` -} - -// String returns the string representation -func (s Phase2IntegrityAlgorithmsRequestListValue) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s Phase2IntegrityAlgorithmsRequestListValue) GoString() string { - return s.String() -} - -// SetValue sets the Value field's value. -func (s *Phase2IntegrityAlgorithmsRequestListValue) SetValue(v string) *Phase2IntegrityAlgorithmsRequestListValue { - s.Value = &v - return s -} - // Describes the placement of an instance. type Placement struct { _ struct{} `type:"structure"` @@ -92319,170 +91580,6 @@ func (s *TransitGatewayVpcAttachmentOptions) SetIpv6Support(v string) *TransitGa return s } -// The VPN tunnel options. -type TunnelOption struct { - _ struct{} `type:"structure"` - - // The number of seconds after which a DPD timeout occurs. - DpdTimeoutSeconds *int64 `locationName:"dpdTimeoutSeconds" type:"integer"` - - // The IKE versions that are permitted for the VPN tunnel. - IkeVersions []*IKEVersionsListValue `locationName:"ikeVersionSet" locationNameList:"item" type:"list"` - - // The external IP address of the VPN tunnel. - OutsideIpAddress *string `locationName:"outsideIpAddress" type:"string"` - - // The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 1 - // IKE negotiations. - Phase1DHGroupNumbers []*Phase1DHGroupNumbersListValue `locationName:"phase1DHGroupNumberSet" locationNameList:"item" type:"list"` - - // The permitted encryption algorithms for the VPN tunnel for phase 1 IKE negotiations. - Phase1EncryptionAlgorithms []*Phase1EncryptionAlgorithmsListValue `locationName:"phase1EncryptionAlgorithmSet" locationNameList:"item" type:"list"` - - // The permitted integrity algorithms for the VPN tunnel for phase 1 IKE negotiations. - Phase1IntegrityAlgorithms []*Phase1IntegrityAlgorithmsListValue `locationName:"phase1IntegrityAlgorithmSet" locationNameList:"item" type:"list"` - - // The lifetime for phase 1 of the IKE negotiation, in seconds. - Phase1LifetimeSeconds *int64 `locationName:"phase1LifetimeSeconds" type:"integer"` - - // The permitted Diffie-Hellman group numbers for the VPN tunnel for phase 2 - // IKE negotiations. - Phase2DHGroupNumbers []*Phase2DHGroupNumbersListValue `locationName:"phase2DHGroupNumberSet" locationNameList:"item" type:"list"` - - // The permitted encryption algorithms for the VPN tunnel for phase 2 IKE negotiations. - Phase2EncryptionAlgorithms []*Phase2EncryptionAlgorithmsListValue `locationName:"phase2EncryptionAlgorithmSet" locationNameList:"item" type:"list"` - - // The permitted integrity algorithms for the VPN tunnel for phase 2 IKE negotiations. - Phase2IntegrityAlgorithms []*Phase2IntegrityAlgorithmsListValue `locationName:"phase2IntegrityAlgorithmSet" locationNameList:"item" type:"list"` - - // The lifetime for phase 2 of the IKE negotiation, in seconds. - Phase2LifetimeSeconds *int64 `locationName:"phase2LifetimeSeconds" type:"integer"` - - // The pre-shared key (PSK) to establish initial authentication between the - // virtual private gateway and the customer gateway. - PreSharedKey *string `locationName:"preSharedKey" type:"string"` - - // The percentage of the rekey window determined by RekeyMarginTimeSeconds during - // which the rekey time is randomly selected. - RekeyFuzzPercentage *int64 `locationName:"rekeyFuzzPercentage" type:"integer"` - - // The margin time, in seconds, before the phase 2 lifetime expires, during - // which the AWS side of the VPN connection performs an IKE rekey. - RekeyMarginTimeSeconds *int64 `locationName:"rekeyMarginTimeSeconds" type:"integer"` - - // The number of packets in an IKE replay window. - ReplayWindowSize *int64 `locationName:"replayWindowSize" type:"integer"` - - // The range of inside IP addresses for the tunnel. - TunnelInsideCidr *string `locationName:"tunnelInsideCidr" type:"string"` -} - -// String returns the string representation -func (s TunnelOption) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s TunnelOption) GoString() string { - return s.String() -} - -// SetDpdTimeoutSeconds sets the DpdTimeoutSeconds field's value. -func (s *TunnelOption) SetDpdTimeoutSeconds(v int64) *TunnelOption { - s.DpdTimeoutSeconds = &v - return s -} - -// SetIkeVersions sets the IkeVersions field's value. -func (s *TunnelOption) SetIkeVersions(v []*IKEVersionsListValue) *TunnelOption { - s.IkeVersions = v - return s -} - -// SetOutsideIpAddress sets the OutsideIpAddress field's value. -func (s *TunnelOption) SetOutsideIpAddress(v string) *TunnelOption { - s.OutsideIpAddress = &v - return s -} - -// SetPhase1DHGroupNumbers sets the Phase1DHGroupNumbers field's value. -func (s *TunnelOption) SetPhase1DHGroupNumbers(v []*Phase1DHGroupNumbersListValue) *TunnelOption { - s.Phase1DHGroupNumbers = v - return s -} - -// SetPhase1EncryptionAlgorithms sets the Phase1EncryptionAlgorithms field's value. -func (s *TunnelOption) SetPhase1EncryptionAlgorithms(v []*Phase1EncryptionAlgorithmsListValue) *TunnelOption { - s.Phase1EncryptionAlgorithms = v - return s -} - -// SetPhase1IntegrityAlgorithms sets the Phase1IntegrityAlgorithms field's value. -func (s *TunnelOption) SetPhase1IntegrityAlgorithms(v []*Phase1IntegrityAlgorithmsListValue) *TunnelOption { - s.Phase1IntegrityAlgorithms = v - return s -} - -// SetPhase1LifetimeSeconds sets the Phase1LifetimeSeconds field's value. -func (s *TunnelOption) SetPhase1LifetimeSeconds(v int64) *TunnelOption { - s.Phase1LifetimeSeconds = &v - return s -} - -// SetPhase2DHGroupNumbers sets the Phase2DHGroupNumbers field's value. -func (s *TunnelOption) SetPhase2DHGroupNumbers(v []*Phase2DHGroupNumbersListValue) *TunnelOption { - s.Phase2DHGroupNumbers = v - return s -} - -// SetPhase2EncryptionAlgorithms sets the Phase2EncryptionAlgorithms field's value. -func (s *TunnelOption) SetPhase2EncryptionAlgorithms(v []*Phase2EncryptionAlgorithmsListValue) *TunnelOption { - s.Phase2EncryptionAlgorithms = v - return s -} - -// SetPhase2IntegrityAlgorithms sets the Phase2IntegrityAlgorithms field's value. -func (s *TunnelOption) SetPhase2IntegrityAlgorithms(v []*Phase2IntegrityAlgorithmsListValue) *TunnelOption { - s.Phase2IntegrityAlgorithms = v - return s -} - -// SetPhase2LifetimeSeconds sets the Phase2LifetimeSeconds field's value. -func (s *TunnelOption) SetPhase2LifetimeSeconds(v int64) *TunnelOption { - s.Phase2LifetimeSeconds = &v - return s -} - -// SetPreSharedKey sets the PreSharedKey field's value. -func (s *TunnelOption) SetPreSharedKey(v string) *TunnelOption { - s.PreSharedKey = &v - return s -} - -// SetRekeyFuzzPercentage sets the RekeyFuzzPercentage field's value. -func (s *TunnelOption) SetRekeyFuzzPercentage(v int64) *TunnelOption { - s.RekeyFuzzPercentage = &v - return s -} - -// SetRekeyMarginTimeSeconds sets the RekeyMarginTimeSeconds field's value. -func (s *TunnelOption) SetRekeyMarginTimeSeconds(v int64) *TunnelOption { - s.RekeyMarginTimeSeconds = &v - return s -} - -// SetReplayWindowSize sets the ReplayWindowSize field's value. -func (s *TunnelOption) SetReplayWindowSize(v int64) *TunnelOption { - s.ReplayWindowSize = &v - return s -} - -// SetTunnelInsideCidr sets the TunnelInsideCidr field's value. -func (s *TunnelOption) SetTunnelInsideCidr(v string) *TunnelOption { - s.TunnelInsideCidr = &v - return s -} - type UnassignIpv6AddressesInput struct { _ struct{} `type:"structure"` @@ -94799,9 +93896,6 @@ type VpnConnectionOptions struct { // Indicates whether the VPN connection uses static routes only. Static routes // must be used for devices that don't support BGP. StaticRoutesOnly *bool `locationName:"staticRoutesOnly" type:"boolean"` - - // Indicates the VPN tunnel options. - TunnelOptions []*TunnelOption `locationName:"tunnelOptionSet" locationNameList:"item" type:"list"` } // String returns the string representation @@ -94820,12 +93914,6 @@ func (s *VpnConnectionOptions) SetStaticRoutesOnly(v bool) *VpnConnectionOptions return s } -// SetTunnelOptions sets the TunnelOptions field's value. -func (s *VpnConnectionOptions) SetTunnelOptions(v []*TunnelOption) *VpnConnectionOptions { - s.TunnelOptions = v - return s -} - // Describes VPN connection options. type VpnConnectionOptionsSpecification struct { _ struct{} `type:"structure"` @@ -94838,7 +93926,7 @@ type VpnConnectionOptionsSpecification struct { StaticRoutesOnly *bool `locationName:"staticRoutesOnly" type:"boolean"` // The tunnel options for the VPN connection. - TunnelOptions []*VpnTunnelOptionsSpecification `type:"list"` + TunnelOptions []*VpnTunnelOptionsSpecification `locationNameList:"item" type:"list"` } // String returns the string representation @@ -94988,101 +94076,13 @@ func (s *VpnStaticRoute) SetState(v string) *VpnStaticRoute { type VpnTunnelOptionsSpecification struct { _ struct{} `type:"structure"` - // The number of seconds after which a DPD timeout occurs. - // - // Constraints: A value between 0 and 30. - // - // Default: 30 - DPDTimeoutSeconds *int64 `type:"integer"` - - // The IKE versions that are permitted for the VPN tunnel. - // - // Valid values: ikev1 | ikev2 - IKEVersions []*IKEVersionsRequestListValue `locationName:"IKEVersion" locationNameList:"item" type:"list"` - - // One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel - // for phase 1 IKE negotiations. - // - // Valid values: 2 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 - Phase1DHGroupNumbers []*Phase1DHGroupNumbersRequestListValue `locationName:"Phase1DHGroupNumber" locationNameList:"item" type:"list"` - - // One or more encryption algorithms that are permitted for the VPN tunnel for - // phase 1 IKE negotiations. - // - // Valid values: AES128 | AES256 - Phase1EncryptionAlgorithms []*Phase1EncryptionAlgorithmsRequestListValue `locationName:"Phase1EncryptionAlgorithm" locationNameList:"item" type:"list"` - - // One or more integrity algorithms that are permitted for the VPN tunnel for - // phase 1 IKE negotiations. - // - // Valid values: SHA1 | SHA2-256 - Phase1IntegrityAlgorithms []*Phase1IntegrityAlgorithmsRequestListValue `locationName:"Phase1IntegrityAlgorithm" locationNameList:"item" type:"list"` - - // The lifetime for phase 1 of the IKE negotiation, in seconds. - // - // Constraints: A value between 900 and 28,800. - // - // Default: 28800 - Phase1LifetimeSeconds *int64 `type:"integer"` - - // One or more Diffie-Hellman group numbers that are permitted for the VPN tunnel - // for phase 2 IKE negotiations. - // - // Valid values: 2 | 5 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 - Phase2DHGroupNumbers []*Phase2DHGroupNumbersRequestListValue `locationName:"Phase2DHGroupNumber" locationNameList:"item" type:"list"` - - // One or more encryption algorithms that are permitted for the VPN tunnel for - // phase 2 IKE negotiations. - // - // Valid values: AES128 | AES256 - Phase2EncryptionAlgorithms []*Phase2EncryptionAlgorithmsRequestListValue `locationName:"Phase2EncryptionAlgorithm" locationNameList:"item" type:"list"` - - // One or more integrity algorithms that are permitted for the VPN tunnel for - // phase 2 IKE negotiations. - // - // Valid values: SHA1 | SHA2-256 - Phase2IntegrityAlgorithms []*Phase2IntegrityAlgorithmsRequestListValue `locationName:"Phase2IntegrityAlgorithm" locationNameList:"item" type:"list"` - - // The lifetime for phase 2 of the IKE negotiation, in seconds. - // - // Constraints: A value between 900 and 3,600. The value must be less than the - // value for Phase1LifetimeSeconds. - // - // Default: 3600 - Phase2LifetimeSeconds *int64 `type:"integer"` - // The pre-shared key (PSK) to establish initial authentication between the // virtual private gateway and customer gateway. // - // Constraints: Allowed characters are alphanumeric characters, periods (.), - // and underscores (_). Must be between 8 and 64 characters in length and cannot - // start with zero (0). + // Constraints: Allowed characters are alphanumeric characters and ._. Must + // be between 8 and 64 characters in length and cannot start with zero (0). PreSharedKey *string `type:"string"` - // The percentage of the rekey window (determined by RekeyMarginTimeSeconds) - // during which the rekey time is randomly selected. - // - // Constraints: A value between 0 and 100. - // - // Default: 100 - RekeyFuzzPercentage *int64 `type:"integer"` - - // The margin time, in seconds, before the phase 2 lifetime expires, during - // which the AWS side of the VPN connection performs an IKE rekey. The exact - // time of the rekey is randomly selected based on the value for RekeyFuzzPercentage. - // - // Constraints: A value between 60 and half of Phase2LifetimeSeconds. - // - // Default: 540 - RekeyMarginTimeSeconds *int64 `type:"integer"` - - // The number of packets in an IKE replay window. - // - // Constraints: A value between 64 and 2048. - // - // Default: 1024 - ReplayWindowSize *int64 `type:"integer"` - // The range of inside IP addresses for the tunnel. Any specified CIDR blocks // must be unique across all VPN connections that use the same virtual private // gateway. @@ -95116,90 +94116,12 @@ func (s VpnTunnelOptionsSpecification) GoString() string { return s.String() } -// SetDPDTimeoutSeconds sets the DPDTimeoutSeconds field's value. -func (s *VpnTunnelOptionsSpecification) SetDPDTimeoutSeconds(v int64) *VpnTunnelOptionsSpecification { - s.DPDTimeoutSeconds = &v - return s -} - -// SetIKEVersions sets the IKEVersions field's value. -func (s *VpnTunnelOptionsSpecification) SetIKEVersions(v []*IKEVersionsRequestListValue) *VpnTunnelOptionsSpecification { - s.IKEVersions = v - return s -} - -// SetPhase1DHGroupNumbers sets the Phase1DHGroupNumbers field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase1DHGroupNumbers(v []*Phase1DHGroupNumbersRequestListValue) *VpnTunnelOptionsSpecification { - s.Phase1DHGroupNumbers = v - return s -} - -// SetPhase1EncryptionAlgorithms sets the Phase1EncryptionAlgorithms field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase1EncryptionAlgorithms(v []*Phase1EncryptionAlgorithmsRequestListValue) *VpnTunnelOptionsSpecification { - s.Phase1EncryptionAlgorithms = v - return s -} - -// SetPhase1IntegrityAlgorithms sets the Phase1IntegrityAlgorithms field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase1IntegrityAlgorithms(v []*Phase1IntegrityAlgorithmsRequestListValue) *VpnTunnelOptionsSpecification { - s.Phase1IntegrityAlgorithms = v - return s -} - -// SetPhase1LifetimeSeconds sets the Phase1LifetimeSeconds field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase1LifetimeSeconds(v int64) *VpnTunnelOptionsSpecification { - s.Phase1LifetimeSeconds = &v - return s -} - -// SetPhase2DHGroupNumbers sets the Phase2DHGroupNumbers field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase2DHGroupNumbers(v []*Phase2DHGroupNumbersRequestListValue) *VpnTunnelOptionsSpecification { - s.Phase2DHGroupNumbers = v - return s -} - -// SetPhase2EncryptionAlgorithms sets the Phase2EncryptionAlgorithms field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase2EncryptionAlgorithms(v []*Phase2EncryptionAlgorithmsRequestListValue) *VpnTunnelOptionsSpecification { - s.Phase2EncryptionAlgorithms = v - return s -} - -// SetPhase2IntegrityAlgorithms sets the Phase2IntegrityAlgorithms field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase2IntegrityAlgorithms(v []*Phase2IntegrityAlgorithmsRequestListValue) *VpnTunnelOptionsSpecification { - s.Phase2IntegrityAlgorithms = v - return s -} - -// SetPhase2LifetimeSeconds sets the Phase2LifetimeSeconds field's value. -func (s *VpnTunnelOptionsSpecification) SetPhase2LifetimeSeconds(v int64) *VpnTunnelOptionsSpecification { - s.Phase2LifetimeSeconds = &v - return s -} - // SetPreSharedKey sets the PreSharedKey field's value. func (s *VpnTunnelOptionsSpecification) SetPreSharedKey(v string) *VpnTunnelOptionsSpecification { s.PreSharedKey = &v return s } -// SetRekeyFuzzPercentage sets the RekeyFuzzPercentage field's value. -func (s *VpnTunnelOptionsSpecification) SetRekeyFuzzPercentage(v int64) *VpnTunnelOptionsSpecification { - s.RekeyFuzzPercentage = &v - return s -} - -// SetRekeyMarginTimeSeconds sets the RekeyMarginTimeSeconds field's value. -func (s *VpnTunnelOptionsSpecification) SetRekeyMarginTimeSeconds(v int64) *VpnTunnelOptionsSpecification { - s.RekeyMarginTimeSeconds = &v - return s -} - -// SetReplayWindowSize sets the ReplayWindowSize field's value. -func (s *VpnTunnelOptionsSpecification) SetReplayWindowSize(v int64) *VpnTunnelOptionsSpecification { - s.ReplayWindowSize = &v - return s -} - // SetTunnelInsideCidr sets the TunnelInsideCidr field's value. func (s *VpnTunnelOptionsSpecification) SetTunnelInsideCidr(v string) *VpnTunnelOptionsSpecification { s.TunnelInsideCidr = &v diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/LICENSE b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/common/consts.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/common/consts.go new file mode 100644 index 00000000000..dfa87062d97 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/common/consts.go @@ -0,0 +1,121 @@ +/* +Copyright 2018 The Kubernetes 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 common + +// Constants aren't automatically generated for unversioned packages. +// Instead share the same constant for all versioned packages +type MachineStatusError string + +const ( + // Represents that the combination of configuration in the MachineSpec + // is not supported by this cluster. This is not a transient error, but + // indicates a state that must be fixed before progress can be made. + // + // Example: the ProviderSpec specifies an instance type that doesn't exist, + InvalidConfigurationMachineError MachineStatusError = "InvalidConfiguration" + + // This indicates that the MachineSpec has been updated in a way that + // is not supported for reconciliation on this cluster. The spec may be + // completely valid from a configuration standpoint, but the controller + // does not support changing the real world state to match the new + // spec. + // + // Example: the responsible controller is not capable of changing the + // container runtime from docker to rkt. + UnsupportedChangeMachineError MachineStatusError = "UnsupportedChange" + + // This generally refers to exceeding one's quota in a cloud provider, + // or running out of physical machines in an on-premise environment. + InsufficientResourcesMachineError MachineStatusError = "InsufficientResources" + + // There was an error while trying to create a Node to match this + // Machine. This may indicate a transient problem that will be fixed + // automatically with time, such as a service outage, or a terminal + // error during creation that doesn't match a more specific + // MachineStatusError value. + // + // Example: timeout trying to connect to GCE. + CreateMachineError MachineStatusError = "CreateError" + + // There was an error while trying to update a Node that this + // Machine represents. This may indicate a transient problem that will be + // fixed automatically with time, such as a service outage, + // + // Example: error updating load balancers + UpdateMachineError MachineStatusError = "UpdateError" + + // An error was encountered while trying to delete the Node that this + // Machine represents. This could be a transient or terminal error, but + // will only be observable if the provider's Machine controller has + // added a finalizer to the object to more gracefully handle deletions. + // + // Example: cannot resolve EC2 IP address. + DeleteMachineError MachineStatusError = "DeleteError" + + // This error indicates that the machine did not join the cluster + // as a new node within the expected timeframe after instance + // creation at the provider succeeded + // + // Example use case: A controller that deletes Machines which do + // not result in a Node joining the cluster within a given timeout + // and that are managed by a MachineSet + JoinClusterTimeoutMachineError = "JoinClusterTimeoutError" +) + +type ClusterStatusError string + +const ( + // InvalidConfigurationClusterError indicates that the cluster + // configuration is invalid. + InvalidConfigurationClusterError ClusterStatusError = "InvalidConfiguration" + + // UnsupportedChangeClusterError indicates that the cluster + // spec has been updated in an unsupported way. That cannot be + // reconciled. + UnsupportedChangeClusterError ClusterStatusError = "UnsupportedChange" + + // CreateClusterError indicates that an error was encountered + // when trying to create the cluster. + CreateClusterError ClusterStatusError = "CreateError" + + // UpdateClusterError indicates that an error was encountered + // when trying to update the cluster. + UpdateClusterError ClusterStatusError = "UpdateError" + + // DeleteClusterError indicates that an error was encountered + // when trying to delete the cluster. + DeleteClusterError ClusterStatusError = "DeleteError" +) + +type MachineSetStatusError string + +const ( + // Represents that the combination of configuration in the MachineTemplateSpec + // is not supported by this cluster. This is not a transient error, but + // indicates a state that must be fixed before progress can be made. + // + // Example: the ProviderSpec specifies an instance type that doesn't exist. + InvalidConfigurationMachineSetError MachineSetStatusError = "InvalidConfiguration" +) + +type MachineDeploymentStrategyType string + +const ( + // Replace the old MachineSet by new one using rolling update + // i.e. gradually scale down the old MachineSet and scale up the new one. + RollingUpdateMachineDeploymentStrategyType MachineDeploymentStrategyType = "RollingUpdate" +) diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/common/plugins.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/common/plugins.go new file mode 100644 index 00000000000..8c2083d88c0 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/common/plugins.go @@ -0,0 +1,51 @@ +/* +Copyright 2018 The Kubernetes 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 common + +import ( + "sync" + + "github.com/pkg/errors" + "k8s.io/klog" +) + +var ( + providersMutex sync.Mutex + providers = make(map[string]interface{}) +) + +// RegisterClusterProvisioner registers a ClusterProvisioner by name. This +// is expected to happen during app startup. +func RegisterClusterProvisioner(name string, provisioner interface{}) { + providersMutex.Lock() + defer providersMutex.Unlock() + if _, found := providers[name]; found { + klog.Fatalf("Cluster provisioner %q was registered twice", name) + } + klog.V(1).Infof("Registered cluster provisioner %q", name) + providers[name] = provisioner +} + +func ClusterProvisioner(name string) (interface{}, error) { + providersMutex.Lock() + defer providersMutex.Unlock() + provisioner, found := providers[name] + if !found { + return nil, errors.Errorf("unable to find provisioner for %s", name) + } + return provisioner, nil +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/cluster_types.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/cluster_types.go new file mode 100644 index 00000000000..2129cdaa7dc --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/cluster_types.go @@ -0,0 +1,164 @@ +/* +Copyright 2018 The Kubernetes 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 v1alpha1 + +import ( + "github.com/openshift/cluster-api/pkg/apis/cluster/common" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" +) + +const ClusterFinalizer = "cluster.cluster.k8s.io" + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +/// [Cluster] +// Cluster is the Schema for the clusters API +// +k8s:openapi-gen=true +// +kubebuilder:subresource:status +type Cluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec ClusterSpec `json:"spec,omitempty"` + Status ClusterStatus `json:"status,omitempty"` +} + +/// [Cluster] + +/// [ClusterSpec] +// ClusterSpec defines the desired state of Cluster +type ClusterSpec struct { + // Cluster network configuration + ClusterNetwork ClusterNetworkingConfig `json:"clusterNetwork"` + + // Provider-specific serialized configuration to use during + // cluster creation. It is recommended that providers maintain + // their own versioned API types that should be + // serialized/deserialized from this field. + // +optional + ProviderSpec ProviderSpec `json:"providerSpec,omitempty"` +} + +/// [ClusterSpec] + +/// [ClusterNetworkingConfig] +// ClusterNetworkingConfig specifies the different networking +// parameters for a cluster. +type ClusterNetworkingConfig struct { + // The network ranges from which service VIPs are allocated. + Services NetworkRanges `json:"services"` + + // The network ranges from which Pod networks are allocated. + Pods NetworkRanges `json:"pods"` + + // Domain name for services. + ServiceDomain string `json:"serviceDomain"` +} + +/// [ClusterNetworkingConfig] + +/// [NetworkRanges] +// NetworkRanges represents ranges of network addresses. +type NetworkRanges struct { + CIDRBlocks []string `json:"cidrBlocks"` +} + +/// [NetworkRanges] + +/// [ClusterStatus] +// ClusterStatus defines the observed state of Cluster +type ClusterStatus struct { + // APIEndpoint represents the endpoint to communicate with the IP. + // +optional + APIEndpoints []APIEndpoint `json:"apiEndpoints,omitempty"` + + // NB: Eventually we will redefine ErrorReason as ClusterStatusError once the + // following issue is fixed. + // https://github.com/kubernetes-incubator/apiserver-builder/issues/176 + + // If set, indicates that there is a problem reconciling the + // state, and will be set to a token value suitable for + // programmatic interpretation. + // +optional + ErrorReason common.ClusterStatusError `json:"errorReason,omitempty"` + + // If set, indicates that there is a problem reconciling the + // state, and will be set to a descriptive error message. + // +optional + ErrorMessage string `json:"errorMessage,omitempty"` + + // Provider-specific status. + // It is recommended that providers maintain their + // own versioned API types that should be + // serialized/deserialized from this field. + // +optional + ProviderStatus *runtime.RawExtension `json:"providerStatus,omitempty"` +} + +/// [ClusterStatus] + +/// [APIEndpoint] +// APIEndpoint represents a reachable Kubernetes API endpoint. +type APIEndpoint struct { + // The hostname on which the API server is serving. + Host string `json:"host"` + + // The port on which the API server is serving. + Port int `json:"port"` +} + +/// [APIEndpoint] + +func (o *Cluster) Validate() field.ErrorList { + errors := field.ErrorList{} + // perform validation here and add to errors using field.Invalid + if o.Spec.ClusterNetwork.ServiceDomain == "" { + errors = append(errors, field.Invalid( + field.NewPath("Spec", "ClusterNetwork", "ServiceDomain"), + o.Spec.ClusterNetwork.ServiceDomain, + "invalid cluster configuration: missing Cluster.Spec.ClusterNetwork.ServiceDomain")) + } + if len(o.Spec.ClusterNetwork.Pods.CIDRBlocks) == 0 { + errors = append(errors, field.Invalid( + field.NewPath("Spec", "ClusterNetwork", "Pods"), + o.Spec.ClusterNetwork.Pods, + "invalid cluster configuration: missing Cluster.Spec.ClusterNetwork.Pods")) + } + if len(o.Spec.ClusterNetwork.Services.CIDRBlocks) == 0 { + errors = append(errors, field.Invalid( + field.NewPath("Spec", "ClusterNetwork", "Services"), + o.Spec.ClusterNetwork.Services, + "invalid cluster configuration: missing Cluster.Spec.ClusterNetwork.Services")) + } + return errors +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ClusterList contains a list of Cluster +type ClusterList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Cluster `json:"items"` +} + +func init() { + SchemeBuilder.Register(&Cluster{}, &ClusterList{}) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/common_types.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/common_types.go new file mode 100644 index 00000000000..7a9c647fe29 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/common_types.go @@ -0,0 +1,58 @@ +/* +Copyright 2018 The Kubernetes 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 v1alpha1 + +import ( + corev1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// ProviderSpec defines the configuration to use during node creation. +type ProviderSpec struct { + + // No more than one of the following may be specified. + + // Value is an inlined, serialized representation of the resource + // configuration. It is recommended that providers maintain their own + // versioned API types that should be serialized/deserialized from this + // field, akin to component config. + // +optional + Value *runtime.RawExtension `json:"value,omitempty"` + + // Source for the provider configuration. Cannot be used if value is + // not empty. + // +optional + ValueFrom *ProviderSpecSource `json:"valueFrom,omitempty"` +} + +// ProviderSpecSource represents a source for the provider-specific +// resource configuration. +type ProviderSpecSource struct { + // The machine class from which the provider config should be sourced. + // +optional + MachineClass *MachineClassRef `json:"machineClass,omitempty"` +} + +// MachineClassRef is a reference to the MachineClass object. Controllers should find the right MachineClass using this reference. +type MachineClassRef struct { + // +optional + *corev1.ObjectReference `json:",inline"` + + // Provider is the name of the cloud-provider which MachineClass is intended for. + // +optional + Provider string `json:"provider,omitempty"` +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/doc.go new file mode 100644 index 00000000000..269c574e93f --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/doc.go @@ -0,0 +1,23 @@ +/* +Copyright 2018 The Kubernetes 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 v1alpha1 contains API Schema definitions for the cluster v1alpha1 API group +// +k8s:openapi-gen=true +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/openshift/cluster-api/pkg/apis/cluster +// +k8s:defaulter-gen=TypeMeta +// +groupName=cluster.k8s.io +package v1alpha1 diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/register.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/register.go new file mode 100644 index 00000000000..7cc7d926dde --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/register.go @@ -0,0 +1,49 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// NOTE: Boilerplate only. Ignore this file. + +// Package v1alpha1 contains API Schema definitions for the cluster v1alpha1 API group +// +k8s:openapi-gen=true +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/openshift/cluster-api/pkg/apis/cluster +// +k8s:defaulter-gen=TypeMeta +// +groupName=cluster.k8s.io +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // SchemeGroupVersion is group version used to register these objects. + SchemeGroupVersion = schema.GroupVersion{Group: "cluster.k8s.io", Version: "v1alpha1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme. + SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} + + // AddToScheme adds registered types to the builder. + // Required by pkg/client/... + // TODO(pwittrock): Remove this after removing pkg/client/... + AddToScheme = SchemeBuilder.AddToScheme +) + +// Required by pkg/client/listers/... +// TODO(pwittrock): Remove this after removing pkg/client/... +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/zz_generated.deepcopy.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 00000000000..8854f863bac --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,254 @@ +// +build !ignore_autogenerated + +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by main. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIEndpoint. +func (in *APIEndpoint) DeepCopy() *APIEndpoint { + if in == nil { + return nil + } + out := new(APIEndpoint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Cluster) DeepCopyInto(out *Cluster) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster. +func (in *Cluster) DeepCopy() *Cluster { + if in == nil { + return nil + } + out := new(Cluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Cluster) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterList) DeepCopyInto(out *ClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Cluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList. +func (in *ClusterList) DeepCopy() *ClusterList { + if in == nil { + return nil + } + out := new(ClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterNetworkingConfig) DeepCopyInto(out *ClusterNetworkingConfig) { + *out = *in + in.Services.DeepCopyInto(&out.Services) + in.Pods.DeepCopyInto(&out.Pods) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetworkingConfig. +func (in *ClusterNetworkingConfig) DeepCopy() *ClusterNetworkingConfig { + if in == nil { + return nil + } + out := new(ClusterNetworkingConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { + *out = *in + in.ClusterNetwork.DeepCopyInto(&out.ClusterNetwork) + in.ProviderSpec.DeepCopyInto(&out.ProviderSpec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec. +func (in *ClusterSpec) DeepCopy() *ClusterSpec { + if in == nil { + return nil + } + out := new(ClusterSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus) { + *out = *in + if in.APIEndpoints != nil { + in, out := &in.APIEndpoints, &out.APIEndpoints + *out = make([]APIEndpoint, len(*in)) + copy(*out, *in) + } + if in.ProviderStatus != nil { + in, out := &in.ProviderStatus, &out.ProviderStatus + *out = new(runtime.RawExtension) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus. +func (in *ClusterStatus) DeepCopy() *ClusterStatus { + if in == nil { + return nil + } + out := new(ClusterStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineClassRef) DeepCopyInto(out *MachineClassRef) { + *out = *in + if in.ObjectReference != nil { + in, out := &in.ObjectReference, &out.ObjectReference + *out = new(v1.ObjectReference) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineClassRef. +func (in *MachineClassRef) DeepCopy() *MachineClassRef { + if in == nil { + return nil + } + out := new(MachineClassRef) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkRanges) DeepCopyInto(out *NetworkRanges) { + *out = *in + if in.CIDRBlocks != nil { + in, out := &in.CIDRBlocks, &out.CIDRBlocks + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkRanges. +func (in *NetworkRanges) DeepCopy() *NetworkRanges { + if in == nil { + return nil + } + out := new(NetworkRanges) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderSpec) DeepCopyInto(out *ProviderSpec) { + *out = *in + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(runtime.RawExtension) + (*in).DeepCopyInto(*out) + } + if in.ValueFrom != nil { + in, out := &in.ValueFrom, &out.ValueFrom + *out = new(ProviderSpecSource) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderSpec. +func (in *ProviderSpec) DeepCopy() *ProviderSpec { + if in == nil { + return nil + } + out := new(ProviderSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderSpecSource) DeepCopyInto(out *ProviderSpecSource) { + *out = *in + if in.MachineClass != nil { + in, out := &in.MachineClass, &out.MachineClass + *out = new(MachineClassRef) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderSpecSource. +func (in *ProviderSpecSource) DeepCopy() *ProviderSpecSource { + if in == nil { + return nil + } + out := new(ProviderSpecSource) + in.DeepCopyInto(out) + return out +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/common/consts.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/common/consts.go new file mode 100644 index 00000000000..dfa87062d97 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/common/consts.go @@ -0,0 +1,121 @@ +/* +Copyright 2018 The Kubernetes 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 common + +// Constants aren't automatically generated for unversioned packages. +// Instead share the same constant for all versioned packages +type MachineStatusError string + +const ( + // Represents that the combination of configuration in the MachineSpec + // is not supported by this cluster. This is not a transient error, but + // indicates a state that must be fixed before progress can be made. + // + // Example: the ProviderSpec specifies an instance type that doesn't exist, + InvalidConfigurationMachineError MachineStatusError = "InvalidConfiguration" + + // This indicates that the MachineSpec has been updated in a way that + // is not supported for reconciliation on this cluster. The spec may be + // completely valid from a configuration standpoint, but the controller + // does not support changing the real world state to match the new + // spec. + // + // Example: the responsible controller is not capable of changing the + // container runtime from docker to rkt. + UnsupportedChangeMachineError MachineStatusError = "UnsupportedChange" + + // This generally refers to exceeding one's quota in a cloud provider, + // or running out of physical machines in an on-premise environment. + InsufficientResourcesMachineError MachineStatusError = "InsufficientResources" + + // There was an error while trying to create a Node to match this + // Machine. This may indicate a transient problem that will be fixed + // automatically with time, such as a service outage, or a terminal + // error during creation that doesn't match a more specific + // MachineStatusError value. + // + // Example: timeout trying to connect to GCE. + CreateMachineError MachineStatusError = "CreateError" + + // There was an error while trying to update a Node that this + // Machine represents. This may indicate a transient problem that will be + // fixed automatically with time, such as a service outage, + // + // Example: error updating load balancers + UpdateMachineError MachineStatusError = "UpdateError" + + // An error was encountered while trying to delete the Node that this + // Machine represents. This could be a transient or terminal error, but + // will only be observable if the provider's Machine controller has + // added a finalizer to the object to more gracefully handle deletions. + // + // Example: cannot resolve EC2 IP address. + DeleteMachineError MachineStatusError = "DeleteError" + + // This error indicates that the machine did not join the cluster + // as a new node within the expected timeframe after instance + // creation at the provider succeeded + // + // Example use case: A controller that deletes Machines which do + // not result in a Node joining the cluster within a given timeout + // and that are managed by a MachineSet + JoinClusterTimeoutMachineError = "JoinClusterTimeoutError" +) + +type ClusterStatusError string + +const ( + // InvalidConfigurationClusterError indicates that the cluster + // configuration is invalid. + InvalidConfigurationClusterError ClusterStatusError = "InvalidConfiguration" + + // UnsupportedChangeClusterError indicates that the cluster + // spec has been updated in an unsupported way. That cannot be + // reconciled. + UnsupportedChangeClusterError ClusterStatusError = "UnsupportedChange" + + // CreateClusterError indicates that an error was encountered + // when trying to create the cluster. + CreateClusterError ClusterStatusError = "CreateError" + + // UpdateClusterError indicates that an error was encountered + // when trying to update the cluster. + UpdateClusterError ClusterStatusError = "UpdateError" + + // DeleteClusterError indicates that an error was encountered + // when trying to delete the cluster. + DeleteClusterError ClusterStatusError = "DeleteError" +) + +type MachineSetStatusError string + +const ( + // Represents that the combination of configuration in the MachineTemplateSpec + // is not supported by this cluster. This is not a transient error, but + // indicates a state that must be fixed before progress can be made. + // + // Example: the ProviderSpec specifies an instance type that doesn't exist. + InvalidConfigurationMachineSetError MachineSetStatusError = "InvalidConfiguration" +) + +type MachineDeploymentStrategyType string + +const ( + // Replace the old MachineSet by new one using rolling update + // i.e. gradually scale down the old MachineSet and scale up the new one. + RollingUpdateMachineDeploymentStrategyType MachineDeploymentStrategyType = "RollingUpdate" +) diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/common/plugins.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/common/plugins.go new file mode 100644 index 00000000000..8c2083d88c0 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/common/plugins.go @@ -0,0 +1,51 @@ +/* +Copyright 2018 The Kubernetes 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 common + +import ( + "sync" + + "github.com/pkg/errors" + "k8s.io/klog" +) + +var ( + providersMutex sync.Mutex + providers = make(map[string]interface{}) +) + +// RegisterClusterProvisioner registers a ClusterProvisioner by name. This +// is expected to happen during app startup. +func RegisterClusterProvisioner(name string, provisioner interface{}) { + providersMutex.Lock() + defer providersMutex.Unlock() + if _, found := providers[name]; found { + klog.Fatalf("Cluster provisioner %q was registered twice", name) + } + klog.V(1).Infof("Registered cluster provisioner %q", name) + providers[name] = provisioner +} + +func ClusterProvisioner(name string) (interface{}, error) { + providersMutex.Lock() + defer providersMutex.Unlock() + provisioner, found := providers[name] + if !found { + return nil, errors.Errorf("unable to find provisioner for %s", name) + } + return provisioner, nil +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/common_types.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/common_types.go new file mode 100644 index 00000000000..5ee990c9f21 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/common_types.go @@ -0,0 +1,34 @@ +/* +Copyright 2018 The Kubernetes 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 v1beta1 + +import ( + "k8s.io/apimachinery/pkg/runtime" +) + +// ProviderSpec defines the configuration to use during node creation. +type ProviderSpec struct { + + // No more than one of the following may be specified. + + // Value is an inlined, serialized representation of the resource + // configuration. It is recommended that providers maintain their own + // versioned API types that should be serialized/deserialized from this + // field, akin to component config. + // +optional + Value *runtime.RawExtension `json:"value,omitempty"` +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/defaults.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/defaults.go new file mode 100644 index 00000000000..354cfa3f6ea --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/defaults.go @@ -0,0 +1,74 @@ +/* +Copyright 2018 The Kubernetes 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 v1beta1 + +import ( + "github.com/openshift/cluster-api/pkg/apis/machine/common" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" +) + +// PopulateDefaultsMachineDeployment fills in default field values +// Currently it is called after reading objects, but it could be called in an admission webhook also +func PopulateDefaultsMachineDeployment(d *MachineDeployment) { + if d.Spec.Replicas == nil { + d.Spec.Replicas = new(int32) + *d.Spec.Replicas = 1 + } + + if d.Spec.MinReadySeconds == nil { + d.Spec.MinReadySeconds = new(int32) + *d.Spec.MinReadySeconds = 0 + } + + if d.Spec.RevisionHistoryLimit == nil { + d.Spec.RevisionHistoryLimit = new(int32) + *d.Spec.RevisionHistoryLimit = 1 + } + + if d.Spec.ProgressDeadlineSeconds == nil { + d.Spec.ProgressDeadlineSeconds = new(int32) + *d.Spec.ProgressDeadlineSeconds = 600 + } + + if d.Spec.Strategy == nil { + d.Spec.Strategy = &MachineDeploymentStrategy{} + } + + if d.Spec.Strategy.Type == "" { + d.Spec.Strategy.Type = common.RollingUpdateMachineDeploymentStrategyType + } + + // Default RollingUpdate strategy only if strategy type is RollingUpdate. + if d.Spec.Strategy.Type == common.RollingUpdateMachineDeploymentStrategyType { + if d.Spec.Strategy.RollingUpdate == nil { + d.Spec.Strategy.RollingUpdate = &MachineRollingUpdateDeployment{} + } + if d.Spec.Strategy.RollingUpdate.MaxSurge == nil { + ios1 := intstr.FromInt(1) + d.Spec.Strategy.RollingUpdate.MaxSurge = &ios1 + } + if d.Spec.Strategy.RollingUpdate.MaxUnavailable == nil { + ios0 := intstr.FromInt(0) + d.Spec.Strategy.RollingUpdate.MaxUnavailable = &ios0 + } + } + + if len(d.Namespace) == 0 { + d.Namespace = metav1.NamespaceDefault + } +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/doc.go new file mode 100644 index 00000000000..349faed081f --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/doc.go @@ -0,0 +1,23 @@ +/* +Copyright 2018 The Kubernetes 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 v1beta1 contains API Schema definitions for the machine v1beta1 API group +// +k8s:openapi-gen=true +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/openshift/cluster-api/pkg/apis/machine +// +k8s:defaulter-gen=TypeMeta +// +groupName=machine.openshift.io +package v1beta1 diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machine_types.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machine_types.go new file mode 100644 index 00000000000..a2e94a217bd --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machine_types.go @@ -0,0 +1,225 @@ +/* +Copyright 2018 The Kubernetes 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 v1beta1 + +import ( + "fmt" + + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" + + "github.com/openshift/cluster-api/pkg/apis/machine/common" +) + +const ( + // MachineFinalizer is set on PrepareForCreate callback. + MachineFinalizer = "machine.machine.openshift.io" + + // MachineClusterLabelName is the label set on machines linked to a cluster. + MachineClusterLabelName = "cluster.k8s.io/cluster-name" + + // MachineClusterIDLabel is the label that a machine must have to identify the + // cluster to which it belongs. + MachineClusterIDLabel = "machine.openshift.io/cluster-api-cluster" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +/// [Machine] +// Machine is the Schema for the machines API +// +k8s:openapi-gen=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="Phase of machine" +// +kubebuilder:printcolumn:name="Type",type="string",JSONPath=".metadata.labels['machine\\.openshift\\.io/instance-type']",description="Type of instance" +// +kubebuilder:printcolumn:name="Region",type="string",JSONPath=".metadata.labels['machine\\.openshift\\.io/region']",description="Region associated with machine" +// +kubebuilder:printcolumn:name="Zone",type="string",JSONPath=".metadata.labels['machine\\.openshift\\.io/zone']",description="Zone associated with machine" +// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Machine age" +// +kubebuilder:printcolumn:name="Node",type="string",JSONPath=".status.nodeRef.name",description="Node associated with machine",priority=1 +// +kubebuilder:printcolumn:name="ProviderID",type="string",JSONPath=".spec.providerID",description="Provider ID of machine created in cloud provider",priority=1 +// +kubebuilder:printcolumn:name="State",type="string",JSONPath=".metadata.annotations['machine\\.openshift\\.io/instance-state']",description="State of instance",priority=1 +type Machine struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec MachineSpec `json:"spec,omitempty"` + Status MachineStatus `json:"status,omitempty"` +} + +/// [Machine] + +/// [MachineSpec] +// MachineSpec defines the desired state of Machine +type MachineSpec struct { + // ObjectMeta will autopopulate the Node created. Use this to + // indicate what labels, annotations, name prefix, etc., should be used + // when creating the Node. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty"` + + // The list of the taints to be applied to the corresponding Node in additive + // manner. This list will not overwrite any other taints added to the Node on + // an ongoing basis by other entities. These taints should be actively reconciled + // e.g. if you ask the machine controller to apply a taint and then manually remove + // the taint the machine controller will put it back) but not have the machine controller + // remove any taints + // +optional + Taints []corev1.Taint `json:"taints,omitempty"` + + // ProviderSpec details Provider-specific configuration to use during node creation. + // +optional + ProviderSpec ProviderSpec `json:"providerSpec"` + + // ProviderID is the identification ID of the machine provided by the provider. + // This field must match the provider ID as seen on the node object corresponding to this machine. + // This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler + // with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out + // machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a + // generic out-of-tree provider for autoscaler, this field is required by autoscaler to be + // able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver + // and then a comparison is done to find out unregistered machines and are marked for delete. + // This field will be set by the actuators and consumed by higher level entities like autoscaler that will + // be interfacing with cluster-api as generic provider. + // +optional + ProviderID *string `json:"providerID,omitempty"` +} + +/// [MachineSpec] + +/// [MachineStatus] +// MachineStatus defines the observed state of Machine +type MachineStatus struct { + // NodeRef will point to the corresponding Node if it exists. + // +optional + NodeRef *corev1.ObjectReference `json:"nodeRef,omitempty"` + + // LastUpdated identifies when this status was last observed. + // +optional + LastUpdated *metav1.Time `json:"lastUpdated,omitempty"` + + // ErrorReason will be set in the event that there is a terminal problem + // reconciling the Machine and will contain a succinct value suitable + // for machine interpretation. + // + // This field should not be set for transitive errors that a controller + // faces that are expected to be fixed automatically over + // time (like service outages), but instead indicate that something is + // fundamentally wrong with the Machine's spec or the configuration of + // the controller, and that manual intervention is required. Examples + // of terminal errors would be invalid combinations of settings in the + // spec, values that are unsupported by the controller, or the + // responsible controller itself being critically misconfigured. + // + // Any transient errors that occur during the reconciliation of Machines + // can be added as events to the Machine object and/or logged in the + // controller's output. + // +optional + ErrorReason *common.MachineStatusError `json:"errorReason,omitempty"` + + // ErrorMessage will be set in the event that there is a terminal problem + // reconciling the Machine and will contain a more verbose string suitable + // for logging and human consumption. + // + // This field should not be set for transitive errors that a controller + // faces that are expected to be fixed automatically over + // time (like service outages), but instead indicate that something is + // fundamentally wrong with the Machine's spec or the configuration of + // the controller, and that manual intervention is required. Examples + // of terminal errors would be invalid combinations of settings in the + // spec, values that are unsupported by the controller, or the + // responsible controller itself being critically misconfigured. + // + // Any transient errors that occur during the reconciliation of Machines + // can be added as events to the Machine object and/or logged in the + // controller's output. + // +optional + ErrorMessage *string `json:"errorMessage,omitempty"` + + // ProviderStatus details a Provider-specific status. + // It is recommended that providers maintain their + // own versioned API types that should be + // serialized/deserialized from this field. + // +optional + ProviderStatus *runtime.RawExtension `json:"providerStatus,omitempty"` + + // Addresses is a list of addresses assigned to the machine. Queried from cloud provider, if available. + // +optional + Addresses []corev1.NodeAddress `json:"addresses,omitempty"` + + // LastOperation describes the last-operation performed by the machine-controller. + // This API should be useful as a history in terms of the latest operation performed on the + // specific machine. It should also convey the state of the latest-operation for example if + // it is still on-going, failed or completed successfully. + // +optional + LastOperation *LastOperation `json:"lastOperation,omitempty"` + + // Phase represents the current phase of machine actuation. + // E.g. Pending, Running, Terminating, Failed etc. + // +optional + Phase *string `json:"phase,omitempty"` +} + +// LastOperation represents the detail of the last performed operation on the MachineObject. +type LastOperation struct { + // Description is the human-readable description of the last operation. + Description *string `json:"description,omitempty"` + + // LastUpdated is the timestamp at which LastOperation API was last-updated. + LastUpdated *metav1.Time `json:"lastUpdated,omitempty"` + + // State is the current status of the last performed operation. + // E.g. Processing, Failed, Successful etc + State *string `json:"state,omitempty"` + + // Type is the type of operation which was last performed. + // E.g. Create, Delete, Update etc + Type *string `json:"type,omitempty"` +} + +/// [MachineVersionInfo] + +func (m *Machine) Validate() field.ErrorList { + errors := field.ErrorList{} + + // validate spec.labels + fldPath := field.NewPath("spec") + if m.Labels[MachineClusterIDLabel] == "" { + errors = append(errors, field.Invalid(fldPath.Child("labels"), m.Labels, fmt.Sprintf("missing %v label.", MachineClusterIDLabel))) + } + + // validate provider config is set + if m.Spec.ProviderSpec.Value == nil { + errors = append(errors, field.Invalid(fldPath.Child("spec").Child("providerspec"), m.Spec.ProviderSpec, "value field must be set")) + } + + return errors +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineList contains a list of Machine +type MachineList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Machine `json:"items"` +} + +func init() { + SchemeBuilder.Register(&Machine{}, &MachineList{}) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machineclass_types.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machineclass_types.go new file mode 100644 index 00000000000..85a1ea37d0e --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machineclass_types.go @@ -0,0 +1,78 @@ +/* +Copyright 2018 The Kubernetes 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 v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +// +genclient +// +genclient:noStatus +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +/// [MachineClass] +// MachineClass can be used to templatize and re-use provider configuration +// across multiple Machines / MachineSets / MachineDeployments. +// +k8s:openapi-gen=true +// +resource:path=machineclasses +type MachineClass struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ObjectMeta `json:"metadata,omitempty"` + + // The total capacity available on this machine type (cpu/memory/disk). + // + // WARNING: It is up to the creator of the MachineClass to ensure that + // this field is consistent with the underlying machine that will + // be provisioned when this class is used, to inform higher level + // automation (e.g. the cluster autoscaler). + // TODO(hardikdr) Add allocatable field once requirements are clear from autoscaler-clusterapi // integration topic. + // Capacity corev1.ResourceList `json:"capacity"` + + // How much capacity is actually allocatable on this machine. + // Must be equal to or less than the capacity, and when less + // indicates the resources reserved for system overhead. + // + // WARNING: It is up to the creator of the MachineClass to ensure that + // this field is consistent with the underlying machine that will + // be provisioned when this class is used, to inform higher level + // automation (e.g. the cluster autoscaler). + // TODO(hardikdr) Add allocatable field once requirements are clear from autoscaler-clusterapi // integration topic. + // Allocatable corev1.ResourceList `json:"allocatable"` + + // Provider-specific configuration to use during node creation. + ProviderSpec runtime.RawExtension `json:"providerSpec"` + + // TODO: should this use an api.ObjectReference to a 'MachineTemplate' instead? + // A link to the MachineTemplate that will be used to create provider + // specific configuration for Machines of this class. + // MachineTemplate corev1.ObjectReference `json:machineTemplate` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineClassList contains a list of MachineClasses +type MachineClassList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []MachineClass `json:"items"` +} + +func init() { + SchemeBuilder.Register(&MachineClass{}, &MachineClassList{}) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machinedeployment_types.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machinedeployment_types.go new file mode 100644 index 00000000000..8e892ecc07f --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machinedeployment_types.go @@ -0,0 +1,194 @@ +/* +Copyright 2018 The Kubernetes 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 v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" + + "github.com/openshift/cluster-api/pkg/apis/machine/common" +) + +/// [MachineDeploymentSpec] +// MachineDeploymentSpec defines the desired state of MachineDeployment +type MachineDeploymentSpec struct { + // Number of desired machines. Defaults to 1. + // This is a pointer to distinguish between explicit zero and not specified. + Replicas *int32 `json:"replicas,omitempty"` + + // Label selector for machines. Existing MachineSets whose machines are + // selected by this will be the ones affected by this deployment. + // It must match the machine template's labels. + Selector metav1.LabelSelector `json:"selector"` + + // Template describes the machines that will be created. + Template MachineTemplateSpec `json:"template"` + + // The deployment strategy to use to replace existing machines with + // new ones. + // +optional + Strategy *MachineDeploymentStrategy `json:"strategy,omitempty"` + + // Minimum number of seconds for which a newly created machine should + // be ready. + // Defaults to 0 (machine will be considered available as soon as it + // is ready) + // +optional + MinReadySeconds *int32 `json:"minReadySeconds,omitempty"` + + // The number of old MachineSets to retain to allow rollback. + // This is a pointer to distinguish between explicit zero and not specified. + // Defaults to 1. + // +optional + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` + + // Indicates that the deployment is paused. + // +optional + Paused bool `json:"paused,omitempty"` + + // The maximum time in seconds for a deployment to make progress before it + // is considered to be failed. The deployment controller will continue to + // process failed deployments and a condition with a ProgressDeadlineExceeded + // reason will be surfaced in the deployment status. Note that progress will + // not be estimated during the time a deployment is paused. Defaults to 600s. + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` +} + +/// [MachineDeploymentSpec] + +/// [MachineDeploymentStrategy] +// MachineDeploymentStrategy describes how to replace existing machines +// with new ones. +type MachineDeploymentStrategy struct { + // Type of deployment. Currently the only supported strategy is + // "RollingUpdate". + // Default is RollingUpdate. + // +optional + Type common.MachineDeploymentStrategyType `json:"type,omitempty"` + + // Rolling update config params. Present only if + // MachineDeploymentStrategyType = RollingUpdate. + // +optional + RollingUpdate *MachineRollingUpdateDeployment `json:"rollingUpdate,omitempty"` +} + +/// [MachineDeploymentStrategy] + +/// [MachineRollingUpdateDeployment] +// Spec to control the desired behavior of rolling update. +type MachineRollingUpdateDeployment struct { + // The maximum number of machines that can be unavailable during the update. + // Value can be an absolute number (ex: 5) or a percentage of desired + // machines (ex: 10%). + // Absolute number is calculated from percentage by rounding down. + // This can not be 0 if MaxSurge is 0. + // Defaults to 0. + // Example: when this is set to 30%, the old MachineSet can be scaled + // down to 70% of desired machines immediately when the rolling update + // starts. Once new machines are ready, old MachineSet can be scaled + // down further, followed by scaling up the new MachineSet, ensuring + // that the total number of machines available at all times + // during the update is at least 70% of desired machines. + // +optional + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,1,opt,name=maxUnavailable"` + + // The maximum number of machines that can be scheduled above the + // desired number of machines. + // Value can be an absolute number (ex: 5) or a percentage of + // desired machines (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up. + // Defaults to 1. + // Example: when this is set to 30%, the new MachineSet can be scaled + // up immediately when the rolling update starts, such that the total + // number of old and new machines do not exceed 130% of desired + // machines. Once old machines have been killed, new MachineSet can + // be scaled up further, ensuring that total number of machines running + // at any time during the update is at most 130% of desired machines. + // +optional + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` +} + +/// [MachineRollingUpdateDeployment] + +/// [MachineDeploymentStatus] +// MachineDeploymentStatus defines the observed state of MachineDeployment +type MachineDeploymentStatus struct { + // The generation observed by the deployment controller. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // Total number of non-terminated machines targeted by this deployment + // (their labels match the selector). + // +optional + Replicas int32 `json:"replicas,omitempty" protobuf:"varint,2,opt,name=replicas"` + + // Total number of non-terminated machines targeted by this deployment + // that have the desired template spec. + // +optional + UpdatedReplicas int32 `json:"updatedReplicas,omitempty" protobuf:"varint,3,opt,name=updatedReplicas"` + + // Total number of ready machines targeted by this deployment. + // +optional + ReadyReplicas int32 `json:"readyReplicas,omitempty" protobuf:"varint,7,opt,name=readyReplicas"` + + // Total number of available machines (ready for at least minReadySeconds) + // targeted by this deployment. + // +optional + AvailableReplicas int32 `json:"availableReplicas,omitempty" protobuf:"varint,4,opt,name=availableReplicas"` + + // Total number of unavailable machines targeted by this deployment. + // This is the total number of machines that are still required for + // the deployment to have 100% available capacity. They may either + // be machines that are running but not yet available or machines + // that still have not been created. + // +optional + UnavailableReplicas int32 `json:"unavailableReplicas,omitempty" protobuf:"varint,5,opt,name=unavailableReplicas"` +} + +/// [MachineDeploymentStatus] + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +/// [MachineDeployment] +// MachineDeployment is the Schema for the machinedeployments API +// +k8s:openapi-gen=true +// +kubebuilder:subresource:status +// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.labelSelector +type MachineDeployment struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec MachineDeploymentSpec `json:"spec,omitempty"` + Status MachineDeploymentStatus `json:"status,omitempty"` +} + +/// [MachineDeployment] + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineDeploymentList contains a list of MachineDeployment +type MachineDeploymentList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []MachineDeployment `json:"items"` +} + +func init() { + SchemeBuilder.Register(&MachineDeployment{}, &MachineDeploymentList{}) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machineset_types.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machineset_types.go new file mode 100644 index 00000000000..065aa5932dc --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/machineset_types.go @@ -0,0 +1,227 @@ +/* +Copyright 2018 The Kubernetes 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 v1beta1 + +import ( + "log" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1validation "k8s.io/apimachinery/pkg/apis/meta/v1/validation" + + "github.com/openshift/cluster-api/pkg/apis/machine/common" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/validation/field" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +/// [MachineSet] +// MachineSet ensures that a specified number of machines replicas are running at any given time. +// +k8s:openapi-gen=true +// +kubebuilder:subresource:status +// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.labelSelector +// +kubebuilder:printcolumn:name="Desired",type="integer",JSONPath=".spec.replicas",description="Desired Replicas" +// +kubebuilder:printcolumn:name="Current",type="integer",JSONPath=".status.replicas",description="Current Replicas" +// +kubebuilder:printcolumn:name="Ready",type="integer",JSONPath=".status.readyReplicas",description="Ready Replicas" +// +kubebuilder:printcolumn:name="Available",type="string",JSONPath=".status.availableReplicas",description="Observed number of available replicas" +// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Machineset age" +type MachineSet struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec MachineSetSpec `json:"spec,omitempty"` + Status MachineSetStatus `json:"status,omitempty"` +} + +/// [MachineSet] + +/// [MachineSetSpec] +// MachineSetSpec defines the desired state of MachineSet +type MachineSetSpec struct { + // Replicas is the number of desired replicas. + // This is a pointer to distinguish between explicit zero and unspecified. + // Defaults to 1. + // +optional + Replicas *int32 `json:"replicas,omitempty"` + + // MinReadySeconds is the minimum number of seconds for which a newly created machine should be ready. + // Defaults to 0 (machine will be considered available as soon as it is ready) + // +optional + MinReadySeconds int32 `json:"minReadySeconds,omitempty"` + + // DeletePolicy defines the policy used to identify nodes to delete when downscaling. + // Defaults to "Random". Valid values are "Random, "Newest", "Oldest" + // +kubebuilder:validation:Enum=Random;Newest;Oldest + DeletePolicy string `json:"deletePolicy,omitempty"` + + // Selector is a label query over machines that should match the replica count. + // Label keys and values that must match in order to be controlled by this MachineSet. + // It must match the machine template's labels. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + Selector metav1.LabelSelector `json:"selector"` + + // Template is the object that describes the machine that will be created if + // insufficient replicas are detected. + // +optional + Template MachineTemplateSpec `json:"template,omitempty"` +} + +// MachineSetDeletePolicy defines how priority is assigned to nodes to delete when +// downscaling a MachineSet. Defaults to "Random". +type MachineSetDeletePolicy string + +const ( + // RandomMachineSetDeletePolicy prioritizes both Machines that have the annotation + // "cluster.k8s.io/delete-machine=yes" and Machines that are unhealthy + // (Status.ErrorReason or Status.ErrorMessage are set to a non-empty value). + // Finally, it picks Machines at random to delete. + RandomMachineSetDeletePolicy MachineSetDeletePolicy = "Random" + + // NewestMachineSetDeletePolicy prioritizes both Machines that have the annotation + // "cluster.k8s.io/delete-machine=yes" and Machines that are unhealthy + // (Status.ErrorReason or Status.ErrorMessage are set to a non-empty value). + // It then prioritizes the newest Machines for deletion based on the Machine's CreationTimestamp. + NewestMachineSetDeletePolicy MachineSetDeletePolicy = "Newest" + + // OldestMachineSetDeletePolicy prioritizes both Machines that have the annotation + // "cluster.k8s.io/delete-machine=yes" and Machines that are unhealthy + // (Status.ErrorReason or Status.ErrorMessage are set to a non-empty value). + // It then prioritizes the oldest Machines for deletion based on the Machine's CreationTimestamp. + OldestMachineSetDeletePolicy MachineSetDeletePolicy = "Oldest" +) + +/// [MachineSetSpec] // doxygen marker + +/// [MachineTemplateSpec] // doxygen marker +// MachineTemplateSpec describes the data needed to create a Machine from a template +type MachineTemplateSpec struct { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty"` + + // Specification of the desired behavior of the machine. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + Spec MachineSpec `json:"spec,omitempty"` +} + +/// [MachineTemplateSpec] + +/// [MachineSetStatus] +// MachineSetStatus defines the observed state of MachineSet +type MachineSetStatus struct { + // Replicas is the most recently observed number of replicas. + Replicas int32 `json:"replicas"` + + // The number of replicas that have labels matching the labels of the machine template of the MachineSet. + // +optional + FullyLabeledReplicas int32 `json:"fullyLabeledReplicas,omitempty"` + + // The number of ready replicas for this MachineSet. A machine is considered ready when the node has been created and is "Ready". + // +optional + ReadyReplicas int32 `json:"readyReplicas,omitempty"` + + // The number of available replicas (ready for at least minReadySeconds) for this MachineSet. + // +optional + AvailableReplicas int32 `json:"availableReplicas,omitempty"` + + // ObservedGeneration reflects the generation of the most recently observed MachineSet. + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty"` + + // In the event that there is a terminal problem reconciling the + // replicas, both ErrorReason and ErrorMessage will be set. ErrorReason + // will be populated with a succinct value suitable for machine + // interpretation, while ErrorMessage will contain a more verbose + // string suitable for logging and human consumption. + // + // These fields should not be set for transitive errors that a + // controller faces that are expected to be fixed automatically over + // time (like service outages), but instead indicate that something is + // fundamentally wrong with the MachineTemplate's spec or the configuration of + // the machine controller, and that manual intervention is required. Examples + // of terminal errors would be invalid combinations of settings in the + // spec, values that are unsupported by the machine controller, or the + // responsible machine controller itself being critically misconfigured. + // + // Any transient errors that occur during the reconciliation of Machines + // can be added as events to the MachineSet object and/or logged in the + // controller's output. + // +optional + ErrorReason *common.MachineSetStatusError `json:"errorReason,omitempty"` + // +optional + ErrorMessage *string `json:"errorMessage,omitempty"` +} + +/// [MachineSetStatus] + +func (m *MachineSet) Validate() field.ErrorList { + errors := field.ErrorList{} + + // validate spec.selector and spec.template.labels + fldPath := field.NewPath("spec") + errors = append(errors, metav1validation.ValidateLabelSelector(&m.Spec.Selector, fldPath.Child("selector"))...) + if len(m.Spec.Selector.MatchLabels)+len(m.Spec.Selector.MatchExpressions) == 0 { + errors = append(errors, field.Invalid(fldPath.Child("selector"), m.Spec.Selector, "empty selector is not valid for MachineSet.")) + } + selector, err := metav1.LabelSelectorAsSelector(&m.Spec.Selector) + if err != nil { + errors = append(errors, field.Invalid(fldPath.Child("selector"), m.Spec.Selector, "invalid label selector.")) + } else { + labels := labels.Set(m.Spec.Template.Labels) + if !selector.Matches(labels) { + errors = append(errors, field.Invalid(fldPath.Child("template", "metadata", "labels"), m.Spec.Template.Labels, "`selector` does not match template `labels`")) + } + } + + return errors +} + +// DefaultingFunction sets default MachineSet field values +func (m *MachineSet) Default() { + log.Printf("Defaulting fields for MachineSet %s\n", m.Name) + + if m.Spec.Replicas == nil { + m.Spec.Replicas = new(int32) + *m.Spec.Replicas = 1 + } + + if len(m.Namespace) == 0 { + m.Namespace = metav1.NamespaceDefault + } + + if m.Spec.DeletePolicy == "" { + randomPolicy := string(RandomMachineSetDeletePolicy) + log.Printf("Defaulting to %s\n", randomPolicy) + m.Spec.DeletePolicy = randomPolicy + } +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// MachineSetList contains a list of MachineSet +type MachineSetList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []MachineSet `json:"items"` +} + +func init() { + SchemeBuilder.Register(&MachineSet{}, &MachineSetList{}) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/register.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/register.go new file mode 100644 index 00000000000..9c23897ab90 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/register.go @@ -0,0 +1,49 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// NOTE: Boilerplate only. Ignore this file. + +// Package v1beta1 contains API Schema definitions for the machine v1beta1 API group +// +k8s:openapi-gen=true +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/openshift/cluster-api/pkg/apis/machine +// +k8s:defaulter-gen=TypeMeta +// +groupName=machine.openshift.io +package v1beta1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // SchemeGroupVersion is group version used to register these objects. + SchemeGroupVersion = schema.GroupVersion{Group: "machine.openshift.io", Version: "v1beta1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme. + SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} + + // AddToScheme adds registered types to the builder. + // Required by pkg/client/... + // TODO(pwittrock): Remove this after removing pkg/client/... + AddToScheme = SchemeBuilder.AddToScheme +) + +// Required by pkg/client/listers/... +// TODO(pwittrock): Remove this after removing pkg/client/... +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/zz_generated.deepcopy.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 00000000000..7efadb3df96 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/apis/machine/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,585 @@ +// +build !ignore_autogenerated + +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by main. DO NOT EDIT. + +package v1beta1 + +import ( + common "github.com/openshift/cluster-api/pkg/apis/machine/common" + v1 "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LastOperation) DeepCopyInto(out *LastOperation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LastUpdated != nil { + in, out := &in.LastUpdated, &out.LastUpdated + *out = (*in).DeepCopy() + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LastOperation. +func (in *LastOperation) DeepCopy() *LastOperation { + if in == nil { + return nil + } + out := new(LastOperation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Machine) DeepCopyInto(out *Machine) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Machine. +func (in *Machine) DeepCopy() *Machine { + if in == nil { + return nil + } + out := new(Machine) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Machine) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineClass) DeepCopyInto(out *MachineClass) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.ProviderSpec.DeepCopyInto(&out.ProviderSpec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineClass. +func (in *MachineClass) DeepCopy() *MachineClass { + if in == nil { + return nil + } + out := new(MachineClass) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineClass) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineClassList) DeepCopyInto(out *MachineClassList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]MachineClass, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineClassList. +func (in *MachineClassList) DeepCopy() *MachineClassList { + if in == nil { + return nil + } + out := new(MachineClassList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineClassList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineDeployment) DeepCopyInto(out *MachineDeployment) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineDeployment. +func (in *MachineDeployment) DeepCopy() *MachineDeployment { + if in == nil { + return nil + } + out := new(MachineDeployment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineDeployment) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineDeploymentList) DeepCopyInto(out *MachineDeploymentList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]MachineDeployment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineDeploymentList. +func (in *MachineDeploymentList) DeepCopy() *MachineDeploymentList { + if in == nil { + return nil + } + out := new(MachineDeploymentList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineDeploymentList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineDeploymentSpec) DeepCopyInto(out *MachineDeploymentSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + *out = new(int32) + **out = **in + } + in.Selector.DeepCopyInto(&out.Selector) + in.Template.DeepCopyInto(&out.Template) + if in.Strategy != nil { + in, out := &in.Strategy, &out.Strategy + *out = new(MachineDeploymentStrategy) + (*in).DeepCopyInto(*out) + } + if in.MinReadySeconds != nil { + in, out := &in.MinReadySeconds, &out.MinReadySeconds + *out = new(int32) + **out = **in + } + if in.RevisionHistoryLimit != nil { + in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit + *out = new(int32) + **out = **in + } + if in.ProgressDeadlineSeconds != nil { + in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds + *out = new(int32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineDeploymentSpec. +func (in *MachineDeploymentSpec) DeepCopy() *MachineDeploymentSpec { + if in == nil { + return nil + } + out := new(MachineDeploymentSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineDeploymentStatus) DeepCopyInto(out *MachineDeploymentStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineDeploymentStatus. +func (in *MachineDeploymentStatus) DeepCopy() *MachineDeploymentStatus { + if in == nil { + return nil + } + out := new(MachineDeploymentStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineDeploymentStrategy) DeepCopyInto(out *MachineDeploymentStrategy) { + *out = *in + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(MachineRollingUpdateDeployment) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineDeploymentStrategy. +func (in *MachineDeploymentStrategy) DeepCopy() *MachineDeploymentStrategy { + if in == nil { + return nil + } + out := new(MachineDeploymentStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineList) DeepCopyInto(out *MachineList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Machine, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineList. +func (in *MachineList) DeepCopy() *MachineList { + if in == nil { + return nil + } + out := new(MachineList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineRollingUpdateDeployment) DeepCopyInto(out *MachineRollingUpdateDeployment) { + *out = *in + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + *out = new(intstr.IntOrString) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(intstr.IntOrString) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineRollingUpdateDeployment. +func (in *MachineRollingUpdateDeployment) DeepCopy() *MachineRollingUpdateDeployment { + if in == nil { + return nil + } + out := new(MachineRollingUpdateDeployment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineSet) DeepCopyInto(out *MachineSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSet. +func (in *MachineSet) DeepCopy() *MachineSet { + if in == nil { + return nil + } + out := new(MachineSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineSet) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineSetList) DeepCopyInto(out *MachineSetList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]MachineSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSetList. +func (in *MachineSetList) DeepCopy() *MachineSetList { + if in == nil { + return nil + } + out := new(MachineSetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MachineSetList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineSetSpec) DeepCopyInto(out *MachineSetSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + *out = new(int32) + **out = **in + } + in.Selector.DeepCopyInto(&out.Selector) + in.Template.DeepCopyInto(&out.Template) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSetSpec. +func (in *MachineSetSpec) DeepCopy() *MachineSetSpec { + if in == nil { + return nil + } + out := new(MachineSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineSetStatus) DeepCopyInto(out *MachineSetStatus) { + *out = *in + if in.ErrorReason != nil { + in, out := &in.ErrorReason, &out.ErrorReason + *out = new(common.MachineSetStatusError) + **out = **in + } + if in.ErrorMessage != nil { + in, out := &in.ErrorMessage, &out.ErrorMessage + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSetStatus. +func (in *MachineSetStatus) DeepCopy() *MachineSetStatus { + if in == nil { + return nil + } + out := new(MachineSetStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineSpec) DeepCopyInto(out *MachineSpec) { + *out = *in + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Taints != nil { + in, out := &in.Taints, &out.Taints + *out = make([]v1.Taint, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.ProviderSpec.DeepCopyInto(&out.ProviderSpec) + if in.ProviderID != nil { + in, out := &in.ProviderID, &out.ProviderID + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineSpec. +func (in *MachineSpec) DeepCopy() *MachineSpec { + if in == nil { + return nil + } + out := new(MachineSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineStatus) DeepCopyInto(out *MachineStatus) { + *out = *in + if in.NodeRef != nil { + in, out := &in.NodeRef, &out.NodeRef + *out = new(v1.ObjectReference) + **out = **in + } + if in.LastUpdated != nil { + in, out := &in.LastUpdated, &out.LastUpdated + *out = (*in).DeepCopy() + } + if in.ErrorReason != nil { + in, out := &in.ErrorReason, &out.ErrorReason + *out = new(common.MachineStatusError) + **out = **in + } + if in.ErrorMessage != nil { + in, out := &in.ErrorMessage, &out.ErrorMessage + *out = new(string) + **out = **in + } + if in.ProviderStatus != nil { + in, out := &in.ProviderStatus, &out.ProviderStatus + *out = new(runtime.RawExtension) + (*in).DeepCopyInto(*out) + } + if in.Addresses != nil { + in, out := &in.Addresses, &out.Addresses + *out = make([]v1.NodeAddress, len(*in)) + copy(*out, *in) + } + if in.LastOperation != nil { + in, out := &in.LastOperation, &out.LastOperation + *out = new(LastOperation) + (*in).DeepCopyInto(*out) + } + if in.Phase != nil { + in, out := &in.Phase, &out.Phase + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineStatus. +func (in *MachineStatus) DeepCopy() *MachineStatus { + if in == nil { + return nil + } + out := new(MachineStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MachineTemplateSpec) DeepCopyInto(out *MachineTemplateSpec) { + *out = *in + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineTemplateSpec. +func (in *MachineTemplateSpec) DeepCopy() *MachineTemplateSpec { + if in == nil { + return nil + } + out := new(MachineTemplateSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderSpec) DeepCopyInto(out *ProviderSpec) { + *out = *in + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(runtime.RawExtension) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderSpec. +func (in *ProviderSpec) DeepCopy() *ProviderSpec { + if in == nil { + return nil + } + out := new(ProviderSpec) + in.DeepCopyInto(out) + return out +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/clientset.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/clientset.go new file mode 100644 index 00000000000..dbab657d370 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/clientset.go @@ -0,0 +1,111 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package clientset + +import ( + "fmt" + + clusterv1alpha1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1" + machinev1beta1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1" + discovery "k8s.io/client-go/discovery" + rest "k8s.io/client-go/rest" + flowcontrol "k8s.io/client-go/util/flowcontrol" +) + +type Interface interface { + Discovery() discovery.DiscoveryInterface + ClusterV1alpha1() clusterv1alpha1.ClusterV1alpha1Interface + MachineV1beta1() machinev1beta1.MachineV1beta1Interface +} + +// Clientset contains the clients for groups. Each group has exactly one +// version included in a Clientset. +type Clientset struct { + *discovery.DiscoveryClient + clusterV1alpha1 *clusterv1alpha1.ClusterV1alpha1Client + machineV1beta1 *machinev1beta1.MachineV1beta1Client +} + +// ClusterV1alpha1 retrieves the ClusterV1alpha1Client +func (c *Clientset) ClusterV1alpha1() clusterv1alpha1.ClusterV1alpha1Interface { + return c.clusterV1alpha1 +} + +// MachineV1beta1 retrieves the MachineV1beta1Client +func (c *Clientset) MachineV1beta1() machinev1beta1.MachineV1beta1Interface { + return c.machineV1beta1 +} + +// Discovery retrieves the DiscoveryClient +func (c *Clientset) Discovery() discovery.DiscoveryInterface { + if c == nil { + return nil + } + return c.DiscoveryClient +} + +// NewForConfig creates a new Clientset for the given config. +// If config's RateLimiter is not set and QPS and Burst are acceptable, +// NewForConfig will generate a rate-limiter in configShallowCopy. +func NewForConfig(c *rest.Config) (*Clientset, error) { + configShallowCopy := *c + if configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 { + if configShallowCopy.Burst <= 0 { + return nil, fmt.Errorf("Burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0") + } + configShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst) + } + var cs Clientset + var err error + cs.clusterV1alpha1, err = clusterv1alpha1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } + cs.machineV1beta1, err = machinev1beta1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } + + cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) + if err != nil { + return nil, err + } + return &cs, nil +} + +// NewForConfigOrDie creates a new Clientset for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *Clientset { + var cs Clientset + cs.clusterV1alpha1 = clusterv1alpha1.NewForConfigOrDie(c) + cs.machineV1beta1 = machinev1beta1.NewForConfigOrDie(c) + + cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) + return &cs +} + +// New creates a new Clientset for the given RESTClient. +func New(c rest.Interface) *Clientset { + var cs Clientset + cs.clusterV1alpha1 = clusterv1alpha1.New(c) + cs.machineV1beta1 = machinev1beta1.New(c) + + cs.DiscoveryClient = discovery.NewDiscoveryClient(c) + return &cs +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/doc.go new file mode 100644 index 00000000000..3421911a75a --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated clientset. +package clientset diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/clientset_generated.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/clientset_generated.go new file mode 100644 index 00000000000..4fb1353d304 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/clientset_generated.go @@ -0,0 +1,89 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + clusterv1alpha1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1" + fakeclusterv1alpha1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake" + machinev1beta1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1" + fakemachinev1beta1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/discovery" + fakediscovery "k8s.io/client-go/discovery/fake" + "k8s.io/client-go/testing" +) + +// NewSimpleClientset returns a clientset that will respond with the provided objects. +// It's backed by a very simple object tracker that processes creates, updates and deletions as-is, +// without applying any validations and/or defaults. It shouldn't be considered a replacement +// for a real clientset and is mostly useful in simple unit tests. +func NewSimpleClientset(objects ...runtime.Object) *Clientset { + o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder()) + for _, obj := range objects { + if err := o.Add(obj); err != nil { + panic(err) + } + } + + cs := &Clientset{tracker: o} + cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake} + cs.AddReactor("*", "*", testing.ObjectReaction(o)) + cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { + gvr := action.GetResource() + ns := action.GetNamespace() + watch, err := o.Watch(gvr, ns) + if err != nil { + return false, nil, err + } + return true, watch, nil + }) + + return cs +} + +// Clientset implements clientset.Interface. Meant to be embedded into a +// struct to get a default implementation. This makes faking out just the method +// you want to test easier. +type Clientset struct { + testing.Fake + discovery *fakediscovery.FakeDiscovery + tracker testing.ObjectTracker +} + +func (c *Clientset) Discovery() discovery.DiscoveryInterface { + return c.discovery +} + +func (c *Clientset) Tracker() testing.ObjectTracker { + return c.tracker +} + +var _ clientset.Interface = &Clientset{} + +// ClusterV1alpha1 retrieves the ClusterV1alpha1Client +func (c *Clientset) ClusterV1alpha1() clusterv1alpha1.ClusterV1alpha1Interface { + return &fakeclusterv1alpha1.FakeClusterV1alpha1{Fake: &c.Fake} +} + +// MachineV1beta1 retrieves the MachineV1beta1Client +func (c *Clientset) MachineV1beta1() machinev1beta1.MachineV1beta1Interface { + return &fakemachinev1beta1.FakeMachineV1beta1{Fake: &c.Fake} +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/doc.go new file mode 100644 index 00000000000..0bc260bcaa2 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated fake clientset. +package fake diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/register.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/register.go new file mode 100644 index 00000000000..c10e170c322 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake/register.go @@ -0,0 +1,58 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + clusterv1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + machinev1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) +var localSchemeBuilder = runtime.SchemeBuilder{ + clusterv1alpha1.AddToScheme, + machinev1beta1.AddToScheme, +} + +// AddToScheme adds all types of this clientset into the given scheme. This allows composition +// of clientsets, like in: +// +// import ( +// "k8s.io/client-go/kubernetes" +// clientsetscheme "k8s.io/client-go/kubernetes/scheme" +// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" +// ) +// +// kclientset, _ := kubernetes.NewForConfig(c) +// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// +// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types +// correctly. +var AddToScheme = localSchemeBuilder.AddToScheme + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + utilruntime.Must(AddToScheme(scheme)) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme/doc.go new file mode 100644 index 00000000000..5c5c8debb6b --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package contains the scheme of the automatically generated clientset. +package scheme diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme/register.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme/register.go new file mode 100644 index 00000000000..afb084a63f7 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme/register.go @@ -0,0 +1,58 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package scheme + +import ( + clusterv1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + machinev1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" +) + +var Scheme = runtime.NewScheme() +var Codecs = serializer.NewCodecFactory(Scheme) +var ParameterCodec = runtime.NewParameterCodec(Scheme) +var localSchemeBuilder = runtime.SchemeBuilder{ + clusterv1alpha1.AddToScheme, + machinev1beta1.AddToScheme, +} + +// AddToScheme adds all types of this clientset into the given scheme. This allows composition +// of clientsets, like in: +// +// import ( +// "k8s.io/client-go/kubernetes" +// clientsetscheme "k8s.io/client-go/kubernetes/scheme" +// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme" +// ) +// +// kclientset, _ := kubernetes.NewForConfig(c) +// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// +// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types +// correctly. +var AddToScheme = localSchemeBuilder.AddToScheme + +func init() { + v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + utilruntime.Must(AddToScheme(Scheme)) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/cluster.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/cluster.go new file mode 100644 index 00000000000..3d8dbb595a5 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/cluster.go @@ -0,0 +1,191 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + "time" + + v1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + scheme "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// ClustersGetter has a method to return a ClusterInterface. +// A group's client should implement this interface. +type ClustersGetter interface { + Clusters(namespace string) ClusterInterface +} + +// ClusterInterface has methods to work with Cluster resources. +type ClusterInterface interface { + Create(*v1alpha1.Cluster) (*v1alpha1.Cluster, error) + Update(*v1alpha1.Cluster) (*v1alpha1.Cluster, error) + UpdateStatus(*v1alpha1.Cluster) (*v1alpha1.Cluster, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.Cluster, error) + List(opts v1.ListOptions) (*v1alpha1.ClusterList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Cluster, err error) + ClusterExpansion +} + +// clusters implements ClusterInterface +type clusters struct { + client rest.Interface + ns string +} + +// newClusters returns a Clusters +func newClusters(c *ClusterV1alpha1Client, namespace string) *clusters { + return &clusters{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the cluster, and returns the corresponding cluster object, and an error if there is any. +func (c *clusters) Get(name string, options v1.GetOptions) (result *v1alpha1.Cluster, err error) { + result = &v1alpha1.Cluster{} + err = c.client.Get(). + Namespace(c.ns). + Resource("clusters"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Clusters that match those selectors. +func (c *clusters) List(opts v1.ListOptions) (result *v1alpha1.ClusterList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1alpha1.ClusterList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("clusters"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested clusters. +func (c *clusters) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("clusters"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a cluster and creates it. Returns the server's representation of the cluster, and an error, if there is any. +func (c *clusters) Create(cluster *v1alpha1.Cluster) (result *v1alpha1.Cluster, err error) { + result = &v1alpha1.Cluster{} + err = c.client.Post(). + Namespace(c.ns). + Resource("clusters"). + Body(cluster). + Do(). + Into(result) + return +} + +// Update takes the representation of a cluster and updates it. Returns the server's representation of the cluster, and an error, if there is any. +func (c *clusters) Update(cluster *v1alpha1.Cluster) (result *v1alpha1.Cluster, err error) { + result = &v1alpha1.Cluster{} + err = c.client.Put(). + Namespace(c.ns). + Resource("clusters"). + Name(cluster.Name). + Body(cluster). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *clusters) UpdateStatus(cluster *v1alpha1.Cluster) (result *v1alpha1.Cluster, err error) { + result = &v1alpha1.Cluster{} + err = c.client.Put(). + Namespace(c.ns). + Resource("clusters"). + Name(cluster.Name). + SubResource("status"). + Body(cluster). + Do(). + Into(result) + return +} + +// Delete takes name of the cluster and deletes it. Returns an error if one occurs. +func (c *clusters) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("clusters"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *clusters) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("clusters"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched cluster. +func (c *clusters) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Cluster, err error) { + result = &v1alpha1.Cluster{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("clusters"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/cluster_client.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/cluster_client.go new file mode 100644 index 00000000000..21016ff546c --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/cluster_client.go @@ -0,0 +1,89 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme" + rest "k8s.io/client-go/rest" +) + +type ClusterV1alpha1Interface interface { + RESTClient() rest.Interface + ClustersGetter +} + +// ClusterV1alpha1Client is used to interact with features provided by the cluster.k8s.io group. +type ClusterV1alpha1Client struct { + restClient rest.Interface +} + +func (c *ClusterV1alpha1Client) Clusters(namespace string) ClusterInterface { + return newClusters(c, namespace) +} + +// NewForConfig creates a new ClusterV1alpha1Client for the given config. +func NewForConfig(c *rest.Config) (*ClusterV1alpha1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &ClusterV1alpha1Client{client}, nil +} + +// NewForConfigOrDie creates a new ClusterV1alpha1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *ClusterV1alpha1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new ClusterV1alpha1Client for the given RESTClient. +func New(c rest.Interface) *ClusterV1alpha1Client { + return &ClusterV1alpha1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1alpha1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *ClusterV1alpha1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/doc.go new file mode 100644 index 00000000000..69ca30111b4 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1alpha1 diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/doc.go new file mode 100644 index 00000000000..87a1873edcc --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// Package fake has the automatically generated clients. +package fake diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/fake_cluster.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/fake_cluster.go new file mode 100644 index 00000000000..4bc08e35f89 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/fake_cluster.go @@ -0,0 +1,140 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeClusters implements ClusterInterface +type FakeClusters struct { + Fake *FakeClusterV1alpha1 + ns string +} + +var clustersResource = schema.GroupVersionResource{Group: "cluster.k8s.io", Version: "v1alpha1", Resource: "clusters"} + +var clustersKind = schema.GroupVersionKind{Group: "cluster.k8s.io", Version: "v1alpha1", Kind: "Cluster"} + +// Get takes name of the cluster, and returns the corresponding cluster object, and an error if there is any. +func (c *FakeClusters) Get(name string, options v1.GetOptions) (result *v1alpha1.Cluster, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(clustersResource, c.ns, name), &v1alpha1.Cluster{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Cluster), err +} + +// List takes label and field selectors, and returns the list of Clusters that match those selectors. +func (c *FakeClusters) List(opts v1.ListOptions) (result *v1alpha1.ClusterList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(clustersResource, clustersKind, c.ns, opts), &v1alpha1.ClusterList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.ClusterList{ListMeta: obj.(*v1alpha1.ClusterList).ListMeta} + for _, item := range obj.(*v1alpha1.ClusterList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested clusters. +func (c *FakeClusters) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(clustersResource, c.ns, opts)) + +} + +// Create takes the representation of a cluster and creates it. Returns the server's representation of the cluster, and an error, if there is any. +func (c *FakeClusters) Create(cluster *v1alpha1.Cluster) (result *v1alpha1.Cluster, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(clustersResource, c.ns, cluster), &v1alpha1.Cluster{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Cluster), err +} + +// Update takes the representation of a cluster and updates it. Returns the server's representation of the cluster, and an error, if there is any. +func (c *FakeClusters) Update(cluster *v1alpha1.Cluster) (result *v1alpha1.Cluster, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(clustersResource, c.ns, cluster), &v1alpha1.Cluster{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Cluster), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeClusters) UpdateStatus(cluster *v1alpha1.Cluster) (*v1alpha1.Cluster, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(clustersResource, "status", c.ns, cluster), &v1alpha1.Cluster{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Cluster), err +} + +// Delete takes name of the cluster and deletes it. Returns an error if one occurs. +func (c *FakeClusters) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(clustersResource, c.ns, name), &v1alpha1.Cluster{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeClusters) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(clustersResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.ClusterList{}) + return err +} + +// Patch applies the patch and returns the patched cluster. +func (c *FakeClusters) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Cluster, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(clustersResource, c.ns, name, pt, data, subresources...), &v1alpha1.Cluster{}) + + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.Cluster), err +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/fake_cluster_client.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/fake_cluster_client.go new file mode 100644 index 00000000000..ce0dbfd6fe9 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake/fake_cluster_client.go @@ -0,0 +1,40 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1alpha1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1" + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" +) + +type FakeClusterV1alpha1 struct { + *testing.Fake +} + +func (c *FakeClusterV1alpha1) Clusters(namespace string) v1alpha1.ClusterInterface { + return &FakeClusters{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeClusterV1alpha1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/generated_expansion.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/generated_expansion.go new file mode 100644 index 00000000000..b438f877746 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/generated_expansion.go @@ -0,0 +1,21 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +type ClusterExpansion interface{} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/doc.go new file mode 100644 index 00000000000..11ae7049d16 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1beta1 diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/doc.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/doc.go new file mode 100644 index 00000000000..87a1873edcc --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// Package fake has the automatically generated clients. +package fake diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machine.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machine.go new file mode 100644 index 00000000000..da9ca27d547 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machine.go @@ -0,0 +1,140 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeMachines implements MachineInterface +type FakeMachines struct { + Fake *FakeMachineV1beta1 + ns string +} + +var machinesResource = schema.GroupVersionResource{Group: "machine.openshift.io", Version: "v1beta1", Resource: "machines"} + +var machinesKind = schema.GroupVersionKind{Group: "machine.openshift.io", Version: "v1beta1", Kind: "Machine"} + +// Get takes name of the machine, and returns the corresponding machine object, and an error if there is any. +func (c *FakeMachines) Get(name string, options v1.GetOptions) (result *v1beta1.Machine, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(machinesResource, c.ns, name), &v1beta1.Machine{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Machine), err +} + +// List takes label and field selectors, and returns the list of Machines that match those selectors. +func (c *FakeMachines) List(opts v1.ListOptions) (result *v1beta1.MachineList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(machinesResource, machinesKind, c.ns, opts), &v1beta1.MachineList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.MachineList{ListMeta: obj.(*v1beta1.MachineList).ListMeta} + for _, item := range obj.(*v1beta1.MachineList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested machines. +func (c *FakeMachines) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(machinesResource, c.ns, opts)) + +} + +// Create takes the representation of a machine and creates it. Returns the server's representation of the machine, and an error, if there is any. +func (c *FakeMachines) Create(machine *v1beta1.Machine) (result *v1beta1.Machine, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(machinesResource, c.ns, machine), &v1beta1.Machine{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Machine), err +} + +// Update takes the representation of a machine and updates it. Returns the server's representation of the machine, and an error, if there is any. +func (c *FakeMachines) Update(machine *v1beta1.Machine) (result *v1beta1.Machine, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(machinesResource, c.ns, machine), &v1beta1.Machine{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Machine), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeMachines) UpdateStatus(machine *v1beta1.Machine) (*v1beta1.Machine, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(machinesResource, "status", c.ns, machine), &v1beta1.Machine{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Machine), err +} + +// Delete takes name of the machine and deletes it. Returns an error if one occurs. +func (c *FakeMachines) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(machinesResource, c.ns, name), &v1beta1.Machine{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeMachines) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(machinesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1beta1.MachineList{}) + return err +} + +// Patch applies the patch and returns the patched machine. +func (c *FakeMachines) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Machine, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(machinesResource, c.ns, name, pt, data, subresources...), &v1beta1.Machine{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Machine), err +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machine_client.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machine_client.go new file mode 100644 index 00000000000..8ca4a1eb4dc --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machine_client.go @@ -0,0 +1,52 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1" + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" +) + +type FakeMachineV1beta1 struct { + *testing.Fake +} + +func (c *FakeMachineV1beta1) Machines(namespace string) v1beta1.MachineInterface { + return &FakeMachines{c, namespace} +} + +func (c *FakeMachineV1beta1) MachineClasses(namespace string) v1beta1.MachineClassInterface { + return &FakeMachineClasses{c, namespace} +} + +func (c *FakeMachineV1beta1) MachineDeployments(namespace string) v1beta1.MachineDeploymentInterface { + return &FakeMachineDeployments{c, namespace} +} + +func (c *FakeMachineV1beta1) MachineSets(namespace string) v1beta1.MachineSetInterface { + return &FakeMachineSets{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeMachineV1beta1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machineclass.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machineclass.go new file mode 100644 index 00000000000..72e2095d42a --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machineclass.go @@ -0,0 +1,128 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeMachineClasses implements MachineClassInterface +type FakeMachineClasses struct { + Fake *FakeMachineV1beta1 + ns string +} + +var machineclassesResource = schema.GroupVersionResource{Group: "machine.openshift.io", Version: "v1beta1", Resource: "machineclasses"} + +var machineclassesKind = schema.GroupVersionKind{Group: "machine.openshift.io", Version: "v1beta1", Kind: "MachineClass"} + +// Get takes name of the machineClass, and returns the corresponding machineClass object, and an error if there is any. +func (c *FakeMachineClasses) Get(name string, options v1.GetOptions) (result *v1beta1.MachineClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(machineclassesResource, c.ns, name), &v1beta1.MachineClass{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineClass), err +} + +// List takes label and field selectors, and returns the list of MachineClasses that match those selectors. +func (c *FakeMachineClasses) List(opts v1.ListOptions) (result *v1beta1.MachineClassList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(machineclassesResource, machineclassesKind, c.ns, opts), &v1beta1.MachineClassList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.MachineClassList{ListMeta: obj.(*v1beta1.MachineClassList).ListMeta} + for _, item := range obj.(*v1beta1.MachineClassList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested machineClasses. +func (c *FakeMachineClasses) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(machineclassesResource, c.ns, opts)) + +} + +// Create takes the representation of a machineClass and creates it. Returns the server's representation of the machineClass, and an error, if there is any. +func (c *FakeMachineClasses) Create(machineClass *v1beta1.MachineClass) (result *v1beta1.MachineClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(machineclassesResource, c.ns, machineClass), &v1beta1.MachineClass{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineClass), err +} + +// Update takes the representation of a machineClass and updates it. Returns the server's representation of the machineClass, and an error, if there is any. +func (c *FakeMachineClasses) Update(machineClass *v1beta1.MachineClass) (result *v1beta1.MachineClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(machineclassesResource, c.ns, machineClass), &v1beta1.MachineClass{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineClass), err +} + +// Delete takes name of the machineClass and deletes it. Returns an error if one occurs. +func (c *FakeMachineClasses) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(machineclassesResource, c.ns, name), &v1beta1.MachineClass{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeMachineClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(machineclassesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1beta1.MachineClassList{}) + return err +} + +// Patch applies the patch and returns the patched machineClass. +func (c *FakeMachineClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(machineclassesResource, c.ns, name, pt, data, subresources...), &v1beta1.MachineClass{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineClass), err +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machinedeployment.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machinedeployment.go new file mode 100644 index 00000000000..a703b8950ff --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machinedeployment.go @@ -0,0 +1,140 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeMachineDeployments implements MachineDeploymentInterface +type FakeMachineDeployments struct { + Fake *FakeMachineV1beta1 + ns string +} + +var machinedeploymentsResource = schema.GroupVersionResource{Group: "machine.openshift.io", Version: "v1beta1", Resource: "machinedeployments"} + +var machinedeploymentsKind = schema.GroupVersionKind{Group: "machine.openshift.io", Version: "v1beta1", Kind: "MachineDeployment"} + +// Get takes name of the machineDeployment, and returns the corresponding machineDeployment object, and an error if there is any. +func (c *FakeMachineDeployments) Get(name string, options v1.GetOptions) (result *v1beta1.MachineDeployment, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(machinedeploymentsResource, c.ns, name), &v1beta1.MachineDeployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineDeployment), err +} + +// List takes label and field selectors, and returns the list of MachineDeployments that match those selectors. +func (c *FakeMachineDeployments) List(opts v1.ListOptions) (result *v1beta1.MachineDeploymentList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(machinedeploymentsResource, machinedeploymentsKind, c.ns, opts), &v1beta1.MachineDeploymentList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.MachineDeploymentList{ListMeta: obj.(*v1beta1.MachineDeploymentList).ListMeta} + for _, item := range obj.(*v1beta1.MachineDeploymentList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested machineDeployments. +func (c *FakeMachineDeployments) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(machinedeploymentsResource, c.ns, opts)) + +} + +// Create takes the representation of a machineDeployment and creates it. Returns the server's representation of the machineDeployment, and an error, if there is any. +func (c *FakeMachineDeployments) Create(machineDeployment *v1beta1.MachineDeployment) (result *v1beta1.MachineDeployment, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(machinedeploymentsResource, c.ns, machineDeployment), &v1beta1.MachineDeployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineDeployment), err +} + +// Update takes the representation of a machineDeployment and updates it. Returns the server's representation of the machineDeployment, and an error, if there is any. +func (c *FakeMachineDeployments) Update(machineDeployment *v1beta1.MachineDeployment) (result *v1beta1.MachineDeployment, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(machinedeploymentsResource, c.ns, machineDeployment), &v1beta1.MachineDeployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineDeployment), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeMachineDeployments) UpdateStatus(machineDeployment *v1beta1.MachineDeployment) (*v1beta1.MachineDeployment, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(machinedeploymentsResource, "status", c.ns, machineDeployment), &v1beta1.MachineDeployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineDeployment), err +} + +// Delete takes name of the machineDeployment and deletes it. Returns an error if one occurs. +func (c *FakeMachineDeployments) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(machinedeploymentsResource, c.ns, name), &v1beta1.MachineDeployment{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeMachineDeployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(machinedeploymentsResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1beta1.MachineDeploymentList{}) + return err +} + +// Patch applies the patch and returns the patched machineDeployment. +func (c *FakeMachineDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineDeployment, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(machinedeploymentsResource, c.ns, name, pt, data, subresources...), &v1beta1.MachineDeployment{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineDeployment), err +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machineset.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machineset.go new file mode 100644 index 00000000000..b795704fd81 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake/fake_machineset.go @@ -0,0 +1,140 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeMachineSets implements MachineSetInterface +type FakeMachineSets struct { + Fake *FakeMachineV1beta1 + ns string +} + +var machinesetsResource = schema.GroupVersionResource{Group: "machine.openshift.io", Version: "v1beta1", Resource: "machinesets"} + +var machinesetsKind = schema.GroupVersionKind{Group: "machine.openshift.io", Version: "v1beta1", Kind: "MachineSet"} + +// Get takes name of the machineSet, and returns the corresponding machineSet object, and an error if there is any. +func (c *FakeMachineSets) Get(name string, options v1.GetOptions) (result *v1beta1.MachineSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(machinesetsResource, c.ns, name), &v1beta1.MachineSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineSet), err +} + +// List takes label and field selectors, and returns the list of MachineSets that match those selectors. +func (c *FakeMachineSets) List(opts v1.ListOptions) (result *v1beta1.MachineSetList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(machinesetsResource, machinesetsKind, c.ns, opts), &v1beta1.MachineSetList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.MachineSetList{ListMeta: obj.(*v1beta1.MachineSetList).ListMeta} + for _, item := range obj.(*v1beta1.MachineSetList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested machineSets. +func (c *FakeMachineSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(machinesetsResource, c.ns, opts)) + +} + +// Create takes the representation of a machineSet and creates it. Returns the server's representation of the machineSet, and an error, if there is any. +func (c *FakeMachineSets) Create(machineSet *v1beta1.MachineSet) (result *v1beta1.MachineSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(machinesetsResource, c.ns, machineSet), &v1beta1.MachineSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineSet), err +} + +// Update takes the representation of a machineSet and updates it. Returns the server's representation of the machineSet, and an error, if there is any. +func (c *FakeMachineSets) Update(machineSet *v1beta1.MachineSet) (result *v1beta1.MachineSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(machinesetsResource, c.ns, machineSet), &v1beta1.MachineSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineSet), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeMachineSets) UpdateStatus(machineSet *v1beta1.MachineSet) (*v1beta1.MachineSet, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(machinesetsResource, "status", c.ns, machineSet), &v1beta1.MachineSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineSet), err +} + +// Delete takes name of the machineSet and deletes it. Returns an error if one occurs. +func (c *FakeMachineSets) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(machinesetsResource, c.ns, name), &v1beta1.MachineSet{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeMachineSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(machinesetsResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1beta1.MachineSetList{}) + return err +} + +// Patch applies the patch and returns the patched machineSet. +func (c *FakeMachineSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineSet, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(machinesetsResource, c.ns, name, pt, data, subresources...), &v1beta1.MachineSet{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.MachineSet), err +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/generated_expansion.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/generated_expansion.go new file mode 100644 index 00000000000..2c3b1dd105e --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/generated_expansion.go @@ -0,0 +1,27 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +type MachineExpansion interface{} + +type MachineClassExpansion interface{} + +type MachineDeploymentExpansion interface{} + +type MachineSetExpansion interface{} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machine.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machine.go new file mode 100644 index 00000000000..7b51adcda83 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machine.go @@ -0,0 +1,191 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "time" + + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + scheme "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// MachinesGetter has a method to return a MachineInterface. +// A group's client should implement this interface. +type MachinesGetter interface { + Machines(namespace string) MachineInterface +} + +// MachineInterface has methods to work with Machine resources. +type MachineInterface interface { + Create(*v1beta1.Machine) (*v1beta1.Machine, error) + Update(*v1beta1.Machine) (*v1beta1.Machine, error) + UpdateStatus(*v1beta1.Machine) (*v1beta1.Machine, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.Machine, error) + List(opts v1.ListOptions) (*v1beta1.MachineList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Machine, err error) + MachineExpansion +} + +// machines implements MachineInterface +type machines struct { + client rest.Interface + ns string +} + +// newMachines returns a Machines +func newMachines(c *MachineV1beta1Client, namespace string) *machines { + return &machines{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the machine, and returns the corresponding machine object, and an error if there is any. +func (c *machines) Get(name string, options v1.GetOptions) (result *v1beta1.Machine, err error) { + result = &v1beta1.Machine{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machines"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Machines that match those selectors. +func (c *machines) List(opts v1.ListOptions) (result *v1beta1.MachineList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.MachineList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machines"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested machines. +func (c *machines) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("machines"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a machine and creates it. Returns the server's representation of the machine, and an error, if there is any. +func (c *machines) Create(machine *v1beta1.Machine) (result *v1beta1.Machine, err error) { + result = &v1beta1.Machine{} + err = c.client.Post(). + Namespace(c.ns). + Resource("machines"). + Body(machine). + Do(). + Into(result) + return +} + +// Update takes the representation of a machine and updates it. Returns the server's representation of the machine, and an error, if there is any. +func (c *machines) Update(machine *v1beta1.Machine) (result *v1beta1.Machine, err error) { + result = &v1beta1.Machine{} + err = c.client.Put(). + Namespace(c.ns). + Resource("machines"). + Name(machine.Name). + Body(machine). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *machines) UpdateStatus(machine *v1beta1.Machine) (result *v1beta1.Machine, err error) { + result = &v1beta1.Machine{} + err = c.client.Put(). + Namespace(c.ns). + Resource("machines"). + Name(machine.Name). + SubResource("status"). + Body(machine). + Do(). + Into(result) + return +} + +// Delete takes name of the machine and deletes it. Returns an error if one occurs. +func (c *machines) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("machines"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *machines) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("machines"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched machine. +func (c *machines) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Machine, err error) { + result = &v1beta1.Machine{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("machines"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machine_client.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machine_client.go new file mode 100644 index 00000000000..b30f4d2ef8d --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machine_client.go @@ -0,0 +1,104 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme" + rest "k8s.io/client-go/rest" +) + +type MachineV1beta1Interface interface { + RESTClient() rest.Interface + MachinesGetter + MachineClassesGetter + MachineDeploymentsGetter + MachineSetsGetter +} + +// MachineV1beta1Client is used to interact with features provided by the machine.openshift.io group. +type MachineV1beta1Client struct { + restClient rest.Interface +} + +func (c *MachineV1beta1Client) Machines(namespace string) MachineInterface { + return newMachines(c, namespace) +} + +func (c *MachineV1beta1Client) MachineClasses(namespace string) MachineClassInterface { + return newMachineClasses(c, namespace) +} + +func (c *MachineV1beta1Client) MachineDeployments(namespace string) MachineDeploymentInterface { + return newMachineDeployments(c, namespace) +} + +func (c *MachineV1beta1Client) MachineSets(namespace string) MachineSetInterface { + return newMachineSets(c, namespace) +} + +// NewForConfig creates a new MachineV1beta1Client for the given config. +func NewForConfig(c *rest.Config) (*MachineV1beta1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &MachineV1beta1Client{client}, nil +} + +// NewForConfigOrDie creates a new MachineV1beta1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *MachineV1beta1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new MachineV1beta1Client for the given RESTClient. +func New(c rest.Interface) *MachineV1beta1Client { + return &MachineV1beta1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1beta1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *MachineV1beta1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machineclass.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machineclass.go new file mode 100644 index 00000000000..af8cedab1fa --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machineclass.go @@ -0,0 +1,174 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "time" + + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + scheme "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// MachineClassesGetter has a method to return a MachineClassInterface. +// A group's client should implement this interface. +type MachineClassesGetter interface { + MachineClasses(namespace string) MachineClassInterface +} + +// MachineClassInterface has methods to work with MachineClass resources. +type MachineClassInterface interface { + Create(*v1beta1.MachineClass) (*v1beta1.MachineClass, error) + Update(*v1beta1.MachineClass) (*v1beta1.MachineClass, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.MachineClass, error) + List(opts v1.ListOptions) (*v1beta1.MachineClassList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineClass, err error) + MachineClassExpansion +} + +// machineClasses implements MachineClassInterface +type machineClasses struct { + client rest.Interface + ns string +} + +// newMachineClasses returns a MachineClasses +func newMachineClasses(c *MachineV1beta1Client, namespace string) *machineClasses { + return &machineClasses{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the machineClass, and returns the corresponding machineClass object, and an error if there is any. +func (c *machineClasses) Get(name string, options v1.GetOptions) (result *v1beta1.MachineClass, err error) { + result = &v1beta1.MachineClass{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machineclasses"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of MachineClasses that match those selectors. +func (c *machineClasses) List(opts v1.ListOptions) (result *v1beta1.MachineClassList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.MachineClassList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machineclasses"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested machineClasses. +func (c *machineClasses) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("machineclasses"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a machineClass and creates it. Returns the server's representation of the machineClass, and an error, if there is any. +func (c *machineClasses) Create(machineClass *v1beta1.MachineClass) (result *v1beta1.MachineClass, err error) { + result = &v1beta1.MachineClass{} + err = c.client.Post(). + Namespace(c.ns). + Resource("machineclasses"). + Body(machineClass). + Do(). + Into(result) + return +} + +// Update takes the representation of a machineClass and updates it. Returns the server's representation of the machineClass, and an error, if there is any. +func (c *machineClasses) Update(machineClass *v1beta1.MachineClass) (result *v1beta1.MachineClass, err error) { + result = &v1beta1.MachineClass{} + err = c.client.Put(). + Namespace(c.ns). + Resource("machineclasses"). + Name(machineClass.Name). + Body(machineClass). + Do(). + Into(result) + return +} + +// Delete takes name of the machineClass and deletes it. Returns an error if one occurs. +func (c *machineClasses) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("machineclasses"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *machineClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("machineclasses"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched machineClass. +func (c *machineClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineClass, err error) { + result = &v1beta1.MachineClass{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("machineclasses"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machinedeployment.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machinedeployment.go new file mode 100644 index 00000000000..420129f2eca --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machinedeployment.go @@ -0,0 +1,191 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "time" + + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + scheme "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// MachineDeploymentsGetter has a method to return a MachineDeploymentInterface. +// A group's client should implement this interface. +type MachineDeploymentsGetter interface { + MachineDeployments(namespace string) MachineDeploymentInterface +} + +// MachineDeploymentInterface has methods to work with MachineDeployment resources. +type MachineDeploymentInterface interface { + Create(*v1beta1.MachineDeployment) (*v1beta1.MachineDeployment, error) + Update(*v1beta1.MachineDeployment) (*v1beta1.MachineDeployment, error) + UpdateStatus(*v1beta1.MachineDeployment) (*v1beta1.MachineDeployment, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.MachineDeployment, error) + List(opts v1.ListOptions) (*v1beta1.MachineDeploymentList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineDeployment, err error) + MachineDeploymentExpansion +} + +// machineDeployments implements MachineDeploymentInterface +type machineDeployments struct { + client rest.Interface + ns string +} + +// newMachineDeployments returns a MachineDeployments +func newMachineDeployments(c *MachineV1beta1Client, namespace string) *machineDeployments { + return &machineDeployments{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the machineDeployment, and returns the corresponding machineDeployment object, and an error if there is any. +func (c *machineDeployments) Get(name string, options v1.GetOptions) (result *v1beta1.MachineDeployment, err error) { + result = &v1beta1.MachineDeployment{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machinedeployments"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of MachineDeployments that match those selectors. +func (c *machineDeployments) List(opts v1.ListOptions) (result *v1beta1.MachineDeploymentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.MachineDeploymentList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machinedeployments"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested machineDeployments. +func (c *machineDeployments) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("machinedeployments"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a machineDeployment and creates it. Returns the server's representation of the machineDeployment, and an error, if there is any. +func (c *machineDeployments) Create(machineDeployment *v1beta1.MachineDeployment) (result *v1beta1.MachineDeployment, err error) { + result = &v1beta1.MachineDeployment{} + err = c.client.Post(). + Namespace(c.ns). + Resource("machinedeployments"). + Body(machineDeployment). + Do(). + Into(result) + return +} + +// Update takes the representation of a machineDeployment and updates it. Returns the server's representation of the machineDeployment, and an error, if there is any. +func (c *machineDeployments) Update(machineDeployment *v1beta1.MachineDeployment) (result *v1beta1.MachineDeployment, err error) { + result = &v1beta1.MachineDeployment{} + err = c.client.Put(). + Namespace(c.ns). + Resource("machinedeployments"). + Name(machineDeployment.Name). + Body(machineDeployment). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *machineDeployments) UpdateStatus(machineDeployment *v1beta1.MachineDeployment) (result *v1beta1.MachineDeployment, err error) { + result = &v1beta1.MachineDeployment{} + err = c.client.Put(). + Namespace(c.ns). + Resource("machinedeployments"). + Name(machineDeployment.Name). + SubResource("status"). + Body(machineDeployment). + Do(). + Into(result) + return +} + +// Delete takes name of the machineDeployment and deletes it. Returns an error if one occurs. +func (c *machineDeployments) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("machinedeployments"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *machineDeployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("machinedeployments"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched machineDeployment. +func (c *machineDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineDeployment, err error) { + result = &v1beta1.MachineDeployment{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("machinedeployments"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machineset.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machineset.go new file mode 100644 index 00000000000..478fef7818d --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/machineset.go @@ -0,0 +1,191 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "time" + + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + scheme "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + rest "k8s.io/client-go/rest" +) + +// MachineSetsGetter has a method to return a MachineSetInterface. +// A group's client should implement this interface. +type MachineSetsGetter interface { + MachineSets(namespace string) MachineSetInterface +} + +// MachineSetInterface has methods to work with MachineSet resources. +type MachineSetInterface interface { + Create(*v1beta1.MachineSet) (*v1beta1.MachineSet, error) + Update(*v1beta1.MachineSet) (*v1beta1.MachineSet, error) + UpdateStatus(*v1beta1.MachineSet) (*v1beta1.MachineSet, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.MachineSet, error) + List(opts v1.ListOptions) (*v1beta1.MachineSetList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineSet, err error) + MachineSetExpansion +} + +// machineSets implements MachineSetInterface +type machineSets struct { + client rest.Interface + ns string +} + +// newMachineSets returns a MachineSets +func newMachineSets(c *MachineV1beta1Client, namespace string) *machineSets { + return &machineSets{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the machineSet, and returns the corresponding machineSet object, and an error if there is any. +func (c *machineSets) Get(name string, options v1.GetOptions) (result *v1beta1.MachineSet, err error) { + result = &v1beta1.MachineSet{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machinesets"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of MachineSets that match those selectors. +func (c *machineSets) List(opts v1.ListOptions) (result *v1beta1.MachineSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.MachineSetList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("machinesets"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested machineSets. +func (c *machineSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("machinesets"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a machineSet and creates it. Returns the server's representation of the machineSet, and an error, if there is any. +func (c *machineSets) Create(machineSet *v1beta1.MachineSet) (result *v1beta1.MachineSet, err error) { + result = &v1beta1.MachineSet{} + err = c.client.Post(). + Namespace(c.ns). + Resource("machinesets"). + Body(machineSet). + Do(). + Into(result) + return +} + +// Update takes the representation of a machineSet and updates it. Returns the server's representation of the machineSet, and an error, if there is any. +func (c *machineSets) Update(machineSet *v1beta1.MachineSet) (result *v1beta1.MachineSet, err error) { + result = &v1beta1.MachineSet{} + err = c.client.Put(). + Namespace(c.ns). + Resource("machinesets"). + Name(machineSet.Name). + Body(machineSet). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *machineSets) UpdateStatus(machineSet *v1beta1.MachineSet) (result *v1beta1.MachineSet, err error) { + result = &v1beta1.MachineSet{} + err = c.client.Put(). + Namespace(c.ns). + Resource("machinesets"). + Name(machineSet.Name). + SubResource("status"). + Body(machineSet). + Do(). + Into(result) + return +} + +// Delete takes name of the machineSet and deletes it. Returns an error if one occurs. +func (c *machineSets) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("machinesets"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *machineSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("machinesets"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched machineSet. +func (c *machineSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MachineSet, err error) { + result = &v1beta1.MachineSet{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("machinesets"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/interface.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/interface.go new file mode 100644 index 00000000000..f133f8ea32b --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/interface.go @@ -0,0 +1,46 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package cluster + +import ( + v1alpha1 "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1" + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1alpha1 provides access to shared informers for resources in V1alpha1. + V1alpha1() v1alpha1.Interface +} + +type group struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// V1alpha1 returns a new v1alpha1.Interface. +func (g *group) V1alpha1() v1alpha1.Interface { + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1/cluster.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1/cluster.go new file mode 100644 index 00000000000..4a5e1ec53b4 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1/cluster.go @@ -0,0 +1,89 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + time "time" + + clusterv1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" + v1alpha1 "github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// ClusterInformer provides access to a shared informer and lister for +// Clusters. +type ClusterInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.ClusterLister +} + +type clusterInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewClusterInformer constructs a new informer for Cluster type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewClusterInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredClusterInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredClusterInformer constructs a new informer for Cluster type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredClusterInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.ClusterV1alpha1().Clusters(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.ClusterV1alpha1().Clusters(namespace).Watch(options) + }, + }, + &clusterv1alpha1.Cluster{}, + resyncPeriod, + indexers, + ) +} + +func (f *clusterInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredClusterInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *clusterInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&clusterv1alpha1.Cluster{}, f.defaultInformer) +} + +func (f *clusterInformer) Lister() v1alpha1.ClusterLister { + return v1alpha1.NewClusterLister(f.Informer().GetIndexer()) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1/interface.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1/interface.go new file mode 100644 index 00000000000..7cf933c3d01 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1/interface.go @@ -0,0 +1,45 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // Clusters returns a ClusterInformer. + Clusters() ClusterInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// Clusters returns a ClusterInformer. +func (v *version) Clusters() ClusterInformer { + return &clusterInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/factory.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/factory.go new file mode 100644 index 00000000000..2383e1a543b --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/factory.go @@ -0,0 +1,186 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package externalversions + +import ( + reflect "reflect" + sync "sync" + time "time" + + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + cluster "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster" + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" + machine "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + cache "k8s.io/client-go/tools/cache" +) + +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + +type sharedInformerFactory struct { + client clientset.Interface + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc + lock sync.Mutex + defaultResync time.Duration + customResync map[reflect.Type]time.Duration + + informers map[reflect.Type]cache.SharedIndexInformer + // startedInformers is used for tracking which informers have been started. + // This allows Start() to be called multiple times safely. + startedInformers map[reflect.Type]bool +} + +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. +func NewSharedInformerFactory(client clientset.Interface, defaultResync time.Duration) SharedInformerFactory { + return NewSharedInformerFactoryWithOptions(client, defaultResync) +} + +// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. +// Listers obtained via this SharedInformerFactory will be subject to the same filters +// as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead +func NewFilteredSharedInformerFactory(client clientset.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client clientset.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ + client: client, + namespace: v1.NamespaceAll, + defaultResync: defaultResync, + informers: make(map[reflect.Type]cache.SharedIndexInformer), + startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), + } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory +} + +// Start initializes all requested informers. +func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { + f.lock.Lock() + defer f.lock.Unlock() + + for informerType, informer := range f.informers { + if !f.startedInformers[informerType] { + go informer.Run(stopCh) + f.startedInformers[informerType] = true + } + } +} + +// WaitForCacheSync waits for all started informers' cache were synced. +func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { + informers := func() map[reflect.Type]cache.SharedIndexInformer { + f.lock.Lock() + defer f.lock.Unlock() + + informers := map[reflect.Type]cache.SharedIndexInformer{} + for informerType, informer := range f.informers { + if f.startedInformers[informerType] { + informers[informerType] = informer + } + } + return informers + }() + + res := map[reflect.Type]bool{} + for informType, informer := range informers { + res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) + } + return res +} + +// InternalInformerFor returns the SharedIndexInformer for obj using an internal +// client. +func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer { + f.lock.Lock() + defer f.lock.Unlock() + + informerType := reflect.TypeOf(obj) + informer, exists := f.informers[informerType] + if exists { + return informer + } + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) + f.informers[informerType] = informer + + return informer +} + +// SharedInformerFactory provides shared informers for resources in all known +// API group versions. +type SharedInformerFactory interface { + internalinterfaces.SharedInformerFactory + ForResource(resource schema.GroupVersionResource) (GenericInformer, error) + WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool + + Cluster() cluster.Interface + Machine() machine.Interface +} + +func (f *sharedInformerFactory) Cluster() cluster.Interface { + return cluster.New(f, f.namespace, f.tweakListOptions) +} + +func (f *sharedInformerFactory) Machine() machine.Interface { + return machine.New(f, f.namespace, f.tweakListOptions) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/generic.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/generic.go new file mode 100644 index 00000000000..bcffb32ee52 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/generic.go @@ -0,0 +1,73 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package externalversions + +import ( + "fmt" + + v1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + schema "k8s.io/apimachinery/pkg/runtime/schema" + cache "k8s.io/client-go/tools/cache" +) + +// GenericInformer is type of SharedIndexInformer which will locate and delegate to other +// sharedInformers based on type +type GenericInformer interface { + Informer() cache.SharedIndexInformer + Lister() cache.GenericLister +} + +type genericInformer struct { + informer cache.SharedIndexInformer + resource schema.GroupResource +} + +// Informer returns the SharedIndexInformer. +func (f *genericInformer) Informer() cache.SharedIndexInformer { + return f.informer +} + +// Lister returns the GenericLister. +func (f *genericInformer) Lister() cache.GenericLister { + return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) +} + +// ForResource gives generic access to a shared informer of the matching type +// TODO extend this to unknown resources with a client pool +func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { + switch resource { + // Group=cluster.k8s.io, Version=v1alpha1 + case v1alpha1.SchemeGroupVersion.WithResource("clusters"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Cluster().V1alpha1().Clusters().Informer()}, nil + + // Group=machine.openshift.io, Version=v1beta1 + case v1beta1.SchemeGroupVersion.WithResource("machines"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Machine().V1beta1().Machines().Informer()}, nil + case v1beta1.SchemeGroupVersion.WithResource("machineclasses"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Machine().V1beta1().MachineClasses().Informer()}, nil + case v1beta1.SchemeGroupVersion.WithResource("machinedeployments"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Machine().V1beta1().MachineDeployments().Informer()}, nil + case v1beta1.SchemeGroupVersion.WithResource("machinesets"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Machine().V1beta1().MachineSets().Informer()}, nil + + } + + return nil, fmt.Errorf("no informer found for %v", resource) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces/factory_interfaces.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces/factory_interfaces.go new file mode 100644 index 00000000000..72d66bdc881 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces/factory_interfaces.go @@ -0,0 +1,40 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package internalinterfaces + +import ( + time "time" + + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + cache "k8s.io/client-go/tools/cache" +) + +// NewInformerFunc takes clientset.Interface and time.Duration to return a SharedIndexInformer. +type NewInformerFunc func(clientset.Interface, time.Duration) cache.SharedIndexInformer + +// SharedInformerFactory a small interface to allow for adding an informer without an import cycle +type SharedInformerFactory interface { + Start(stopCh <-chan struct{}) + InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer +} + +// TweakListOptionsFunc is a function that transforms a v1.ListOptions. +type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/interface.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/interface.go new file mode 100644 index 00000000000..ef2ffff9942 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/interface.go @@ -0,0 +1,46 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package machine + +import ( + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" + v1beta1 "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1beta1 provides access to shared informers for resources in V1beta1. + V1beta1() v1beta1.Interface +} + +type group struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// V1beta1 returns a new v1beta1.Interface. +func (g *group) V1beta1() v1beta1.Interface { + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/interface.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/interface.go new file mode 100644 index 00000000000..33c7c903b35 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/interface.go @@ -0,0 +1,66 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // Machines returns a MachineInformer. + Machines() MachineInformer + // MachineClasses returns a MachineClassInformer. + MachineClasses() MachineClassInformer + // MachineDeployments returns a MachineDeploymentInformer. + MachineDeployments() MachineDeploymentInformer + // MachineSets returns a MachineSetInformer. + MachineSets() MachineSetInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// Machines returns a MachineInformer. +func (v *version) Machines() MachineInformer { + return &machineInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + +// MachineClasses returns a MachineClassInformer. +func (v *version) MachineClasses() MachineClassInformer { + return &machineClassInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + +// MachineDeployments returns a MachineDeploymentInformer. +func (v *version) MachineDeployments() MachineDeploymentInformer { + return &machineDeploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + +// MachineSets returns a MachineSetInformer. +func (v *version) MachineSets() MachineSetInformer { + return &machineSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machine.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machine.go new file mode 100644 index 00000000000..21a0714e24c --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machine.go @@ -0,0 +1,89 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + time "time" + + machinev1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" + v1beta1 "github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// MachineInformer provides access to a shared informer and lister for +// Machines. +type MachineInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.MachineLister +} + +type machineInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewMachineInformer constructs a new informer for Machine type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewMachineInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredMachineInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredMachineInformer constructs a new informer for Machine type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredMachineInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().Machines(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().Machines(namespace).Watch(options) + }, + }, + &machinev1beta1.Machine{}, + resyncPeriod, + indexers, + ) +} + +func (f *machineInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredMachineInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *machineInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&machinev1beta1.Machine{}, f.defaultInformer) +} + +func (f *machineInformer) Lister() v1beta1.MachineLister { + return v1beta1.NewMachineLister(f.Informer().GetIndexer()) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machineclass.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machineclass.go new file mode 100644 index 00000000000..dba4270077d --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machineclass.go @@ -0,0 +1,89 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + time "time" + + machinev1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" + v1beta1 "github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// MachineClassInformer provides access to a shared informer and lister for +// MachineClasses. +type MachineClassInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.MachineClassLister +} + +type machineClassInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewMachineClassInformer constructs a new informer for MachineClass type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewMachineClassInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredMachineClassInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredMachineClassInformer constructs a new informer for MachineClass type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredMachineClassInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().MachineClasses(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().MachineClasses(namespace).Watch(options) + }, + }, + &machinev1beta1.MachineClass{}, + resyncPeriod, + indexers, + ) +} + +func (f *machineClassInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredMachineClassInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *machineClassInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&machinev1beta1.MachineClass{}, f.defaultInformer) +} + +func (f *machineClassInformer) Lister() v1beta1.MachineClassLister { + return v1beta1.NewMachineClassLister(f.Informer().GetIndexer()) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machinedeployment.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machinedeployment.go new file mode 100644 index 00000000000..e1c226bdb3c --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machinedeployment.go @@ -0,0 +1,89 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + time "time" + + machinev1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" + v1beta1 "github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// MachineDeploymentInformer provides access to a shared informer and lister for +// MachineDeployments. +type MachineDeploymentInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.MachineDeploymentLister +} + +type machineDeploymentInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewMachineDeploymentInformer constructs a new informer for MachineDeployment type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewMachineDeploymentInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredMachineDeploymentInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredMachineDeploymentInformer constructs a new informer for MachineDeployment type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredMachineDeploymentInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().MachineDeployments(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().MachineDeployments(namespace).Watch(options) + }, + }, + &machinev1beta1.MachineDeployment{}, + resyncPeriod, + indexers, + ) +} + +func (f *machineDeploymentInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredMachineDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *machineDeploymentInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&machinev1beta1.MachineDeployment{}, f.defaultInformer) +} + +func (f *machineDeploymentInformer) Lister() v1beta1.MachineDeploymentLister { + return v1beta1.NewMachineDeploymentLister(f.Informer().GetIndexer()) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machineset.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machineset.go new file mode 100644 index 00000000000..fe576d6327f --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1/machineset.go @@ -0,0 +1,89 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + time "time" + + machinev1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + clientset "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset" + internalinterfaces "github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces" + v1beta1 "github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// MachineSetInformer provides access to a shared informer and lister for +// MachineSets. +type MachineSetInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.MachineSetLister +} + +type machineSetInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewMachineSetInformer constructs a new informer for MachineSet type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewMachineSetInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredMachineSetInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredMachineSetInformer constructs a new informer for MachineSet type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredMachineSetInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().MachineSets(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.MachineV1beta1().MachineSets(namespace).Watch(options) + }, + }, + &machinev1beta1.MachineSet{}, + resyncPeriod, + indexers, + ) +} + +func (f *machineSetInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredMachineSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *machineSetInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&machinev1beta1.MachineSet{}, f.defaultInformer) +} + +func (f *machineSetInformer) Lister() v1beta1.MachineSetLister { + return v1beta1.NewMachineSetLister(f.Informer().GetIndexer()) +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1/cluster.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1/cluster.go new file mode 100644 index 00000000000..79f5a06f824 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1/cluster.go @@ -0,0 +1,94 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ClusterLister helps list Clusters. +type ClusterLister interface { + // List lists all Clusters in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.Cluster, err error) + // Clusters returns an object that can list and get Clusters. + Clusters(namespace string) ClusterNamespaceLister + ClusterListerExpansion +} + +// clusterLister implements the ClusterLister interface. +type clusterLister struct { + indexer cache.Indexer +} + +// NewClusterLister returns a new ClusterLister. +func NewClusterLister(indexer cache.Indexer) ClusterLister { + return &clusterLister{indexer: indexer} +} + +// List lists all Clusters in the indexer. +func (s *clusterLister) List(selector labels.Selector) (ret []*v1alpha1.Cluster, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.Cluster)) + }) + return ret, err +} + +// Clusters returns an object that can list and get Clusters. +func (s *clusterLister) Clusters(namespace string) ClusterNamespaceLister { + return clusterNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// ClusterNamespaceLister helps list and get Clusters. +type ClusterNamespaceLister interface { + // List lists all Clusters in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1alpha1.Cluster, err error) + // Get retrieves the Cluster from the indexer for a given namespace and name. + Get(name string) (*v1alpha1.Cluster, error) + ClusterNamespaceListerExpansion +} + +// clusterNamespaceLister implements the ClusterNamespaceLister +// interface. +type clusterNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Clusters in the indexer for a given namespace. +func (s clusterNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.Cluster, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.Cluster)) + }) + return ret, err +} + +// Get retrieves the Cluster from the indexer for a given namespace and name. +func (s clusterNamespaceLister) Get(name string) (*v1alpha1.Cluster, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("cluster"), name) + } + return obj.(*v1alpha1.Cluster), nil +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1/expansion_generated.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1/expansion_generated.go new file mode 100644 index 00000000000..b84da5c3518 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1/expansion_generated.go @@ -0,0 +1,27 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +// ClusterListerExpansion allows custom methods to be added to +// ClusterLister. +type ClusterListerExpansion interface{} + +// ClusterNamespaceListerExpansion allows custom methods to be added to +// ClusterNamespaceLister. +type ClusterNamespaceListerExpansion interface{} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/expansion_generated.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/expansion_generated.go new file mode 100644 index 00000000000..ce5f9aa6661 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/expansion_generated.go @@ -0,0 +1,51 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +// MachineListerExpansion allows custom methods to be added to +// MachineLister. +type MachineListerExpansion interface{} + +// MachineNamespaceListerExpansion allows custom methods to be added to +// MachineNamespaceLister. +type MachineNamespaceListerExpansion interface{} + +// MachineClassListerExpansion allows custom methods to be added to +// MachineClassLister. +type MachineClassListerExpansion interface{} + +// MachineClassNamespaceListerExpansion allows custom methods to be added to +// MachineClassNamespaceLister. +type MachineClassNamespaceListerExpansion interface{} + +// MachineDeploymentListerExpansion allows custom methods to be added to +// MachineDeploymentLister. +type MachineDeploymentListerExpansion interface{} + +// MachineDeploymentNamespaceListerExpansion allows custom methods to be added to +// MachineDeploymentNamespaceLister. +type MachineDeploymentNamespaceListerExpansion interface{} + +// MachineSetListerExpansion allows custom methods to be added to +// MachineSetLister. +type MachineSetListerExpansion interface{} + +// MachineSetNamespaceListerExpansion allows custom methods to be added to +// MachineSetNamespaceLister. +type MachineSetNamespaceListerExpansion interface{} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machine.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machine.go new file mode 100644 index 00000000000..8208d3386ab --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machine.go @@ -0,0 +1,94 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// MachineLister helps list Machines. +type MachineLister interface { + // List lists all Machines in the indexer. + List(selector labels.Selector) (ret []*v1beta1.Machine, err error) + // Machines returns an object that can list and get Machines. + Machines(namespace string) MachineNamespaceLister + MachineListerExpansion +} + +// machineLister implements the MachineLister interface. +type machineLister struct { + indexer cache.Indexer +} + +// NewMachineLister returns a new MachineLister. +func NewMachineLister(indexer cache.Indexer) MachineLister { + return &machineLister{indexer: indexer} +} + +// List lists all Machines in the indexer. +func (s *machineLister) List(selector labels.Selector) (ret []*v1beta1.Machine, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.Machine)) + }) + return ret, err +} + +// Machines returns an object that can list and get Machines. +func (s *machineLister) Machines(namespace string) MachineNamespaceLister { + return machineNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// MachineNamespaceLister helps list and get Machines. +type MachineNamespaceLister interface { + // List lists all Machines in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta1.Machine, err error) + // Get retrieves the Machine from the indexer for a given namespace and name. + Get(name string) (*v1beta1.Machine, error) + MachineNamespaceListerExpansion +} + +// machineNamespaceLister implements the MachineNamespaceLister +// interface. +type machineNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Machines in the indexer for a given namespace. +func (s machineNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.Machine, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.Machine)) + }) + return ret, err +} + +// Get retrieves the Machine from the indexer for a given namespace and name. +func (s machineNamespaceLister) Get(name string) (*v1beta1.Machine, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("machine"), name) + } + return obj.(*v1beta1.Machine), nil +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machineclass.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machineclass.go new file mode 100644 index 00000000000..7e78a7ec869 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machineclass.go @@ -0,0 +1,94 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// MachineClassLister helps list MachineClasses. +type MachineClassLister interface { + // List lists all MachineClasses in the indexer. + List(selector labels.Selector) (ret []*v1beta1.MachineClass, err error) + // MachineClasses returns an object that can list and get MachineClasses. + MachineClasses(namespace string) MachineClassNamespaceLister + MachineClassListerExpansion +} + +// machineClassLister implements the MachineClassLister interface. +type machineClassLister struct { + indexer cache.Indexer +} + +// NewMachineClassLister returns a new MachineClassLister. +func NewMachineClassLister(indexer cache.Indexer) MachineClassLister { + return &machineClassLister{indexer: indexer} +} + +// List lists all MachineClasses in the indexer. +func (s *machineClassLister) List(selector labels.Selector) (ret []*v1beta1.MachineClass, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.MachineClass)) + }) + return ret, err +} + +// MachineClasses returns an object that can list and get MachineClasses. +func (s *machineClassLister) MachineClasses(namespace string) MachineClassNamespaceLister { + return machineClassNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// MachineClassNamespaceLister helps list and get MachineClasses. +type MachineClassNamespaceLister interface { + // List lists all MachineClasses in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta1.MachineClass, err error) + // Get retrieves the MachineClass from the indexer for a given namespace and name. + Get(name string) (*v1beta1.MachineClass, error) + MachineClassNamespaceListerExpansion +} + +// machineClassNamespaceLister implements the MachineClassNamespaceLister +// interface. +type machineClassNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all MachineClasses in the indexer for a given namespace. +func (s machineClassNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.MachineClass, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.MachineClass)) + }) + return ret, err +} + +// Get retrieves the MachineClass from the indexer for a given namespace and name. +func (s machineClassNamespaceLister) Get(name string) (*v1beta1.MachineClass, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("machineclass"), name) + } + return obj.(*v1beta1.MachineClass), nil +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machinedeployment.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machinedeployment.go new file mode 100644 index 00000000000..359522d5636 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machinedeployment.go @@ -0,0 +1,94 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// MachineDeploymentLister helps list MachineDeployments. +type MachineDeploymentLister interface { + // List lists all MachineDeployments in the indexer. + List(selector labels.Selector) (ret []*v1beta1.MachineDeployment, err error) + // MachineDeployments returns an object that can list and get MachineDeployments. + MachineDeployments(namespace string) MachineDeploymentNamespaceLister + MachineDeploymentListerExpansion +} + +// machineDeploymentLister implements the MachineDeploymentLister interface. +type machineDeploymentLister struct { + indexer cache.Indexer +} + +// NewMachineDeploymentLister returns a new MachineDeploymentLister. +func NewMachineDeploymentLister(indexer cache.Indexer) MachineDeploymentLister { + return &machineDeploymentLister{indexer: indexer} +} + +// List lists all MachineDeployments in the indexer. +func (s *machineDeploymentLister) List(selector labels.Selector) (ret []*v1beta1.MachineDeployment, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.MachineDeployment)) + }) + return ret, err +} + +// MachineDeployments returns an object that can list and get MachineDeployments. +func (s *machineDeploymentLister) MachineDeployments(namespace string) MachineDeploymentNamespaceLister { + return machineDeploymentNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// MachineDeploymentNamespaceLister helps list and get MachineDeployments. +type MachineDeploymentNamespaceLister interface { + // List lists all MachineDeployments in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta1.MachineDeployment, err error) + // Get retrieves the MachineDeployment from the indexer for a given namespace and name. + Get(name string) (*v1beta1.MachineDeployment, error) + MachineDeploymentNamespaceListerExpansion +} + +// machineDeploymentNamespaceLister implements the MachineDeploymentNamespaceLister +// interface. +type machineDeploymentNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all MachineDeployments in the indexer for a given namespace. +func (s machineDeploymentNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.MachineDeployment, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.MachineDeployment)) + }) + return ret, err +} + +// Get retrieves the MachineDeployment from the indexer for a given namespace and name. +func (s machineDeploymentNamespaceLister) Get(name string) (*v1beta1.MachineDeployment, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("machinedeployment"), name) + } + return obj.(*v1beta1.MachineDeployment), nil +} diff --git a/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machineset.go b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machineset.go new file mode 100644 index 00000000000..0c5d85c94a5 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1/machineset.go @@ -0,0 +1,94 @@ +/* +Copyright 2018 The Kubernetes 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. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// MachineSetLister helps list MachineSets. +type MachineSetLister interface { + // List lists all MachineSets in the indexer. + List(selector labels.Selector) (ret []*v1beta1.MachineSet, err error) + // MachineSets returns an object that can list and get MachineSets. + MachineSets(namespace string) MachineSetNamespaceLister + MachineSetListerExpansion +} + +// machineSetLister implements the MachineSetLister interface. +type machineSetLister struct { + indexer cache.Indexer +} + +// NewMachineSetLister returns a new MachineSetLister. +func NewMachineSetLister(indexer cache.Indexer) MachineSetLister { + return &machineSetLister{indexer: indexer} +} + +// List lists all MachineSets in the indexer. +func (s *machineSetLister) List(selector labels.Selector) (ret []*v1beta1.MachineSet, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.MachineSet)) + }) + return ret, err +} + +// MachineSets returns an object that can list and get MachineSets. +func (s *machineSetLister) MachineSets(namespace string) MachineSetNamespaceLister { + return machineSetNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// MachineSetNamespaceLister helps list and get MachineSets. +type MachineSetNamespaceLister interface { + // List lists all MachineSets in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta1.MachineSet, err error) + // Get retrieves the MachineSet from the indexer for a given namespace and name. + Get(name string) (*v1beta1.MachineSet, error) + MachineSetNamespaceListerExpansion +} + +// machineSetNamespaceLister implements the MachineSetNamespaceLister +// interface. +type machineSetNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all MachineSets in the indexer for a given namespace. +func (s machineSetNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.MachineSet, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.MachineSet)) + }) + return ret, err +} + +// Get retrieves the MachineSet from the indexer for a given namespace and name. +func (s machineSetNamespaceLister) Get(name string) (*v1beta1.MachineSet, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("machineset"), name) + } + return obj.(*v1beta1.MachineSet), nil +} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/build_info.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/build_info.go deleted file mode 100644 index 288f0e85488..00000000000 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/build_info.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2019 The Prometheus 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. - -// +build go1.12 - -package prometheus - -import "runtime/debug" - -// readBuildInfo is a wrapper around debug.ReadBuildInfo for Go 1.12+. -func readBuildInfo() (path, version, sum string) { - path, version, sum = "unknown", "unknown", "unknown" - if bi, ok := debug.ReadBuildInfo(); ok { - path = bi.Main.Path - version = bi.Main.Version - sum = bi.Main.Sum - } - return -} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/build_info_pre_1.12.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/build_info_pre_1.12.go deleted file mode 100644 index 6609e2877c0..00000000000 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/build_info_pre_1.12.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2019 The Prometheus 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. - -// +build !go1.12 - -package prometheus - -// readBuildInfo is a wrapper around debug.ReadBuildInfo for Go versions before -// 1.12. Remove this whole file once the minimum supported Go version is 1.12. -func readBuildInfo() (path, version, sum string) { - return "unknown", "unknown", "unknown" -} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/collector.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/collector.go index 1e839650d4d..c0d70b2faf1 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/collector.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/collector.go @@ -79,7 +79,7 @@ type Collector interface { // of the Describe method. If a Collector sometimes collects no metrics at all // (for example vectors like CounterVec, GaugeVec, etc., which only collect // metrics after a metric with a fully specified label set has been accessed), -// it might even get registered as an unchecked Collector (cf. the Register +// it might even get registered as an unchecked Collecter (cf. the Register // method of the Registerer interface). Hence, only use this shortcut // implementation of Describe if you are certain to fulfill the contract. // diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/doc.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/doc.go index 01977de6614..5d9525defc8 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/doc.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/doc.go @@ -122,13 +122,13 @@ // the Collect method. The Describe method has to return separate Desc // instances, representative of the “throw-away” metrics to be created later. // NewDesc comes in handy to create those Desc instances. Alternatively, you -// could return no Desc at all, which will mark the Collector “unchecked”. No -// checks are performed at registration time, but metric consistency will still +// could return no Desc at all, which will marke the Collector “unchecked”. No +// checks are porformed at registration time, but metric consistency will still // be ensured at scrape time, i.e. any inconsistencies will lead to scrape // errors. Thus, with unchecked Collectors, the responsibility to not collect // metrics that lead to inconsistencies in the total scrape result lies with the // implementer of the Collector. While this is not a desirable state, it is -// sometimes necessary. The typical use case is a situation where the exact +// sometimes necessary. The typical use case is a situatios where the exact // metrics to be returned by a Collector cannot be predicted at registration // time, but the implementer has sufficient knowledge of the whole system to // guarantee metric consistency. @@ -183,6 +183,7 @@ // method can then expose the gathered metrics in some way. Usually, the metrics // are served via HTTP on the /metrics endpoint. That's happening in the example // above. The tools to expose metrics via HTTP are in the promhttp sub-package. +// (The top-level functions in the prometheus package are deprecated.) // // Pushing to the Pushgateway // diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go index dc9247fed97..ba3b9333edd 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/go_collector.go @@ -14,9 +14,9 @@ package prometheus import ( + "fmt" "runtime" "runtime/debug" - "sync" "time" ) @@ -26,41 +26,16 @@ type goCollector struct { gcDesc *Desc goInfoDesc *Desc - // ms... are memstats related. - msLast *runtime.MemStats // Previously collected memstats. - msLastTimestamp time.Time - msMtx sync.Mutex // Protects msLast and msLastTimestamp. - msMetrics memStatsMetrics - msRead func(*runtime.MemStats) // For mocking in tests. - msMaxWait time.Duration // Wait time for fresh memstats. - msMaxAge time.Duration // Maximum allowed age of old memstats. + // metrics to describe and collect + metrics memStatsMetrics } -// NewGoCollector returns a collector that exports metrics about the current Go +// NewGoCollector returns a collector which exports metrics about the current Go // process. This includes memory stats. To collect those, runtime.ReadMemStats -// is called. This requires to “stop the world”, which usually only happens for -// garbage collection (GC). Take the following implications into account when -// deciding whether to use the Go collector: -// -// 1. The performance impact of stopping the world is the more relevant the more -// frequently metrics are collected. However, with Go1.9 or later the -// stop-the-world time per metrics collection is very short (~25µs) so that the -// performance impact will only matter in rare cases. However, with older Go -// versions, the stop-the-world duration depends on the heap size and can be -// quite significant (~1.7 ms/GiB as per +// is called. This causes a stop-the-world, which is very short with Go1.9+ +// (~25µs). However, with older Go versions, the stop-the-world duration depends +// on the heap size and can be quite significant (~1.7 ms/GiB as per // https://go-review.googlesource.com/c/go/+/34937). -// -// 2. During an ongoing GC, nothing else can stop the world. Therefore, if the -// metrics collection happens to coincide with GC, it will only complete after -// GC has finished. Usually, GC is fast enough to not cause problems. However, -// with a very large heap, GC might take multiple seconds, which is enough to -// cause scrape timeouts in common setups. To avoid this problem, the Go -// collector will use the memstats from a previous collection if -// runtime.ReadMemStats takes more than 1s. However, if there are no previously -// collected memstats, or their collection is more than 5m ago, the collection -// will block until runtime.ReadMemStats succeeds. (The problem might be solved -// in Go1.13, see https://github.com/golang/go/issues/19812 for the related Go -// issue.) func NewGoCollector() Collector { return &goCollector{ goroutinesDesc: NewDesc( @@ -79,11 +54,7 @@ func NewGoCollector() Collector { "go_info", "Information about the Go environment.", nil, Labels{"version": runtime.Version()}), - msLast: &runtime.MemStats{}, - msRead: runtime.ReadMemStats, - msMaxWait: time.Second, - msMaxAge: 5 * time.Minute, - msMetrics: memStatsMetrics{ + metrics: memStatsMetrics{ { desc: NewDesc( memstatNamespace("alloc_bytes"), @@ -282,7 +253,7 @@ func NewGoCollector() Collector { } func memstatNamespace(s string) string { - return "go_memstats_" + s + return fmt.Sprintf("go_memstats_%s", s) } // Describe returns all descriptions of the collector. @@ -291,27 +262,13 @@ func (c *goCollector) Describe(ch chan<- *Desc) { ch <- c.threadsDesc ch <- c.gcDesc ch <- c.goInfoDesc - for _, i := range c.msMetrics { + for _, i := range c.metrics { ch <- i.desc } } // Collect returns the current state of all metrics of the collector. func (c *goCollector) Collect(ch chan<- Metric) { - var ( - ms = &runtime.MemStats{} - done = make(chan struct{}) - ) - // Start reading memstats first as it might take a while. - go func() { - c.msRead(ms) - c.msMtx.Lock() - c.msLast = ms - c.msLastTimestamp = time.Now() - c.msMtx.Unlock() - close(done) - }() - ch <- MustNewConstMetric(c.goroutinesDesc, GaugeValue, float64(runtime.NumGoroutine())) n, _ := runtime.ThreadCreateProfile(nil) ch <- MustNewConstMetric(c.threadsDesc, GaugeValue, float64(n)) @@ -329,31 +286,9 @@ func (c *goCollector) Collect(ch chan<- Metric) { ch <- MustNewConstMetric(c.goInfoDesc, GaugeValue, 1) - timer := time.NewTimer(c.msMaxWait) - select { - case <-done: // Our own ReadMemStats succeeded in time. Use it. - timer.Stop() // Important for high collection frequencies to not pile up timers. - c.msCollect(ch, ms) - return - case <-timer.C: // Time out, use last memstats if possible. Continue below. - } - c.msMtx.Lock() - if time.Since(c.msLastTimestamp) < c.msMaxAge { - // Last memstats are recent enough. Collect from them under the lock. - c.msCollect(ch, c.msLast) - c.msMtx.Unlock() - return - } - // If we are here, the last memstats are too old or don't exist. We have - // to wait until our own ReadMemStats finally completes. For that to - // happen, we have to release the lock. - c.msMtx.Unlock() - <-done - c.msCollect(ch, ms) -} - -func (c *goCollector) msCollect(ch chan<- Metric, ms *runtime.MemStats) { - for _, i := range c.msMetrics { + ms := &runtime.MemStats{} + runtime.ReadMemStats(ms) + for _, i := range c.metrics { ch <- MustNewConstMetric(i.desc, i.valType, i.eval(ms)) } } @@ -364,33 +299,3 @@ type memStatsMetrics []struct { eval func(*runtime.MemStats) float64 valType ValueType } - -// NewBuildInfoCollector returns a collector collecting a single metric -// "go_build_info" with the constant value 1 and three labels "path", "version", -// and "checksum". Their label values contain the main module path, version, and -// checksum, respectively. The labels will only have meaningful values if the -// binary is built with Go module support and from source code retrieved from -// the source repository (rather than the local file system). This is usually -// accomplished by building from outside of GOPATH, specifying the full address -// of the main package, e.g. "GO111MODULE=on go run -// github.com/prometheus/client_golang/examples/random". If built without Go -// module support, all label values will be "unknown". If built with Go module -// support but using the source code from the local file system, the "path" will -// be set appropriately, but "checksum" will be empty and "version" will be -// "(devel)". -// -// This collector uses only the build information for the main module. See -// https://github.com/povilasv/prommod for an example of a collector for the -// module dependencies. -func NewBuildInfoCollector() Collector { - path, version, sum := readBuildInfo() - c := &selfCollector{MustNewConstMetric( - NewDesc( - "go_build_info", - "Build information about the main Go module.", - nil, Labels{"path": path, "version": version, "checksum": sum}, - ), - GaugeValue, 1)} - c.init(c.self) - return c -} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/histogram.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/histogram.go index d7ea67bd2ba..f88da707bc8 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/histogram.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/histogram.go @@ -204,8 +204,8 @@ func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogr } } } - // Finally we know the final length of h.upperBounds and can make buckets - // for both counts: + // Finally we know the final length of h.upperBounds and can make counts + // for both states: h.counts[0].buckets = make([]uint64, len(h.upperBounds)) h.counts[1].buckets = make([]uint64, len(h.upperBounds)) @@ -224,21 +224,18 @@ type histogramCounts struct { } type histogram struct { - // countAndHotIdx enables lock-free writes with use of atomic updates. - // The most significant bit is the hot index [0 or 1] of the count field - // below. Observe calls update the hot one. All remaining bits count the - // number of Observe calls. Observe starts by incrementing this counter, - // and finish by incrementing the count field in the respective - // histogramCounts, as a marker for completion. + // countAndHotIdx is a complicated one. For lock-free yet atomic + // observations, we need to save the total count of observations again, + // combined with the index of the currently-hot counts struct, so that + // we can perform the operation on both values atomically. The least + // significant bit defines the hot counts struct. The remaining 63 bits + // represent the total count of observations. This happens under the + // assumption that the 63bit count will never overflow. Rationale: An + // observations takes about 30ns. Let's assume it could happen in + // 10ns. Overflowing the counter will then take at least (2^63)*10ns, + // which is about 3000 years. // - // Calls of the Write method (which are non-mutating reads from the - // perspective of the histogram) swap the hot–cold under the writeMtx - // lock. A cooldown is awaited (while locked) by comparing the number of - // observations with the initiation count. Once they match, then the - // last observation on the now cool one has completed. All cool fields must - // be merged into the new hot before releasing writeMtx. - // - // Fields with atomic access first! See alignment constraint: + // This has to be first in the struct for 64bit alignment. See // http://golang.org/pkg/sync/atomic/#pkg-note-BUG countAndHotIdx uint64 @@ -246,14 +243,16 @@ type histogram struct { desc *Desc writeMtx sync.Mutex // Only used in the Write method. + upperBounds []float64 + // Two counts, one is "hot" for lock-free observations, the other is // "cold" for writing out a dto.Metric. It has to be an array of // pointers to guarantee 64bit alignment of the histogramCounts, see // http://golang.org/pkg/sync/atomic/#pkg-note-BUG. counts [2]*histogramCounts + hotIdx int // Index of currently-hot counts. Only used within Write. - upperBounds []float64 - labelPairs []*dto.LabelPair + labelPairs []*dto.LabelPair } func (h *histogram) Desc() *Desc { @@ -272,11 +271,11 @@ func (h *histogram) Observe(v float64) { // 300 buckets: 154 ns/op linear - binary 61.6 ns/op i := sort.SearchFloat64s(h.upperBounds, v) - // We increment h.countAndHotIdx so that the counter in the lower - // 63 bits gets incremented. At the same time, we get the new value + // We increment h.countAndHotIdx by 2 so that the counter in the upper + // 63 bits gets incremented by 1. At the same time, we get the new value // back, which we can use to find the currently-hot counts. - n := atomic.AddUint64(&h.countAndHotIdx, 1) - hotCounts := h.counts[n>>63] + n := atomic.AddUint64(&h.countAndHotIdx, 2) + hotCounts := h.counts[n%2] if i < len(h.upperBounds) { atomic.AddUint64(&hotCounts.buckets[i], 1) @@ -294,43 +293,72 @@ func (h *histogram) Observe(v float64) { } func (h *histogram) Write(out *dto.Metric) error { - // For simplicity, we protect this whole method by a mutex. It is not in - // the hot path, i.e. Observe is called much more often than Write. The - // complication of making Write lock-free isn't worth it, if possible at - // all. + var ( + his = &dto.Histogram{} + buckets = make([]*dto.Bucket, len(h.upperBounds)) + hotCounts, coldCounts *histogramCounts + count uint64 + ) + + // For simplicity, we mutex the rest of this method. It is not in the + // hot path, i.e. Observe is called much more often than Write. The + // complication of making Write lock-free isn't worth it. h.writeMtx.Lock() defer h.writeMtx.Unlock() - // Adding 1<<63 switches the hot index (from 0 to 1 or from 1 to 0) - // without touching the count bits. See the struct comments for a full - // description of the algorithm. - n := atomic.AddUint64(&h.countAndHotIdx, 1<<63) - // count is contained unchanged in the lower 63 bits. - count := n & ((1 << 63) - 1) - // The most significant bit tells us which counts is hot. The complement - // is thus the cold one. - hotCounts := h.counts[n>>63] - coldCounts := h.counts[(^n)>>63] - - // Await cooldown. - for count != atomic.LoadUint64(&coldCounts.count) { - runtime.Gosched() // Let observations get work done. + // This is a bit arcane, which is why the following spells out this if + // clause in English: + // + // If the currently-hot counts struct is #0, we atomically increment + // h.countAndHotIdx by 1 so that from now on Observe will use the counts + // struct #1. Furthermore, the atomic increment gives us the new value, + // which, in its most significant 63 bits, tells us the count of + // observations done so far up to and including currently ongoing + // observations still using the counts struct just changed from hot to + // cold. To have a normal uint64 for the count, we bitshift by 1 and + // save the result in count. We also set h.hotIdx to 1 for the next + // Write call, and we will refer to counts #1 as hotCounts and to counts + // #0 as coldCounts. + // + // If the currently-hot counts struct is #1, we do the corresponding + // things the other way round. We have to _decrement_ h.countAndHotIdx + // (which is a bit arcane in itself, as we have to express -1 with an + // unsigned int...). + if h.hotIdx == 0 { + count = atomic.AddUint64(&h.countAndHotIdx, 1) >> 1 + h.hotIdx = 1 + hotCounts = h.counts[1] + coldCounts = h.counts[0] + } else { + count = atomic.AddUint64(&h.countAndHotIdx, ^uint64(0)) >> 1 // Decrement. + h.hotIdx = 0 + hotCounts = h.counts[0] + coldCounts = h.counts[1] } - his := &dto.Histogram{ - Bucket: make([]*dto.Bucket, len(h.upperBounds)), - SampleCount: proto.Uint64(count), - SampleSum: proto.Float64(math.Float64frombits(atomic.LoadUint64(&coldCounts.sumBits))), + // Now we have to wait for the now-declared-cold counts to actually cool + // down, i.e. wait for all observations still using it to finish. That's + // the case once the count in the cold counts struct is the same as the + // one atomically retrieved from the upper 63bits of h.countAndHotIdx. + for { + if count == atomic.LoadUint64(&coldCounts.count) { + break + } + runtime.Gosched() // Let observations get work done. } + + his.SampleCount = proto.Uint64(count) + his.SampleSum = proto.Float64(math.Float64frombits(atomic.LoadUint64(&coldCounts.sumBits))) var cumCount uint64 for i, upperBound := range h.upperBounds { cumCount += atomic.LoadUint64(&coldCounts.buckets[i]) - his.Bucket[i] = &dto.Bucket{ + buckets[i] = &dto.Bucket{ CumulativeCount: proto.Uint64(cumCount), UpperBound: proto.Float64(upperBound), } } + his.Bucket = buckets out.Histogram = his out.Label = h.labelPairs diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/http.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/http.go new file mode 100644 index 00000000000..9f0875bfc81 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/http.go @@ -0,0 +1,504 @@ +// Copyright 2014 The Prometheus 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 prometheus + +import ( + "bufio" + "compress/gzip" + "io" + "net" + "net/http" + "strconv" + "strings" + "sync" + "time" + + "github.com/prometheus/common/expfmt" +) + +// TODO(beorn7): Remove this whole file. It is a partial mirror of +// promhttp/http.go (to avoid circular import chains) where everything HTTP +// related should live. The functions here are just for avoiding +// breakage. Everything is deprecated. + +const ( + contentTypeHeader = "Content-Type" + contentLengthHeader = "Content-Length" + contentEncodingHeader = "Content-Encoding" + acceptEncodingHeader = "Accept-Encoding" +) + +var gzipPool = sync.Pool{ + New: func() interface{} { + return gzip.NewWriter(nil) + }, +} + +// Handler returns an HTTP handler for the DefaultGatherer. It is +// already instrumented with InstrumentHandler (using "prometheus" as handler +// name). +// +// Deprecated: Please note the issues described in the doc comment of +// InstrumentHandler. You might want to consider using promhttp.Handler instead. +func Handler() http.Handler { + return InstrumentHandler("prometheus", UninstrumentedHandler()) +} + +// UninstrumentedHandler returns an HTTP handler for the DefaultGatherer. +// +// Deprecated: Use promhttp.HandlerFor(DefaultGatherer, promhttp.HandlerOpts{}) +// instead. See there for further documentation. +func UninstrumentedHandler() http.Handler { + return http.HandlerFunc(func(rsp http.ResponseWriter, req *http.Request) { + mfs, err := DefaultGatherer.Gather() + if err != nil { + httpError(rsp, err) + return + } + + contentType := expfmt.Negotiate(req.Header) + header := rsp.Header() + header.Set(contentTypeHeader, string(contentType)) + + w := io.Writer(rsp) + if gzipAccepted(req.Header) { + header.Set(contentEncodingHeader, "gzip") + gz := gzipPool.Get().(*gzip.Writer) + defer gzipPool.Put(gz) + + gz.Reset(w) + defer gz.Close() + + w = gz + } + + enc := expfmt.NewEncoder(w, contentType) + + for _, mf := range mfs { + if err := enc.Encode(mf); err != nil { + httpError(rsp, err) + return + } + } + }) +} + +var instLabels = []string{"method", "code"} + +type nower interface { + Now() time.Time +} + +type nowFunc func() time.Time + +func (n nowFunc) Now() time.Time { + return n() +} + +var now nower = nowFunc(func() time.Time { + return time.Now() +}) + +// InstrumentHandler wraps the given HTTP handler for instrumentation. It +// registers four metric collectors (if not already done) and reports HTTP +// metrics to the (newly or already) registered collectors: http_requests_total +// (CounterVec), http_request_duration_microseconds (Summary), +// http_request_size_bytes (Summary), http_response_size_bytes (Summary). Each +// has a constant label named "handler" with the provided handlerName as +// value. http_requests_total is a metric vector partitioned by HTTP method +// (label name "method") and HTTP status code (label name "code"). +// +// Deprecated: InstrumentHandler has several issues. Use the tooling provided in +// package promhttp instead. The issues are the following: (1) It uses Summaries +// rather than Histograms. Summaries are not useful if aggregation across +// multiple instances is required. (2) It uses microseconds as unit, which is +// deprecated and should be replaced by seconds. (3) The size of the request is +// calculated in a separate goroutine. Since this calculator requires access to +// the request header, it creates a race with any writes to the header performed +// during request handling. httputil.ReverseProxy is a prominent example for a +// handler performing such writes. (4) It has additional issues with HTTP/2, cf. +// https://github.com/prometheus/client_golang/issues/272. +func InstrumentHandler(handlerName string, handler http.Handler) http.HandlerFunc { + return InstrumentHandlerFunc(handlerName, handler.ServeHTTP) +} + +// InstrumentHandlerFunc wraps the given function for instrumentation. It +// otherwise works in the same way as InstrumentHandler (and shares the same +// issues). +// +// Deprecated: InstrumentHandlerFunc is deprecated for the same reasons as +// InstrumentHandler is. Use the tooling provided in package promhttp instead. +func InstrumentHandlerFunc(handlerName string, handlerFunc func(http.ResponseWriter, *http.Request)) http.HandlerFunc { + return InstrumentHandlerFuncWithOpts( + SummaryOpts{ + Subsystem: "http", + ConstLabels: Labels{"handler": handlerName}, + Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, + }, + handlerFunc, + ) +} + +// InstrumentHandlerWithOpts works like InstrumentHandler (and shares the same +// issues) but provides more flexibility (at the cost of a more complex call +// syntax). As InstrumentHandler, this function registers four metric +// collectors, but it uses the provided SummaryOpts to create them. However, the +// fields "Name" and "Help" in the SummaryOpts are ignored. "Name" is replaced +// by "requests_total", "request_duration_microseconds", "request_size_bytes", +// and "response_size_bytes", respectively. "Help" is replaced by an appropriate +// help string. The names of the variable labels of the http_requests_total +// CounterVec are "method" (get, post, etc.), and "code" (HTTP status code). +// +// If InstrumentHandlerWithOpts is called as follows, it mimics exactly the +// behavior of InstrumentHandler: +// +// prometheus.InstrumentHandlerWithOpts( +// prometheus.SummaryOpts{ +// Subsystem: "http", +// ConstLabels: prometheus.Labels{"handler": handlerName}, +// }, +// handler, +// ) +// +// Technical detail: "requests_total" is a CounterVec, not a SummaryVec, so it +// cannot use SummaryOpts. Instead, a CounterOpts struct is created internally, +// and all its fields are set to the equally named fields in the provided +// SummaryOpts. +// +// Deprecated: InstrumentHandlerWithOpts is deprecated for the same reasons as +// InstrumentHandler is. Use the tooling provided in package promhttp instead. +func InstrumentHandlerWithOpts(opts SummaryOpts, handler http.Handler) http.HandlerFunc { + return InstrumentHandlerFuncWithOpts(opts, handler.ServeHTTP) +} + +// InstrumentHandlerFuncWithOpts works like InstrumentHandlerFunc (and shares +// the same issues) but provides more flexibility (at the cost of a more complex +// call syntax). See InstrumentHandlerWithOpts for details how the provided +// SummaryOpts are used. +// +// Deprecated: InstrumentHandlerFuncWithOpts is deprecated for the same reasons +// as InstrumentHandler is. Use the tooling provided in package promhttp instead. +func InstrumentHandlerFuncWithOpts(opts SummaryOpts, handlerFunc func(http.ResponseWriter, *http.Request)) http.HandlerFunc { + reqCnt := NewCounterVec( + CounterOpts{ + Namespace: opts.Namespace, + Subsystem: opts.Subsystem, + Name: "requests_total", + Help: "Total number of HTTP requests made.", + ConstLabels: opts.ConstLabels, + }, + instLabels, + ) + if err := Register(reqCnt); err != nil { + if are, ok := err.(AlreadyRegisteredError); ok { + reqCnt = are.ExistingCollector.(*CounterVec) + } else { + panic(err) + } + } + + opts.Name = "request_duration_microseconds" + opts.Help = "The HTTP request latencies in microseconds." + reqDur := NewSummary(opts) + if err := Register(reqDur); err != nil { + if are, ok := err.(AlreadyRegisteredError); ok { + reqDur = are.ExistingCollector.(Summary) + } else { + panic(err) + } + } + + opts.Name = "request_size_bytes" + opts.Help = "The HTTP request sizes in bytes." + reqSz := NewSummary(opts) + if err := Register(reqSz); err != nil { + if are, ok := err.(AlreadyRegisteredError); ok { + reqSz = are.ExistingCollector.(Summary) + } else { + panic(err) + } + } + + opts.Name = "response_size_bytes" + opts.Help = "The HTTP response sizes in bytes." + resSz := NewSummary(opts) + if err := Register(resSz); err != nil { + if are, ok := err.(AlreadyRegisteredError); ok { + resSz = are.ExistingCollector.(Summary) + } else { + panic(err) + } + } + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + now := time.Now() + + delegate := &responseWriterDelegator{ResponseWriter: w} + out := computeApproximateRequestSize(r) + + _, cn := w.(http.CloseNotifier) + _, fl := w.(http.Flusher) + _, hj := w.(http.Hijacker) + _, rf := w.(io.ReaderFrom) + var rw http.ResponseWriter + if cn && fl && hj && rf { + rw = &fancyResponseWriterDelegator{delegate} + } else { + rw = delegate + } + handlerFunc(rw, r) + + elapsed := float64(time.Since(now)) / float64(time.Microsecond) + + method := sanitizeMethod(r.Method) + code := sanitizeCode(delegate.status) + reqCnt.WithLabelValues(method, code).Inc() + reqDur.Observe(elapsed) + resSz.Observe(float64(delegate.written)) + reqSz.Observe(float64(<-out)) + }) +} + +func computeApproximateRequestSize(r *http.Request) <-chan int { + // Get URL length in current goroutine for avoiding a race condition. + // HandlerFunc that runs in parallel may modify the URL. + s := 0 + if r.URL != nil { + s += len(r.URL.String()) + } + + out := make(chan int, 1) + + go func() { + s += len(r.Method) + s += len(r.Proto) + for name, values := range r.Header { + s += len(name) + for _, value := range values { + s += len(value) + } + } + s += len(r.Host) + + // N.B. r.Form and r.MultipartForm are assumed to be included in r.URL. + + if r.ContentLength != -1 { + s += int(r.ContentLength) + } + out <- s + close(out) + }() + + return out +} + +type responseWriterDelegator struct { + http.ResponseWriter + + status int + written int64 + wroteHeader bool +} + +func (r *responseWriterDelegator) WriteHeader(code int) { + r.status = code + r.wroteHeader = true + r.ResponseWriter.WriteHeader(code) +} + +func (r *responseWriterDelegator) Write(b []byte) (int, error) { + if !r.wroteHeader { + r.WriteHeader(http.StatusOK) + } + n, err := r.ResponseWriter.Write(b) + r.written += int64(n) + return n, err +} + +type fancyResponseWriterDelegator struct { + *responseWriterDelegator +} + +func (f *fancyResponseWriterDelegator) CloseNotify() <-chan bool { + return f.ResponseWriter.(http.CloseNotifier).CloseNotify() +} + +func (f *fancyResponseWriterDelegator) Flush() { + f.ResponseWriter.(http.Flusher).Flush() +} + +func (f *fancyResponseWriterDelegator) Hijack() (net.Conn, *bufio.ReadWriter, error) { + return f.ResponseWriter.(http.Hijacker).Hijack() +} + +func (f *fancyResponseWriterDelegator) ReadFrom(r io.Reader) (int64, error) { + if !f.wroteHeader { + f.WriteHeader(http.StatusOK) + } + n, err := f.ResponseWriter.(io.ReaderFrom).ReadFrom(r) + f.written += n + return n, err +} + +func sanitizeMethod(m string) string { + switch m { + case "GET", "get": + return "get" + case "PUT", "put": + return "put" + case "HEAD", "head": + return "head" + case "POST", "post": + return "post" + case "DELETE", "delete": + return "delete" + case "CONNECT", "connect": + return "connect" + case "OPTIONS", "options": + return "options" + case "NOTIFY", "notify": + return "notify" + default: + return strings.ToLower(m) + } +} + +func sanitizeCode(s int) string { + switch s { + case 100: + return "100" + case 101: + return "101" + + case 200: + return "200" + case 201: + return "201" + case 202: + return "202" + case 203: + return "203" + case 204: + return "204" + case 205: + return "205" + case 206: + return "206" + + case 300: + return "300" + case 301: + return "301" + case 302: + return "302" + case 304: + return "304" + case 305: + return "305" + case 307: + return "307" + + case 400: + return "400" + case 401: + return "401" + case 402: + return "402" + case 403: + return "403" + case 404: + return "404" + case 405: + return "405" + case 406: + return "406" + case 407: + return "407" + case 408: + return "408" + case 409: + return "409" + case 410: + return "410" + case 411: + return "411" + case 412: + return "412" + case 413: + return "413" + case 414: + return "414" + case 415: + return "415" + case 416: + return "416" + case 417: + return "417" + case 418: + return "418" + + case 500: + return "500" + case 501: + return "501" + case 502: + return "502" + case 503: + return "503" + case 504: + return "504" + case 505: + return "505" + + case 428: + return "428" + case 429: + return "429" + case 431: + return "431" + case 511: + return "511" + + default: + return strconv.Itoa(s) + } +} + +// gzipAccepted returns whether the client will accept gzip-encoded content. +func gzipAccepted(header http.Header) bool { + a := header.Get(acceptEncodingHeader) + parts := strings.Split(a, ",") + for _, part := range parts { + part = strings.TrimSpace(part) + if part == "gzip" || strings.HasPrefix(part, "gzip;") { + return true + } + } + return false +} + +// httpError removes any content-encoding header and then calls http.Error with +// the provided error and http.StatusInternalServerErrer. Error contents is +// supposed to be uncompressed plain text. However, same as with a plain +// http.Error, any header settings will be void if the header has already been +// sent. The error message will still be written to the writer, but it will +// probably be of limited use. +func httpError(rsp http.ResponseWriter, err error) { + rsp.Header().Del(contentEncodingHeader) + http.Error( + rsp, + "An error has occurred while serving metrics:\n\n"+err.Error(), + http.StatusInternalServerError, + ) +} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go index 9b809794212..55176d58ce6 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go @@ -16,6 +16,8 @@ package prometheus import ( "errors" "os" + + "github.com/prometheus/procfs" ) type processCollector struct { @@ -57,9 +59,20 @@ type ProcessCollectorOpts struct { // collector for the current process with an empty namespace string and no error // reporting. // -// The collector only works on operating systems with a Linux-style proc -// filesystem and on Microsoft Windows. On other operating systems, it will not -// collect any metrics. +// Currently, the collector depends on a Linux-style proc filesystem and +// therefore only exports metrics for Linux. +// +// Note: An older version of this function had the following signature: +// +// NewProcessCollector(pid int, namespace string) Collector +// +// Most commonly, it was called as +// +// NewProcessCollector(os.Getpid(), "") +// +// The following call of the current version is equivalent to the above: +// +// NewProcessCollector(ProcessCollectorOpts{}) func NewProcessCollector(opts ProcessCollectorOpts) Collector { ns := "" if len(opts.Namespace) > 0 { @@ -113,7 +126,7 @@ func NewProcessCollector(opts ProcessCollectorOpts) Collector { } // Set up process metric collection if supported by the runtime. - if canCollectProcess() { + if _, err := procfs.NewStat(); err == nil { c.collectFn = c.processCollect } else { c.collectFn = func(ch chan<- Metric) { @@ -140,6 +153,46 @@ func (c *processCollector) Collect(ch chan<- Metric) { c.collectFn(ch) } +func (c *processCollector) processCollect(ch chan<- Metric) { + pid, err := c.pidFn() + if err != nil { + c.reportError(ch, nil, err) + return + } + + p, err := procfs.NewProc(pid) + if err != nil { + c.reportError(ch, nil, err) + return + } + + if stat, err := p.NewStat(); err == nil { + ch <- MustNewConstMetric(c.cpuTotal, CounterValue, stat.CPUTime()) + ch <- MustNewConstMetric(c.vsize, GaugeValue, float64(stat.VirtualMemory())) + ch <- MustNewConstMetric(c.rss, GaugeValue, float64(stat.ResidentMemory())) + if startTime, err := stat.StartTime(); err == nil { + ch <- MustNewConstMetric(c.startTime, GaugeValue, startTime) + } else { + c.reportError(ch, c.startTime, err) + } + } else { + c.reportError(ch, nil, err) + } + + if fds, err := p.FileDescriptorsLen(); err == nil { + ch <- MustNewConstMetric(c.openFDs, GaugeValue, float64(fds)) + } else { + c.reportError(ch, c.openFDs, err) + } + + if limits, err := p.NewLimits(); err == nil { + ch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(limits.OpenFiles)) + ch <- MustNewConstMetric(c.maxVsize, GaugeValue, float64(limits.AddressSpace)) + } else { + c.reportError(ch, nil, err) + } +} + func (c *processCollector) reportError(ch chan<- Metric, desc *Desc, err error) { if !c.reportErrors { return diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go deleted file mode 100644 index 3117461cde7..00000000000 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2019 The Prometheus 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. - -// +build !windows - -package prometheus - -import ( - "github.com/prometheus/procfs" -) - -func canCollectProcess() bool { - _, err := procfs.NewDefaultFS() - return err == nil -} - -func (c *processCollector) processCollect(ch chan<- Metric) { - pid, err := c.pidFn() - if err != nil { - c.reportError(ch, nil, err) - return - } - - p, err := procfs.NewProc(pid) - if err != nil { - c.reportError(ch, nil, err) - return - } - - if stat, err := p.Stat(); err == nil { - ch <- MustNewConstMetric(c.cpuTotal, CounterValue, stat.CPUTime()) - ch <- MustNewConstMetric(c.vsize, GaugeValue, float64(stat.VirtualMemory())) - ch <- MustNewConstMetric(c.rss, GaugeValue, float64(stat.ResidentMemory())) - if startTime, err := stat.StartTime(); err == nil { - ch <- MustNewConstMetric(c.startTime, GaugeValue, startTime) - } else { - c.reportError(ch, c.startTime, err) - } - } else { - c.reportError(ch, nil, err) - } - - if fds, err := p.FileDescriptorsLen(); err == nil { - ch <- MustNewConstMetric(c.openFDs, GaugeValue, float64(fds)) - } else { - c.reportError(ch, c.openFDs, err) - } - - if limits, err := p.Limits(); err == nil { - ch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(limits.OpenFiles)) - ch <- MustNewConstMetric(c.maxVsize, GaugeValue, float64(limits.AddressSpace)) - } else { - c.reportError(ch, nil, err) - } -} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go deleted file mode 100644 index e0b935d1fef..00000000000 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2019 The Prometheus 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 prometheus - -import ( - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -func canCollectProcess() bool { - return true -} - -var ( - modpsapi = syscall.NewLazyDLL("psapi.dll") - modkernel32 = syscall.NewLazyDLL("kernel32.dll") - - procGetProcessMemoryInfo = modpsapi.NewProc("GetProcessMemoryInfo") - procGetProcessHandleCount = modkernel32.NewProc("GetProcessHandleCount") -) - -type processMemoryCounters struct { - // https://docs.microsoft.com/en-us/windows/desktop/api/psapi/ns-psapi-_process_memory_counters_ex - _ uint32 - PageFaultCount uint32 - PeakWorkingSetSize uint64 - WorkingSetSize uint64 - QuotaPeakPagedPoolUsage uint64 - QuotaPagedPoolUsage uint64 - QuotaPeakNonPagedPoolUsage uint64 - QuotaNonPagedPoolUsage uint64 - PagefileUsage uint64 - PeakPagefileUsage uint64 - PrivateUsage uint64 -} - -func getProcessMemoryInfo(handle windows.Handle) (processMemoryCounters, error) { - mem := processMemoryCounters{} - r1, _, err := procGetProcessMemoryInfo.Call( - uintptr(handle), - uintptr(unsafe.Pointer(&mem)), - uintptr(unsafe.Sizeof(mem)), - ) - if r1 != 1 { - return mem, err - } else { - return mem, nil - } -} - -func getProcessHandleCount(handle windows.Handle) (uint32, error) { - var count uint32 - r1, _, err := procGetProcessHandleCount.Call( - uintptr(handle), - uintptr(unsafe.Pointer(&count)), - ) - if r1 != 1 { - return 0, err - } else { - return count, nil - } -} - -func (c *processCollector) processCollect(ch chan<- Metric) { - h, err := windows.GetCurrentProcess() - if err != nil { - c.reportError(ch, nil, err) - return - } - - var startTime, exitTime, kernelTime, userTime windows.Filetime - err = windows.GetProcessTimes(h, &startTime, &exitTime, &kernelTime, &userTime) - if err != nil { - c.reportError(ch, nil, err) - return - } - ch <- MustNewConstMetric(c.startTime, GaugeValue, float64(startTime.Nanoseconds()/1e9)) - ch <- MustNewConstMetric(c.cpuTotal, CounterValue, fileTimeToSeconds(kernelTime)+fileTimeToSeconds(userTime)) - - mem, err := getProcessMemoryInfo(h) - if err != nil { - c.reportError(ch, nil, err) - return - } - ch <- MustNewConstMetric(c.vsize, GaugeValue, float64(mem.PrivateUsage)) - ch <- MustNewConstMetric(c.rss, GaugeValue, float64(mem.WorkingSetSize)) - - handles, err := getProcessHandleCount(h) - if err != nil { - c.reportError(ch, nil, err) - return - } - ch <- MustNewConstMetric(c.openFDs, GaugeValue, float64(handles)) - ch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(16*1024*1024)) // Windows has a hard-coded max limit, not per-process. -} - -func fileTimeToSeconds(ft windows.Filetime) float64 { - return float64(uint64(ft.HighDateTime)<<32+uint64(ft.LowDateTime)) / 1e7 -} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go index fa535684f96..67b56d37cfd 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go @@ -38,6 +38,7 @@ type delegator interface { type responseWriterDelegator struct { http.ResponseWriter + handler, method string status int written int64 wroteHeader bool @@ -74,11 +75,8 @@ type closeNotifierDelegator struct{ *responseWriterDelegator } type flusherDelegator struct{ *responseWriterDelegator } type hijackerDelegator struct{ *responseWriterDelegator } type readerFromDelegator struct{ *responseWriterDelegator } -type pusherDelegator struct{ *responseWriterDelegator } func (d closeNotifierDelegator) CloseNotify() <-chan bool { - //lint:ignore SA1019 http.CloseNotifier is deprecated but we don't want to - //remove support from client_golang yet. return d.ResponseWriter.(http.CloseNotifier).CloseNotify() } func (d flusherDelegator) Flush() { @@ -95,9 +93,6 @@ func (d readerFromDelegator) ReadFrom(re io.Reader) (int64, error) { d.written += n return n, err } -func (d pusherDelegator) Push(target string, opts *http.PushOptions) error { - return d.ResponseWriter.(http.Pusher).Push(target, opts) -} var pickDelegator = make([]func(*responseWriterDelegator) delegator, 32) @@ -201,157 +196,4 @@ func init() { http.CloseNotifier }{d, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} } - pickDelegator[pusher] = func(d *responseWriterDelegator) delegator { // 16 - return pusherDelegator{d} - } - pickDelegator[pusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 17 - return struct { - *responseWriterDelegator - http.Pusher - http.CloseNotifier - }{d, pusherDelegator{d}, closeNotifierDelegator{d}} - } - pickDelegator[pusher+flusher] = func(d *responseWriterDelegator) delegator { // 18 - return struct { - *responseWriterDelegator - http.Pusher - http.Flusher - }{d, pusherDelegator{d}, flusherDelegator{d}} - } - pickDelegator[pusher+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 19 - return struct { - *responseWriterDelegator - http.Pusher - http.Flusher - http.CloseNotifier - }{d, pusherDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} - } - pickDelegator[pusher+hijacker] = func(d *responseWriterDelegator) delegator { // 20 - return struct { - *responseWriterDelegator - http.Pusher - http.Hijacker - }{d, pusherDelegator{d}, hijackerDelegator{d}} - } - pickDelegator[pusher+hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 21 - return struct { - *responseWriterDelegator - http.Pusher - http.Hijacker - http.CloseNotifier - }{d, pusherDelegator{d}, hijackerDelegator{d}, closeNotifierDelegator{d}} - } - pickDelegator[pusher+hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 22 - return struct { - *responseWriterDelegator - http.Pusher - http.Hijacker - http.Flusher - }{d, pusherDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}} - } - pickDelegator[pusher+hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { //23 - return struct { - *responseWriterDelegator - http.Pusher - http.Hijacker - http.Flusher - http.CloseNotifier - }{d, pusherDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} - } - pickDelegator[pusher+readerFrom] = func(d *responseWriterDelegator) delegator { // 24 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - }{d, pusherDelegator{d}, readerFromDelegator{d}} - } - pickDelegator[pusher+readerFrom+closeNotifier] = func(d *responseWriterDelegator) delegator { // 25 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - http.CloseNotifier - }{d, pusherDelegator{d}, readerFromDelegator{d}, closeNotifierDelegator{d}} - } - pickDelegator[pusher+readerFrom+flusher] = func(d *responseWriterDelegator) delegator { // 26 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - http.Flusher - }{d, pusherDelegator{d}, readerFromDelegator{d}, flusherDelegator{d}} - } - pickDelegator[pusher+readerFrom+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 27 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - http.Flusher - http.CloseNotifier - }{d, pusherDelegator{d}, readerFromDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} - } - pickDelegator[pusher+readerFrom+hijacker] = func(d *responseWriterDelegator) delegator { // 28 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - http.Hijacker - }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}} - } - pickDelegator[pusher+readerFrom+hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 29 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - http.Hijacker - http.CloseNotifier - }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, closeNotifierDelegator{d}} - } - pickDelegator[pusher+readerFrom+hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 30 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - http.Hijacker - http.Flusher - }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}} - } - pickDelegator[pusher+readerFrom+hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 31 - return struct { - *responseWriterDelegator - http.Pusher - io.ReaderFrom - http.Hijacker - http.Flusher - http.CloseNotifier - }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} - } -} - -func newDelegator(w http.ResponseWriter, observeWriteHeaderFunc func(int)) delegator { - d := &responseWriterDelegator{ - ResponseWriter: w, - observeWriteHeader: observeWriteHeaderFunc, - } - - id := 0 - //lint:ignore SA1019 http.CloseNotifier is deprecated but we don't want to - //remove support from client_golang yet. - if _, ok := w.(http.CloseNotifier); ok { - id += closeNotifier - } - if _, ok := w.(http.Flusher); ok { - id += flusher - } - if _, ok := w.(http.Hijacker); ok { - id += hijacker - } - if _, ok := w.(io.ReaderFrom); ok { - id += readerFrom - } - if _, ok := w.(http.Pusher); ok { - id += pusher - } - - return pickDelegator[id](d) } diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_1_8.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_1_8.go new file mode 100644 index 00000000000..31a70695695 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_1_8.go @@ -0,0 +1,181 @@ +// Copyright 2017 The Prometheus 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. + +// +build go1.8 + +package promhttp + +import ( + "io" + "net/http" +) + +type pusherDelegator struct{ *responseWriterDelegator } + +func (d pusherDelegator) Push(target string, opts *http.PushOptions) error { + return d.ResponseWriter.(http.Pusher).Push(target, opts) +} + +func init() { + pickDelegator[pusher] = func(d *responseWriterDelegator) delegator { // 16 + return pusherDelegator{d} + } + pickDelegator[pusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 17 + return struct { + *responseWriterDelegator + http.Pusher + http.CloseNotifier + }{d, pusherDelegator{d}, closeNotifierDelegator{d}} + } + pickDelegator[pusher+flusher] = func(d *responseWriterDelegator) delegator { // 18 + return struct { + *responseWriterDelegator + http.Pusher + http.Flusher + }{d, pusherDelegator{d}, flusherDelegator{d}} + } + pickDelegator[pusher+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 19 + return struct { + *responseWriterDelegator + http.Pusher + http.Flusher + http.CloseNotifier + }{d, pusherDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} + } + pickDelegator[pusher+hijacker] = func(d *responseWriterDelegator) delegator { // 20 + return struct { + *responseWriterDelegator + http.Pusher + http.Hijacker + }{d, pusherDelegator{d}, hijackerDelegator{d}} + } + pickDelegator[pusher+hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 21 + return struct { + *responseWriterDelegator + http.Pusher + http.Hijacker + http.CloseNotifier + }{d, pusherDelegator{d}, hijackerDelegator{d}, closeNotifierDelegator{d}} + } + pickDelegator[pusher+hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 22 + return struct { + *responseWriterDelegator + http.Pusher + http.Hijacker + http.Flusher + }{d, pusherDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}} + } + pickDelegator[pusher+hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { //23 + return struct { + *responseWriterDelegator + http.Pusher + http.Hijacker + http.Flusher + http.CloseNotifier + }{d, pusherDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} + } + pickDelegator[pusher+readerFrom] = func(d *responseWriterDelegator) delegator { // 24 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + }{d, pusherDelegator{d}, readerFromDelegator{d}} + } + pickDelegator[pusher+readerFrom+closeNotifier] = func(d *responseWriterDelegator) delegator { // 25 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + http.CloseNotifier + }{d, pusherDelegator{d}, readerFromDelegator{d}, closeNotifierDelegator{d}} + } + pickDelegator[pusher+readerFrom+flusher] = func(d *responseWriterDelegator) delegator { // 26 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + http.Flusher + }{d, pusherDelegator{d}, readerFromDelegator{d}, flusherDelegator{d}} + } + pickDelegator[pusher+readerFrom+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 27 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + http.Flusher + http.CloseNotifier + }{d, pusherDelegator{d}, readerFromDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} + } + pickDelegator[pusher+readerFrom+hijacker] = func(d *responseWriterDelegator) delegator { // 28 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + http.Hijacker + }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}} + } + pickDelegator[pusher+readerFrom+hijacker+closeNotifier] = func(d *responseWriterDelegator) delegator { // 29 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + http.Hijacker + http.CloseNotifier + }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, closeNotifierDelegator{d}} + } + pickDelegator[pusher+readerFrom+hijacker+flusher] = func(d *responseWriterDelegator) delegator { // 30 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + http.Hijacker + http.Flusher + }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}} + } + pickDelegator[pusher+readerFrom+hijacker+flusher+closeNotifier] = func(d *responseWriterDelegator) delegator { // 31 + return struct { + *responseWriterDelegator + http.Pusher + io.ReaderFrom + http.Hijacker + http.Flusher + http.CloseNotifier + }{d, pusherDelegator{d}, readerFromDelegator{d}, hijackerDelegator{d}, flusherDelegator{d}, closeNotifierDelegator{d}} + } +} + +func newDelegator(w http.ResponseWriter, observeWriteHeaderFunc func(int)) delegator { + d := &responseWriterDelegator{ + ResponseWriter: w, + observeWriteHeader: observeWriteHeaderFunc, + } + + id := 0 + if _, ok := w.(http.CloseNotifier); ok { + id += closeNotifier + } + if _, ok := w.(http.Flusher); ok { + id += flusher + } + if _, ok := w.(http.Hijacker); ok { + id += hijacker + } + if _, ok := w.(io.ReaderFrom); ok { + id += readerFrom + } + if _, ok := w.(http.Pusher); ok { + id += pusher + } + + return pickDelegator[id](d) +} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_pre_1_8.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_pre_1_8.go new file mode 100644 index 00000000000..8bb9b8b68f8 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator_pre_1_8.go @@ -0,0 +1,44 @@ +// Copyright 2017 The Prometheus 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. + +// +build !go1.8 + +package promhttp + +import ( + "io" + "net/http" +) + +func newDelegator(w http.ResponseWriter, observeWriteHeaderFunc func(int)) delegator { + d := &responseWriterDelegator{ + ResponseWriter: w, + observeWriteHeader: observeWriteHeaderFunc, + } + + id := 0 + if _, ok := w.(http.CloseNotifier); ok { + id += closeNotifier + } + if _, ok := w.(http.Flusher); ok { + id += flusher + } + if _, ok := w.(http.Hijacker); ok { + id += hijacker + } + if _, ok := w.(io.ReaderFrom); ok { + id += readerFrom + } + + return pickDelegator[id](d) +} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go index cea5a90fd9d..668eb6b3c93 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go @@ -47,6 +47,7 @@ import ( const ( contentTypeHeader = "Content-Type" + contentLengthHeader = "Content-Length" contentEncodingHeader = "Content-Encoding" acceptEncodingHeader = "Accept-Encoding" ) @@ -84,32 +85,10 @@ func Handler() http.Handler { // instrumentation. Use the InstrumentMetricHandler function to apply the same // kind of instrumentation as it is used by the Handler function. func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler { - var ( - inFlightSem chan struct{} - errCnt = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "promhttp_metric_handler_errors_total", - Help: "Total number of internal errors encountered by the promhttp metric handler.", - }, - []string{"cause"}, - ) - ) - + var inFlightSem chan struct{} if opts.MaxRequestsInFlight > 0 { inFlightSem = make(chan struct{}, opts.MaxRequestsInFlight) } - if opts.Registry != nil { - // Initialize all possibilites that can occur below. - errCnt.WithLabelValues("gathering") - errCnt.WithLabelValues("encoding") - if err := opts.Registry.Register(errCnt); err != nil { - if are, ok := err.(prometheus.AlreadyRegisteredError); ok { - errCnt = are.ExistingCollector.(*prometheus.CounterVec) - } else { - panic(err) - } - } - } h := http.HandlerFunc(func(rsp http.ResponseWriter, req *http.Request) { if inFlightSem != nil { @@ -128,7 +107,6 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler { if opts.ErrorLog != nil { opts.ErrorLog.Println("error gathering metrics:", err) } - errCnt.WithLabelValues("gathering").Inc() switch opts.ErrorHandling { case PanicOnError: panic(err) @@ -169,7 +147,6 @@ func HandlerFor(reg prometheus.Gatherer, opts HandlerOpts) http.Handler { if opts.ErrorLog != nil { opts.ErrorLog.Println("error encoding and sending metric family:", err) } - errCnt.WithLabelValues("encoding").Inc() switch opts.ErrorHandling { case PanicOnError: panic(err) @@ -260,12 +237,9 @@ const ( // Ignore errors and try to serve as many metrics as possible. However, // if no metrics can be served, serve an HTTP status code 500 and the // last error message in the body. Only use this in deliberate "best - // effort" metrics collection scenarios. In this case, it is highly - // recommended to provide other means of detecting errors: By setting an - // ErrorLog in HandlerOpts, the errors are logged. By providing a - // Registry in HandlerOpts, the exposed metrics include an error counter - // "promhttp_metric_handler_errors_total", which can be used for - // alerts. + // effort" metrics collection scenarios. It is recommended to at least + // log errors (by providing an ErrorLog in HandlerOpts) to not mask + // errors completely. ContinueOnError // Panic upon the first error encountered (useful for "crash only" apps). PanicOnError @@ -288,18 +262,6 @@ type HandlerOpts struct { // logged regardless of the configured ErrorHandling provided ErrorLog // is not nil. ErrorHandling HandlerErrorHandling - // If Registry is not nil, it is used to register a metric - // "promhttp_metric_handler_errors_total", partitioned by "cause". A - // failed registration causes a panic. Note that this error counter is - // different from the instrumentation you get from the various - // InstrumentHandler... helpers. It counts errors that don't necessarily - // result in a non-2xx HTTP status code. There are two typical cases: - // (1) Encoding errors that only happen after streaming of the HTTP body - // has already started (and the status code 200 has been sent). This - // should only happen with custom collectors. (2) Collection errors with - // no effect on the HTTP status code because ErrorHandling is set to - // ContinueOnError. - Registry prometheus.Registerer // If DisableCompression is true, the handler will never compress the // response, even if requested by the client. DisableCompression bool diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client.go index 83c49b66a81..86fd564470f 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client.go @@ -14,9 +14,7 @@ package promhttp import ( - "crypto/tls" "net/http" - "net/http/httptrace" "time" "github.com/prometheus/client_golang/prometheus" @@ -97,123 +95,3 @@ func InstrumentRoundTripperDuration(obs prometheus.ObserverVec, next http.RoundT return resp, err }) } - -// InstrumentTrace is used to offer flexibility in instrumenting the available -// httptrace.ClientTrace hook functions. Each function is passed a float64 -// representing the time in seconds since the start of the http request. A user -// may choose to use separately buckets Histograms, or implement custom -// instance labels on a per function basis. -type InstrumentTrace struct { - GotConn func(float64) - PutIdleConn func(float64) - GotFirstResponseByte func(float64) - Got100Continue func(float64) - DNSStart func(float64) - DNSDone func(float64) - ConnectStart func(float64) - ConnectDone func(float64) - TLSHandshakeStart func(float64) - TLSHandshakeDone func(float64) - WroteHeaders func(float64) - Wait100Continue func(float64) - WroteRequest func(float64) -} - -// InstrumentRoundTripperTrace is a middleware that wraps the provided -// RoundTripper and reports times to hook functions provided in the -// InstrumentTrace struct. Hook functions that are not present in the provided -// InstrumentTrace struct are ignored. Times reported to the hook functions are -// time since the start of the request. Only with Go1.9+, those times are -// guaranteed to never be negative. (Earlier Go versions are not using a -// monotonic clock.) Note that partitioning of Histograms is expensive and -// should be used judiciously. -// -// For hook functions that receive an error as an argument, no observations are -// made in the event of a non-nil error value. -// -// See the example for ExampleInstrumentRoundTripperDuration for example usage. -func InstrumentRoundTripperTrace(it *InstrumentTrace, next http.RoundTripper) RoundTripperFunc { - return RoundTripperFunc(func(r *http.Request) (*http.Response, error) { - start := time.Now() - - trace := &httptrace.ClientTrace{ - GotConn: func(_ httptrace.GotConnInfo) { - if it.GotConn != nil { - it.GotConn(time.Since(start).Seconds()) - } - }, - PutIdleConn: func(err error) { - if err != nil { - return - } - if it.PutIdleConn != nil { - it.PutIdleConn(time.Since(start).Seconds()) - } - }, - DNSStart: func(_ httptrace.DNSStartInfo) { - if it.DNSStart != nil { - it.DNSStart(time.Since(start).Seconds()) - } - }, - DNSDone: func(_ httptrace.DNSDoneInfo) { - if it.DNSDone != nil { - it.DNSDone(time.Since(start).Seconds()) - } - }, - ConnectStart: func(_, _ string) { - if it.ConnectStart != nil { - it.ConnectStart(time.Since(start).Seconds()) - } - }, - ConnectDone: func(_, _ string, err error) { - if err != nil { - return - } - if it.ConnectDone != nil { - it.ConnectDone(time.Since(start).Seconds()) - } - }, - GotFirstResponseByte: func() { - if it.GotFirstResponseByte != nil { - it.GotFirstResponseByte(time.Since(start).Seconds()) - } - }, - Got100Continue: func() { - if it.Got100Continue != nil { - it.Got100Continue(time.Since(start).Seconds()) - } - }, - TLSHandshakeStart: func() { - if it.TLSHandshakeStart != nil { - it.TLSHandshakeStart(time.Since(start).Seconds()) - } - }, - TLSHandshakeDone: func(_ tls.ConnectionState, err error) { - if err != nil { - return - } - if it.TLSHandshakeDone != nil { - it.TLSHandshakeDone(time.Since(start).Seconds()) - } - }, - WroteHeaders: func() { - if it.WroteHeaders != nil { - it.WroteHeaders(time.Since(start).Seconds()) - } - }, - Wait100Continue: func() { - if it.Wait100Continue != nil { - it.Wait100Continue(time.Since(start).Seconds()) - } - }, - WroteRequest: func(_ httptrace.WroteRequestInfo) { - if it.WroteRequest != nil { - it.WroteRequest(time.Since(start).Seconds()) - } - }, - } - r = r.WithContext(httptrace.WithClientTrace(r.Context(), trace)) - - return next.RoundTrip(r) - }) -} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client_1_8.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client_1_8.go new file mode 100644 index 00000000000..a034d1ec0f1 --- /dev/null +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_client_1_8.go @@ -0,0 +1,144 @@ +// Copyright 2017 The Prometheus 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. + +// +build go1.8 + +package promhttp + +import ( + "context" + "crypto/tls" + "net/http" + "net/http/httptrace" + "time" +) + +// InstrumentTrace is used to offer flexibility in instrumenting the available +// httptrace.ClientTrace hook functions. Each function is passed a float64 +// representing the time in seconds since the start of the http request. A user +// may choose to use separately buckets Histograms, or implement custom +// instance labels on a per function basis. +type InstrumentTrace struct { + GotConn func(float64) + PutIdleConn func(float64) + GotFirstResponseByte func(float64) + Got100Continue func(float64) + DNSStart func(float64) + DNSDone func(float64) + ConnectStart func(float64) + ConnectDone func(float64) + TLSHandshakeStart func(float64) + TLSHandshakeDone func(float64) + WroteHeaders func(float64) + Wait100Continue func(float64) + WroteRequest func(float64) +} + +// InstrumentRoundTripperTrace is a middleware that wraps the provided +// RoundTripper and reports times to hook functions provided in the +// InstrumentTrace struct. Hook functions that are not present in the provided +// InstrumentTrace struct are ignored. Times reported to the hook functions are +// time since the start of the request. Only with Go1.9+, those times are +// guaranteed to never be negative. (Earlier Go versions are not using a +// monotonic clock.) Note that partitioning of Histograms is expensive and +// should be used judiciously. +// +// For hook functions that receive an error as an argument, no observations are +// made in the event of a non-nil error value. +// +// See the example for ExampleInstrumentRoundTripperDuration for example usage. +func InstrumentRoundTripperTrace(it *InstrumentTrace, next http.RoundTripper) RoundTripperFunc { + return RoundTripperFunc(func(r *http.Request) (*http.Response, error) { + start := time.Now() + + trace := &httptrace.ClientTrace{ + GotConn: func(_ httptrace.GotConnInfo) { + if it.GotConn != nil { + it.GotConn(time.Since(start).Seconds()) + } + }, + PutIdleConn: func(err error) { + if err != nil { + return + } + if it.PutIdleConn != nil { + it.PutIdleConn(time.Since(start).Seconds()) + } + }, + DNSStart: func(_ httptrace.DNSStartInfo) { + if it.DNSStart != nil { + it.DNSStart(time.Since(start).Seconds()) + } + }, + DNSDone: func(_ httptrace.DNSDoneInfo) { + if it.DNSDone != nil { + it.DNSDone(time.Since(start).Seconds()) + } + }, + ConnectStart: func(_, _ string) { + if it.ConnectStart != nil { + it.ConnectStart(time.Since(start).Seconds()) + } + }, + ConnectDone: func(_, _ string, err error) { + if err != nil { + return + } + if it.ConnectDone != nil { + it.ConnectDone(time.Since(start).Seconds()) + } + }, + GotFirstResponseByte: func() { + if it.GotFirstResponseByte != nil { + it.GotFirstResponseByte(time.Since(start).Seconds()) + } + }, + Got100Continue: func() { + if it.Got100Continue != nil { + it.Got100Continue(time.Since(start).Seconds()) + } + }, + TLSHandshakeStart: func() { + if it.TLSHandshakeStart != nil { + it.TLSHandshakeStart(time.Since(start).Seconds()) + } + }, + TLSHandshakeDone: func(_ tls.ConnectionState, err error) { + if err != nil { + return + } + if it.TLSHandshakeDone != nil { + it.TLSHandshakeDone(time.Since(start).Seconds()) + } + }, + WroteHeaders: func() { + if it.WroteHeaders != nil { + it.WroteHeaders(time.Since(start).Seconds()) + } + }, + Wait100Continue: func() { + if it.Wait100Continue != nil { + it.Wait100Continue(time.Since(start).Seconds()) + } + }, + WroteRequest: func(_ httptrace.WroteRequestInfo) { + if it.WroteRequest != nil { + it.WroteRequest(time.Since(start).Seconds()) + } + }, + } + r = r.WithContext(httptrace.WithClientTrace(context.Background(), trace)) + + return next.RoundTrip(r) + }) +} diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/registry.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/registry.go index 6c32516aa2e..b5e70b93fa1 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/registry.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/registry.go @@ -325,17 +325,9 @@ func (r *Registry) Register(c Collector) error { return nil } if existing, exists := r.collectorsByID[collectorID]; exists { - switch e := existing.(type) { - case *wrappingCollector: - return AlreadyRegisteredError{ - ExistingCollector: e.unwrapRecursively(), - NewCollector: c, - } - default: - return AlreadyRegisteredError{ - ExistingCollector: e, - NewCollector: c, - } + return AlreadyRegisteredError{ + ExistingCollector: existing, + NewCollector: c, } } // If the collectorID is new, but at least one of the descs existed @@ -688,7 +680,7 @@ func processMetric( // Gatherers is a slice of Gatherer instances that implements the Gatherer // interface itself. Its Gather method calls Gather on all Gatherers in the // slice in order and returns the merged results. Errors returned from the -// Gather calls are all returned in a flattened MultiError. Duplicate and +// Gather calles are all returned in a flattened MultiError. Duplicate and // inconsistent Metrics are skipped (first occurrence in slice order wins) and // reported in the returned error. // diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/summary.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/summary.go index c970fdee0e4..2980614dff4 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/summary.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/summary.go @@ -16,10 +16,8 @@ package prometheus import ( "fmt" "math" - "runtime" "sort" "sync" - "sync/atomic" "time" "github.com/beorn7/perks/quantile" @@ -39,7 +37,7 @@ const quantileLabel = "quantile" // A typical use-case is the observation of request latencies. By default, a // Summary provides the median, the 90th and the 99th percentile of the latency // as rank estimations. However, the default behavior will change in the -// upcoming v1.0.0 of the library. There will be no rank estimations at all by +// upcoming v0.10 of the library. There will be no rank estimations at all by // default. For a sane transition, it is recommended to set the desired rank // estimations explicitly. // @@ -58,8 +56,16 @@ type Summary interface { Observe(float64) } -var errQuantileLabelNotAllowed = fmt.Errorf( - "%q is not allowed as label name in summaries", quantileLabel, +// DefObjectives are the default Summary quantile values. +// +// Deprecated: DefObjectives will not be used as the default objectives in +// v0.10 of the library. The default Summary will have no quantiles then. +var ( + DefObjectives = map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001} + + errQuantileLabelNotAllowed = fmt.Errorf( + "%q is not allowed as label name in summaries", quantileLabel, + ) ) // Default values for SummaryOpts. @@ -78,7 +84,7 @@ const ( // mandatory to set Name to a non-empty string. While all other fields are // optional and can safely be left at their zero value, it is recommended to set // a help string and to explicitly set the Objectives field to the desired value -// as the default value will change in the upcoming v1.0.0 of the library. +// as the default value will change in the upcoming v0.10 of the library. type SummaryOpts struct { // Namespace, Subsystem, and Name are components of the fully-qualified // name of the Summary (created by joining these components with @@ -115,8 +121,13 @@ type SummaryOpts struct { // Objectives defines the quantile rank estimates with their respective // absolute error. If Objectives[q] = e, then the value reported for q // will be the φ-quantile value for some φ between q-e and q+e. The - // default value is an empty map, resulting in a summary without - // quantiles. + // default value is DefObjectives. It is used if Objectives is left at + // its zero value (i.e. nil). To create a Summary without Objectives, + // set it to an empty map (i.e. map[float64]float64{}). + // + // Deprecated: Note that the current value of DefObjectives is + // deprecated. It will be replaced by an empty map in v0.10 of the + // library. Please explicitly set Objectives to the desired value. Objectives map[float64]float64 // MaxAge defines the duration for which an observation stays relevant @@ -140,7 +151,7 @@ type SummaryOpts struct { BufCap uint32 } -// Problem with the sliding-window decay algorithm... The Merge method of +// Great fuck-up with the sliding-window decay algorithm... The Merge method of // perk/quantile is actually not working as advertised - and it might be // unfixable, as the underlying algorithm is apparently not capable of merging // summaries in the first place. To avoid using Merge, we are currently adding @@ -185,7 +196,7 @@ func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary { } if opts.Objectives == nil { - opts.Objectives = map[float64]float64{} + opts.Objectives = DefObjectives } if opts.MaxAge < 0 { @@ -203,17 +214,6 @@ func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary { opts.BufCap = DefBufCap } - if len(opts.Objectives) == 0 { - // Use the lock-free implementation of a Summary without objectives. - s := &noObjectivesSummary{ - desc: desc, - labelPairs: makeLabelPairs(desc, labelValues), - counts: [2]*summaryCounts{&summaryCounts{}, &summaryCounts{}}, - } - s.init(s) // Init self-collection. - return s - } - s := &summary{ desc: desc, @@ -382,116 +382,6 @@ func (s *summary) swapBufs(now time.Time) { } } -type summaryCounts struct { - // sumBits contains the bits of the float64 representing the sum of all - // observations. sumBits and count have to go first in the struct to - // guarantee alignment for atomic operations. - // http://golang.org/pkg/sync/atomic/#pkg-note-BUG - sumBits uint64 - count uint64 -} - -type noObjectivesSummary struct { - // countAndHotIdx enables lock-free writes with use of atomic updates. - // The most significant bit is the hot index [0 or 1] of the count field - // below. Observe calls update the hot one. All remaining bits count the - // number of Observe calls. Observe starts by incrementing this counter, - // and finish by incrementing the count field in the respective - // summaryCounts, as a marker for completion. - // - // Calls of the Write method (which are non-mutating reads from the - // perspective of the summary) swap the hot–cold under the writeMtx - // lock. A cooldown is awaited (while locked) by comparing the number of - // observations with the initiation count. Once they match, then the - // last observation on the now cool one has completed. All cool fields must - // be merged into the new hot before releasing writeMtx. - - // Fields with atomic access first! See alignment constraint: - // http://golang.org/pkg/sync/atomic/#pkg-note-BUG - countAndHotIdx uint64 - - selfCollector - desc *Desc - writeMtx sync.Mutex // Only used in the Write method. - - // Two counts, one is "hot" for lock-free observations, the other is - // "cold" for writing out a dto.Metric. It has to be an array of - // pointers to guarantee 64bit alignment of the histogramCounts, see - // http://golang.org/pkg/sync/atomic/#pkg-note-BUG. - counts [2]*summaryCounts - - labelPairs []*dto.LabelPair -} - -func (s *noObjectivesSummary) Desc() *Desc { - return s.desc -} - -func (s *noObjectivesSummary) Observe(v float64) { - // We increment h.countAndHotIdx so that the counter in the lower - // 63 bits gets incremented. At the same time, we get the new value - // back, which we can use to find the currently-hot counts. - n := atomic.AddUint64(&s.countAndHotIdx, 1) - hotCounts := s.counts[n>>63] - - for { - oldBits := atomic.LoadUint64(&hotCounts.sumBits) - newBits := math.Float64bits(math.Float64frombits(oldBits) + v) - if atomic.CompareAndSwapUint64(&hotCounts.sumBits, oldBits, newBits) { - break - } - } - // Increment count last as we take it as a signal that the observation - // is complete. - atomic.AddUint64(&hotCounts.count, 1) -} - -func (s *noObjectivesSummary) Write(out *dto.Metric) error { - // For simplicity, we protect this whole method by a mutex. It is not in - // the hot path, i.e. Observe is called much more often than Write. The - // complication of making Write lock-free isn't worth it, if possible at - // all. - s.writeMtx.Lock() - defer s.writeMtx.Unlock() - - // Adding 1<<63 switches the hot index (from 0 to 1 or from 1 to 0) - // without touching the count bits. See the struct comments for a full - // description of the algorithm. - n := atomic.AddUint64(&s.countAndHotIdx, 1<<63) - // count is contained unchanged in the lower 63 bits. - count := n & ((1 << 63) - 1) - // The most significant bit tells us which counts is hot. The complement - // is thus the cold one. - hotCounts := s.counts[n>>63] - coldCounts := s.counts[(^n)>>63] - - // Await cooldown. - for count != atomic.LoadUint64(&coldCounts.count) { - runtime.Gosched() // Let observations get work done. - } - - sum := &dto.Summary{ - SampleCount: proto.Uint64(count), - SampleSum: proto.Float64(math.Float64frombits(atomic.LoadUint64(&coldCounts.sumBits))), - } - - out.Summary = sum - out.Label = s.labelPairs - - // Finally add all the cold counts to the new hot counts and reset the cold counts. - atomic.AddUint64(&hotCounts.count, count) - atomic.StoreUint64(&coldCounts.count, 0) - for { - oldBits := atomic.LoadUint64(&hotCounts.sumBits) - newBits := math.Float64bits(math.Float64frombits(oldBits) + sum.GetSampleSum()) - if atomic.CompareAndSwapUint64(&hotCounts.sumBits, oldBits, newBits) { - atomic.StoreUint64(&coldCounts.sumBits, 0) - break - } - } - return nil -} - type quantSort []*dto.Quantile func (s quantSort) Len() int { diff --git a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/wrap.go b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/wrap.go index e303eef6d33..49159bf3eb0 100644 --- a/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/wrap.go +++ b/cluster-autoscaler/vendor/github.com/prometheus/client_golang/prometheus/wrap.go @@ -32,12 +32,6 @@ import ( // WrapRegistererWith provides a way to add fixed labels to a subset of // Collectors. It should not be used to add fixed labels to all metrics exposed. // -// Conflicts between Collectors registered through the original Registerer with -// Collectors registered through the wrapping Registerer will still be -// detected. Any AlreadyRegisteredError returned by the Register method of -// either Registerer will contain the ExistingCollector in the form it was -// provided to the respective registry. -// // The Collector example demonstrates a use of WrapRegistererWith. func WrapRegistererWith(labels Labels, reg Registerer) Registerer { return &wrappingRegisterer{ @@ -60,12 +54,6 @@ func WrapRegistererWith(labels Labels, reg Registerer) Registerer { // (see NewGoCollector) and the process collector (see NewProcessCollector). (In // fact, those metrics are already prefixed with “go_” or “process_”, // respectively.) -// -// Conflicts between Collectors registered through the original Registerer with -// Collectors registered through the wrapping Registerer will still be -// detected. Any AlreadyRegisteredError returned by the Register method of -// either Registerer will contain the ExistingCollector in the form it was -// provided to the respective registry. func WrapRegistererWithPrefix(prefix string, reg Registerer) Registerer { return &wrappingRegisterer{ wrappedRegisterer: reg, @@ -135,15 +123,6 @@ func (c *wrappingCollector) Describe(ch chan<- *Desc) { } } -func (c *wrappingCollector) unwrapRecursively() Collector { - switch wc := c.wrappedCollector.(type) { - case *wrappingCollector: - return wc.unwrapRecursively() - default: - return wc - } -} - type wrappingMetric struct { wrappedMetric Metric prefix string diff --git a/cluster-autoscaler/vendor/modules.txt b/cluster-autoscaler/vendor/modules.txt index f5a222d993e..ce43a74b38a 100644 --- a/cluster-autoscaler/vendor/modules.txt +++ b/cluster-autoscaler/vendor/modules.txt @@ -68,7 +68,7 @@ github.com/PuerkitoBio/urlesc github.com/armon/circbuf # github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a => github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a github.com/asaskevich/govalidator -# github.com/aws/aws-sdk-go v1.23.18 => github.com/aws/aws-sdk-go v1.23.18 +# github.com/aws/aws-sdk-go v1.23.12 => github.com/aws/aws-sdk-go v1.23.12 github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws/ec2metadata github.com/aws/aws-sdk-go/aws/endpoints @@ -109,7 +109,7 @@ github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil github.com/aws/aws-sdk-go/private/protocol/jsonrpc github.com/aws/aws-sdk-go/private/protocol/json/jsonutil github.com/aws/aws-sdk-go/service/ecr -# github.com/beorn7/perks v1.0.0 => github.com/beorn7/perks v1.0.0 +# github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 => github.com/beorn7/perks v1.0.0 github.com/beorn7/perks/quantile # github.com/blang/semver v3.5.0+incompatible => github.com/blang/semver v3.5.0+incompatible github.com/blang/semver @@ -198,7 +198,7 @@ github.com/emicklei/go-restful github.com/emicklei/go-restful/log # github.com/euank/go-kmsg-parser v2.0.0+incompatible => github.com/euank/go-kmsg-parser v2.0.0+incompatible github.com/euank/go-kmsg-parser/kmsgparser -# github.com/evanphx/json-patch v4.2.0+incompatible => github.com/evanphx/json-patch v4.2.0+incompatible +# github.com/evanphx/json-patch v4.5.0+incompatible => github.com/evanphx/json-patch v4.2.0+incompatible github.com/evanphx/json-patch # github.com/fsnotify/fsnotify v1.4.7 => github.com/fsnotify/fsnotify v1.4.7 github.com/fsnotify/fsnotify @@ -223,7 +223,7 @@ github.com/gogo/protobuf/sortkeys github.com/gogo/protobuf/types github.com/gogo/protobuf/gogoproto github.com/gogo/protobuf/protoc-gen-gogo/descriptor -# github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 => github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 +# github.com/golang/groupcache v0.0.0-20180513044358-24b0969c4cb7 => github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 github.com/golang/groupcache/lru # github.com/golang/mock v1.2.0 => github.com/golang/mock v1.2.0 github.com/golang/mock/gomock @@ -287,7 +287,7 @@ github.com/google/go-querystring/query github.com/google/gofuzz # github.com/google/uuid v1.1.1 => github.com/google/uuid v1.1.1 github.com/google/uuid -# github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d => github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d +# github.com/googleapis/gnostic v0.3.1 => github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d github.com/googleapis/gnostic/OpenAPIv2 github.com/googleapis/gnostic/compiler github.com/googleapis/gnostic/extensions @@ -332,7 +332,7 @@ github.com/hashicorp/golang-lru/simplelru github.com/heketi/heketi/client/api/go-client github.com/heketi/heketi/pkg/glusterfs/api github.com/heketi/heketi/pkg/utils -# github.com/imdario/mergo v0.3.5 => github.com/imdario/mergo v0.3.5 +# github.com/imdario/mergo v0.3.6 => github.com/imdario/mergo v0.3.5 github.com/imdario/mergo # github.com/inconshreveable/mousetrap v1.0.0 => github.com/inconshreveable/mousetrap v1.0.0 github.com/inconshreveable/mousetrap @@ -411,11 +411,31 @@ github.com/opencontainers/runtime-spec/specs-go # github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52 => github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52 github.com/opencontainers/selinux/go-selinux github.com/opencontainers/selinux/go-selinux/label +# github.com/openshift/cluster-api v0.0.0-20191007125355-b2c5ded524d4 => github.com/openshift/cluster-api v0.0.0-20191007125355-b2c5ded524d4 +github.com/openshift/cluster-api/pkg/apis/machine/v1beta1 +github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset +github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1 +github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions +github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine/v1beta1 +github.com/openshift/cluster-api/pkg/apis/machine/common +github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1 +github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/scheme +github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1 +github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster +github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/internalinterfaces +github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/machine +github.com/openshift/cluster-api/pkg/client/listers_generated/machine/v1beta1 +github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/fake +github.com/openshift/cluster-api/pkg/apis/cluster/common +github.com/openshift/cluster-api/pkg/client/informers_generated/externalversions/cluster/v1alpha1 +github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/cluster/v1alpha1/fake +github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1/fake +github.com/openshift/cluster-api/pkg/client/listers_generated/cluster/v1alpha1 # github.com/pkg/errors v0.8.1 => github.com/pkg/errors v0.8.1 github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 => github.com/pmezard/go-difflib v1.0.0 github.com/pmezard/go-difflib/difflib -# github.com/prometheus/client_golang v1.0.0 => github.com/prometheus/client_golang v1.0.0 +# github.com/prometheus/client_golang v1.0.0 => github.com/prometheus/client_golang v0.9.2 github.com/prometheus/client_golang/prometheus github.com/prometheus/client_golang/prometheus/promhttp github.com/prometheus/client_golang/prometheus/internal @@ -664,7 +684,7 @@ gopkg.in/square/go-jose.v2/json gopkg.in/warnings.v0 # gopkg.in/yaml.v2 v2.2.4 => gopkg.in/yaml.v2 v2.2.4 gopkg.in/yaml.v2 -# k8s.io/api v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/api +# k8s.io/api v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/api k8s.io/api/core/v1 k8s.io/api/apps/v1 k8s.io/api/policy/v1beta1 @@ -708,17 +728,17 @@ k8s.io/api/authorization/v1beta1 k8s.io/api/admission/v1beta1 k8s.io/api/admission/v1 k8s.io/api/imagepolicy/v1alpha1 -# k8s.io/apiextensions-apiserver v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/apiextensions-apiserver +# k8s.io/apiextensions-apiserver v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/apiextensions-apiserver k8s.io/apiextensions-apiserver/pkg/features -# k8s.io/apimachinery v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/apimachinery +# k8s.io/apimachinery v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/apimachinery k8s.io/apimachinery/pkg/apis/meta/v1 k8s.io/apimachinery/pkg/api/resource k8s.io/apimachinery/pkg/util/sets k8s.io/apimachinery/pkg/util/wait k8s.io/apimachinery/pkg/util/net +k8s.io/apimachinery/pkg/labels k8s.io/apimachinery/pkg/api/errors k8s.io/apimachinery/pkg/runtime -k8s.io/apimachinery/pkg/labels k8s.io/apimachinery/pkg/util/uuid k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/types @@ -735,17 +755,18 @@ k8s.io/apimachinery/pkg/util/validation k8s.io/apimachinery/pkg/util/clock k8s.io/apimachinery/pkg/version k8s.io/apimachinery/pkg/util/version +k8s.io/apimachinery/pkg/apis/meta/v1/validation k8s.io/apimachinery/pkg/util/validation/field +k8s.io/apimachinery/pkg/api/meta +k8s.io/apimachinery/pkg/apis/meta/v1/unstructured +k8s.io/apimachinery/pkg/util/cache +k8s.io/apimachinery/pkg/util/diff +k8s.io/apimachinery/pkg/util/naming k8s.io/apimachinery/pkg/conversion/queryparams k8s.io/apimachinery/pkg/util/json -k8s.io/apimachinery/pkg/util/naming k8s.io/apimachinery/pkg/util/strategicpatch k8s.io/apimachinery/pkg/util/rand k8s.io/apimachinery/pkg/runtime/serializer -k8s.io/apimachinery/pkg/api/meta -k8s.io/apimachinery/pkg/apis/meta/v1/unstructured -k8s.io/apimachinery/pkg/util/cache -k8s.io/apimachinery/pkg/util/diff k8s.io/apimachinery/pkg/runtime/serializer/recognizer k8s.io/apimachinery/third_party/forked/golang/reflect k8s.io/apimachinery/pkg/runtime/serializer/json @@ -762,13 +783,12 @@ k8s.io/apimachinery/pkg/util/proxy k8s.io/apimachinery/pkg/util/remotecommand k8s.io/apimachinery/pkg/util/httpstream k8s.io/apimachinery/pkg/util/httpstream/spdy -k8s.io/apimachinery/pkg/apis/meta/v1/validation k8s.io/apimachinery/pkg/api/validation k8s.io/apimachinery/pkg/api/validation/path k8s.io/apimachinery/pkg/apis/meta/internalversion/scheme k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/pkg/apis/meta/v1beta1/validation -# k8s.io/apiserver v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/apiserver +# k8s.io/apiserver v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/apiserver k8s.io/apiserver/pkg/util/feature k8s.io/apiserver/pkg/features k8s.io/apiserver/pkg/admission @@ -852,7 +872,7 @@ k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/internal k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1 k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1 -# k8s.io/client-go v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/client-go +# k8s.io/client-go v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/client-go k8s.io/client-go/kubernetes k8s.io/client-go/rest k8s.io/client-go/tools/clientcmd @@ -860,6 +880,7 @@ k8s.io/client-go/tools/leaderelection k8s.io/client-go/tools/leaderelection/resourcelock k8s.io/client-go/informers k8s.io/client-go/util/cert +k8s.io/client-go/tools/cache k8s.io/client-go/tools/record k8s.io/client-go/listers/core/v1 k8s.io/client-go/kubernetes/fake @@ -868,7 +889,6 @@ k8s.io/client-go/kubernetes/typed/core/v1 k8s.io/client-go/listers/apps/v1 k8s.io/client-go/listers/batch/v1 k8s.io/client-go/listers/policy/v1beta1 -k8s.io/client-go/tools/cache k8s.io/client-go/tools/reference k8s.io/client-go/discovery k8s.io/client-go/kubernetes/typed/admissionregistration/v1 @@ -942,6 +962,8 @@ k8s.io/client-go/informers/scheduling k8s.io/client-go/informers/settings k8s.io/client-go/informers/storage k8s.io/client-go/util/keyutil +k8s.io/client-go/tools/pager +k8s.io/client-go/util/retry k8s.io/client-go/tools/record/util k8s.io/client-go/testing k8s.io/client-go/listers/storage/v1 @@ -988,8 +1010,6 @@ k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake k8s.io/client-go/kubernetes/typed/storage/v1/fake k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake -k8s.io/client-go/tools/pager -k8s.io/client-go/util/retry k8s.io/client-go/pkg/apis/clientauthentication k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1 k8s.io/client-go/pkg/apis/clientauthentication/v1beta1 @@ -1079,14 +1099,14 @@ k8s.io/client-go/tools/watch k8s.io/client-go/metadata/metadatainformer k8s.io/client-go/metadata k8s.io/client-go/metadata/metadatalister -# k8s.io/cloud-provider v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/cloud-provider +# k8s.io/cloud-provider v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/cloud-provider k8s.io/cloud-provider/volume k8s.io/cloud-provider k8s.io/cloud-provider/node/helpers k8s.io/cloud-provider/service/helpers k8s.io/cloud-provider/volume/errors k8s.io/cloud-provider/volume/helpers -# k8s.io/component-base v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/component-base +# k8s.io/component-base v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/component-base k8s.io/component-base/cli/flag k8s.io/component-base/config k8s.io/component-base/metrics/legacyregistry @@ -1098,10 +1118,10 @@ k8s.io/component-base/version/verflag k8s.io/component-base/logs k8s.io/component-base/config/validation k8s.io/component-base/config/v1alpha1 -# k8s.io/cri-api v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/cri-api +# k8s.io/cri-api v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/cri-api k8s.io/cri-api/pkg/apis k8s.io/cri-api/pkg/apis/runtime/v1alpha2 -# k8s.io/csi-translation-lib v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/csi-translation-lib +# k8s.io/csi-translation-lib v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/csi-translation-lib k8s.io/csi-translation-lib/plugins k8s.io/csi-translation-lib # k8s.io/klog v1.0.0 => k8s.io/klog v1.0.0 @@ -1113,18 +1133,18 @@ k8s.io/kube-openapi/pkg/common k8s.io/kube-openapi/pkg/handler k8s.io/kube-openapi/pkg/util k8s.io/kube-openapi/pkg/schemaconv -# k8s.io/kube-proxy v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kube-proxy +# k8s.io/kube-proxy v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kube-proxy k8s.io/kube-proxy/config/v1alpha1 -# k8s.io/kube-scheduler v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kube-scheduler +# k8s.io/kube-scheduler v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kube-scheduler k8s.io/kube-scheduler/config/v1 k8s.io/kube-scheduler/config/v1alpha1 -# k8s.io/kubectl v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kubectl +# k8s.io/kubectl v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kubectl k8s.io/kubectl/pkg/scale -# k8s.io/kubelet v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/kubelet +# k8s.io/kubelet v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/kubelet k8s.io/kubelet/config/v1beta1 k8s.io/kubelet/pkg/apis/pluginregistration/v1 k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1 -# k8s.io/kubernetes v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes +# k8s.io/kubernetes v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes k8s.io/kubernetes/pkg/client/leaderelectionconfig k8s.io/kubernetes/pkg/apis/scheduling k8s.io/kubernetes/pkg/kubelet/types @@ -1505,7 +1525,7 @@ k8s.io/kubernetes/pkg/security/podsecuritypolicy/seccomp k8s.io/kubernetes/pkg/security/podsecuritypolicy/util k8s.io/kubernetes/pkg/volume/util/nestedpendingoperations k8s.io/kubernetes/pkg/serviceaccount -# k8s.io/legacy-cloud-providers v0.0.0 => /tmp/ca-update-vendor.55jg/kubernetes/staging/src/k8s.io/legacy-cloud-providers +# k8s.io/legacy-cloud-providers v0.0.0 => /tmp/ca-update-vendor.c6Bp/kubernetes/staging/src/k8s.io/legacy-cloud-providers k8s.io/legacy-cloud-providers/aws k8s.io/legacy-cloud-providers/gce k8s.io/legacy-cloud-providers/azure @@ -1515,10 +1535,10 @@ k8s.io/legacy-cloud-providers/azure/auth k8s.io/legacy-cloud-providers/vsphere/vclib k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers # k8s.io/utils v0.0.0-20191114184206-e782cd3c129f => k8s.io/utils v0.0.0-20191114184206-e782cd3c129f +k8s.io/utils/pointer k8s.io/utils/net k8s.io/utils/exec k8s.io/utils/mount -k8s.io/utils/pointer k8s.io/utils/buffer k8s.io/utils/trace k8s.io/utils/integer @@ -1529,6 +1549,8 @@ k8s.io/utils/strings k8s.io/utils/keymutex k8s.io/utils/nsenter k8s.io/utils/clock +# sigs.k8s.io/controller-runtime v0.3.1-0.20191016212439-2df793d02076 => sigs.k8s.io/controller-runtime v0.3.1-0.20191016212439-2df793d02076 +sigs.k8s.io/controller-runtime/pkg/scheme # sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 => sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06 sigs.k8s.io/structured-merge-diff/fieldpath sigs.k8s.io/structured-merge-diff/merge diff --git a/cluster-autoscaler/vendor/sigs.k8s.io/controller-runtime/LICENSE b/cluster-autoscaler/vendor/sigs.k8s.io/controller-runtime/LICENSE new file mode 100644 index 00000000000..8dada3edaf5 --- /dev/null +++ b/cluster-autoscaler/vendor/sigs.k8s.io/controller-runtime/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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. diff --git a/cluster-autoscaler/vendor/sigs.k8s.io/controller-runtime/pkg/scheme/scheme.go b/cluster-autoscaler/vendor/sigs.k8s.io/controller-runtime/pkg/scheme/scheme.go new file mode 100644 index 00000000000..cd60319674f --- /dev/null +++ b/cluster-autoscaler/vendor/sigs.k8s.io/controller-runtime/pkg/scheme/scheme.go @@ -0,0 +1,94 @@ +/* +Copyright 2018 The Kubernetes 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 scheme contains utilities for gradually building Schemes, +// which contain information associating Go types with Kubernetes +// groups, versions, and kinds. +// +// Each API group should define a utility function +// called AddToScheme for adding its types to a Scheme: +// +// // in package myapigroupv1... +// var ( +// SchemeGroupVersion = schema.GroupVersion{Group: "my.api.group", Version: "v1"} +// SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} +// AddToScheme = SchemeBuilder.AddToScheme +// ) +// +// func init() { +// SchemeBuilder.Register(&MyType{}, &MyTypeList) +// } +// var ( +// scheme *runtime.Scheme = runtime.NewScheme() +// ) +// +// This also true of the built-in Kubernetes types. Then, in the entrypoint for +// your manager, assemble the scheme containing exactly the types you need. +// For instance, if our controller needs types from the core/v1 API group (e.g. Pod), +// plus types from my.api.group/v1: +// +// func init() { +// myapigroupv1.AddToScheme(scheme) +// kubernetesscheme.AddToScheme(scheme) +// } +// +// func main() { +// mgr := controllers.NewManager(controllers.GetConfigOrDie(), manager.Options{ +// Scheme: scheme, +// }) +// // ... +// } +// +package scheme + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// Builder builds a new Scheme for mapping go types to Kubernetes GroupVersionKinds. +type Builder struct { + GroupVersion schema.GroupVersion + runtime.SchemeBuilder +} + +// Register adds one or objects to the SchemeBuilder so they can be added to a Scheme. Register mutates bld. +func (bld *Builder) Register(object ...runtime.Object) *Builder { + bld.SchemeBuilder.Register(func(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(bld.GroupVersion, object...) + metav1.AddToGroupVersion(scheme, bld.GroupVersion) + return nil + }) + return bld +} + +// RegisterAll registers all types from the Builder argument. RegisterAll mutates bld. +func (bld *Builder) RegisterAll(b *Builder) *Builder { + bld.SchemeBuilder = append(bld.SchemeBuilder, b.SchemeBuilder...) + return bld +} + +// AddToScheme adds all registered types to s. +func (bld *Builder) AddToScheme(s *runtime.Scheme) error { + return bld.SchemeBuilder.AddToScheme(s) +} + +// Build returns a new Scheme containing the registered types. +func (bld *Builder) Build() (*runtime.Scheme, error) { + s := runtime.NewScheme() + return s, bld.AddToScheme(s) +}